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.
Kqlmagic'i yüklemek için aşağıdaki komutu çalıştırın:
!pip install Kqlmagic --no-cache-dir --upgrade
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_id object_id mis_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, , pivotchart
ve ladderchart
dışındaki timepivot
çoğu grafiği destekler. İşleme, , ysplit
ve accumulate
dışındaki kind
tü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
Palet listesi için:
%kql --palettes -popup_window
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.
En yüksek değere
DamageProperty
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
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
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"
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
- Azure Veri Gezgini için kqlmagic kullanmaya başlama
- Application Insights için kqlmagic kullanmaya başlama
- Azure İzleyici günlükleri için kqlmagic kullanmaya başlama
- Python ile kqlmagic sorgunuzu parametrize etme
- Kqlmagic sorgu grafiği sonucunuz için renk paleti seçme
İlgili içerik
- Kusto Sorgu Dili (KQL) öğrenin
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin