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'taki 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 azure Veri Gezgini, Azure İzleyici günlükleri ve Uygulama Analizler desteklenen veri kaynaklarıdır.

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

Önkoşullar

  • Microsoft hesabı veya Microsoft Entra kullanıcı kimliği. Azure aboneliği gerekmez.
  • Yerel makinenizde jupyter Notebook yüklü. 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ğiNi 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.

Not

Mümkün olduğunda Sertifika kimlik doğrulama yöntemini kullanmanızı öneririz.

Microsoft Entra sertifikası, not defterinden erişilebilen bir dosyada depolanmalıdır. Bu dosyaya bağlantı dizesi başvurabilirsiniz.

%kql AzureDataExplorer://tenant='<tenant-id>';certificate='<certificate>';certificate_thumbprint='<thumbprint>';cluster='<cluster-name>';database='<database-name>'

İpucu

  • bağlantı dizesi parametreleştirmek için, Python ifadeleri olarak yorumlanırken tırnak içinde olmayan değerleri kullanın.
  • Kimlik bilgilerini alma işlemini basitleştirmek için bkz. Bağlan 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ğlan ion 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ğrulaması kimlik bilgilerini almayı deneme. -try_azcli_login
try_azcli_login_subscription Belirtilen aboneliğe göre Azure CLI'dan kimlik doğrulaması kimlik bilgilerini almayı deneme. -try_azcli_login_subscription=<subscription_id>
try_vscode_login Visual Studio Code Azure hesabı oturum açmadan kimlik doğrulama 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 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

Tüm mevcut 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 çizelgesini sorgulama ve işleme

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

Zaman çizelgesini sorgulama ve işleme

%%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 paletleri burada bulabilirsiniz: 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 işleyip:

    %%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 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 sorgudaki sonuçları sonraki sorgulara beslemek isteyebilirsiniz. Aşağıdaki örnekte verileri filtrelemek için Python değişkeni statefilter kullanılır.

  1. En yüksek DamagePropertydeğere sahip 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 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

  • Kusto Sorgu Dili Öğrenin (KQL)