Azure Veri Gezgini'de verileri analiz etmek için Jupyter Notebook ve kqlmagic uzantısı kullanma

Jupyter Notebook, canlı kod, denklemler, görselleştirmeler ve anlatı metni içeren belgeler oluşturmanıza ve paylaşmanıza olanak tanıyan bir açık kaynak web uygulamasıdır. Veri temizleme ve dönüştürme, sayısal simülasyon, istatistiksel modelleme, veri görselleştirme ve makine öğrenmesi gibi çok çeşitli görevler için kullanışlıdır.

Kqlmagic, Kusto Sorgu Dili (KQL) sorgularını yerel olarak çalıştırabilmeniz için Jupyter Notebook'daki Python çekirdeğinin özelliklerini genişletir. İşleme işleciyle tümleştirilmiş zengin Plot.ly kitaplığını kullanarak verileri sorgulamak ve görselleştirmek için Python ve KQL'yi birleştirebilirsiniz. Kqlmagic uzantısı Jupyter Lab, Visual Studio Code Jupyter uzantısı ve Azure Data Studio ile uyumludur ve desteklenen veri kaynakları Azure Veri Gezgini, Azure İzleyici günlükleri ve Application Insights'tır.

Bu makalede, Azure Veri Gezgini'de depolanan verilere bağlanmak ve verileri sorgulamak için bir Jupyter Notebook kqlmagic kullanmayı öğreneceksiniz.

Önkoşullar

  • Microsoft hesabı veya Microsoft Entra kullanıcı kimliği. Azure aboneliği gerekli değildir.
  • Jupyter Notebook yerel makinenizde yüklüdür. Aksi takdirde Azure Data Studio'yu kullanın.
  • Python 3.6. Jupyter Notebook çekirdek sürümünü Python 3.6 olarak değiştirmek için Çekirdek>Çekirdeği Değiştir>Python 3.6'yı seçin.

Kqlmagic yükleme

Kqlmagic uzantısını yükleyip yükledikten sonra, not defterinize KQL sorguları yazabilirsiniz. Çekirdek durursa veya sonuçlar beklendiği gibi değilse kqlmagic uzantısını yeniden yükleyin.

  1. Kqlmagic'i yüklemek için aşağıdaki komutu çalıştırın:

    !pip install Kqlmagic --no-cache-dir  --upgrade
    
  2. Kqlmagic uzantısını yüklemek için aşağıdaki komutu çalıştırın:

    %reload_ext Kqlmagic
    

Kümeye bağlanma

Kümenize bağlanmak için tercih ettiğiniz yöntemin sekmesini seçin.

Microsoft Entra kod yöntemi MSAL etkileşimli oturum açma işlemini ister. Kimlik doğrulaması için girmeniz gereken bir kod alırsınız.

%kql AzureDataExplorer://code;cluster='<cluster-name>';database='<database-name>'

İpucu

  • bağlantı dizesi parametreleştirmek için Python ifadeleri olarak yorumlanan tırnak içinde olmayan değerleri kullanın.
  • Kimlik bilgilerini alma işlemini basitleştirmek için bkz . Bağlantı seçenekleri.

Küme bağlantısı örneği

Aşağıdaki komut, kümede barındırılan help veritabanında kimlik doğrulaması yapmak için Samples Microsoft Entra kod yöntemini kullanır. Microsoft Entra olmayan kullanıcılar için kiracı adını Microsoft.com Microsoft Entra kiracınızla değiştirin.

%kql AzureDataExplorer://tenant="Microsoft.com";code;cluster='help';database='Samples'

Bağlantı seçenekleri

Kimlik bilgilerini alma işlemini basitleştirmek için, bağlantı dizesi sonra aşağıdaki seçenek bayraklarından birini ekleyebilirsiniz.

Seçenek Açıklama Örnek söz dizimi
try_azcli_login Azure CLI'dan kimlik doğrulama kimlik bilgilerini almayı deneme. -try_azcli_login
try_azcli_login_subscription Belirtilen aboneliğe göre Azure CLI'dan kimlik doğrulama kimlik bilgilerini almayı deneme. -try_azcli_login_subscription=<subscription_id>
try_vscode_login azure hesabı oturum açma Visual Studio Code kimlik doğrulaması kimlik bilgilerini almayı deneme. -try_vscode_login
try_msi MSI yerel uç noktasından kimlik doğrulama kimlik bilgilerini almayı deneme. İsteğe bağlı MSI parametrelerine sahip bir sözlük bekler: resource,/client_idobject_idmis_res_id/ , cloud_environment, . timeout -try_msi={"client_id":<id>}
try_token Belirtilen belirteçle kimlik doğrulaması. Azure AD v1 veya v2 belirteç özelliklerine sahip bir sözlük bekler. -try_token={"tokenType":"bearer","accessToken":"<token>"}

Bağlantı seçeneği örneği

Önceki tabloda açıklanan seçeneklerden herhangi biri bir bağlantı dizesi sonra eklenebilir. Aşağıdaki örnekte Azure CLI oturum açma seçeneği kullanılmaktadır:

%kql azureDataExplorer://code;cluster='help';database='Samples' -try_azcli_login

Bağlantı bilgilerini görüntüleme

Var olan tüm bağlantıları görmek için aşağıdaki komutu çalıştırın:

%kql --conn

Belirli bir bağlantının ayrıntılarını denetlemek için aşağıdaki komutu çalıştırın:

%kql --conn <database-name>@<cluster-name>

Sorgulama ve görselleştirme

İşleme işlecini kullanarak verileri sorgulayıp ploy.ly kitaplığını kullanarak verileri görselleştirin. Bu sorgu ve görselleştirme, yerel KQL kullanan tümleşik bir deneyim sağlar. Kqlmagic, , pivotchartve ladderchartdışındaki timepivotçoğu grafiği destekler. İşleme, , ysplitve accumulatedışındaki kindtüm özniteliklerle desteklenir.

Pasta grafiği sorgulama ve işleme

%%kql
StormEvents
| summarize statecount=count() by State
| sort by statecount 
| take10
| render piechart title="My Pie Chart by State"

Sorgu ve işleme zaman çizelgesi

%%kql
StormEvents
| summarize count() by bin(StartTime,7d)
| render timechart

Not

Bu grafikler etkileşimlidir. Belirli bir saati yakınlaştırmak için bir zaman aralığı seçin.

Grafik renklerini özelleştirme

Varsayılan renk paletini beğenmezseniz, palet seçeneklerini kullanarak grafikleri özelleştirin. Kullanılabilir paletler burada bulunabilir: Kqlmagic sorgu grafiği sonucunuz için renk paleti seçme

  1. Palet listesi için:

    %kql --palettes -popup_window
    
  2. Renk paletini cool seçin ve sorguyu yeniden oluşturun:

    %%kql -palette_name "cool"
    StormEvents
    | summarize statecount=count() by State
    | sort by statecount
    | take10
    | render piechart title="My Pie Chart by State"
    

Python ile sorguyu parametreleştirme

Kqlmagic, Kusto Sorgu Dili ile Python arasında basit bir değişim sağlar. Daha fazla bilgi edinmek için: Python ile kqlmagic sorgunuzu parametreleştirme

KQL sorgunuzda Python değişkeni kullanma

Verileri filtrelemek için sorgunuzda bir Python değişkeninin değerini kullanabilirsiniz:

statefilter = ["TEXAS", "KANSAS"]
%%kql
let _state = statefilter;
StormEvents 
| where State in (_state) 
| summarize statecount=count() by bin(StartTime,1d), State
| render timechart title = "Trend"

Sorgu sonuçlarını Pandas DataFrame'e dönüştürme

Pandas DataFrame'de bir KQL sorgusunun sonuçlarına erişebilirsiniz. Değişkene _kql_raw_result_ göre yürütülen son sorgu sonuçlarına erişin ve sonuçları pandas DataFrame'e aşağıdaki gibi kolayca dönüştürün:

df = _kql_raw_result_.to_dataframe()
df.head(10)

Örnek

Birçok analiz senaryosunda, çok sayıda sorgu içeren yeniden kullanılabilir not defterleri oluşturmak ve bir sorgunun sonuçlarını sonraki sorgulara beslemek isteyebilirsiniz. Aşağıdaki örnekte verileri filtrelemek için Python değişkeni statefilter kullanılır.

  1. En yüksek değere DamagePropertysahip ilk 10 durumu görüntülemek için bir sorgu çalıştırın:

    %%kql
    StormEvents
    | summarize max(DamageProperty) by State
    | order by max_DamageProperty desc
    | take10
    
  2. En üst durumu ayıklamak ve bir Python değişkenine ayarlamak için bir sorgu çalıştırın:

    df = _kql_raw_result_.to_dataframe()
    statefilter =df.loc[0].State
    statefilter
    
  3. deyimini ve Python değişkenini let kullanarak bir sorgu çalıştırın:

    %%kql
    let _state = statefilter;
    StormEvents 
    | where State in (_state)
    | summarize statecount=count() by bin(StartTime,1d), State
    | render timechart title = "Trend"
    
  4. Yardım komutunu çalıştırın:

    %kql --help "help"
    

İpucu

Kullanılabilir tüm yapılandırmalar hakkında bilgi almak için kullanın %config Kqlmagic. Bağlantı sorunları ve yanlış sorgular gibi Kusto hatalarını gidermek ve yakalamak için %config Kqlmagic.short_errors=False

Örnek not defterleri