Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sürüm açılan listesini kullanarak hizmetler arasında geçiş yapın. Gezinti hakkında daha fazla bilgi edinin.
Şunlar için geçerlidir: ✅ Microsoft Fabric ✅ Azure Veri Gezgini
Python eklentisi, Python betiği kullanarak kullanıcı tanımlı bir işlev (UDF) çalıştırır. Python betiği, girdi olarak tablosal verileri alır ve tablosal çıkış üretir. Eklentinin çalışma zamanı, kümenin düğümlerinde çalıştırılan korumalı alanlarda barındırılır.
Sözdizimi
T|evaluate [hint.distribution= (single | per_node)] [hint.remote= (auto | local)] python(output_schema,betiği [,script_parameters] [,external_artifacts] [,spill_to_disk])
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| output_schema | string |
✔️ |
type Python kodu tarafından döndürülen tablosal verilerin çıkış şemasını tanımlayan değişmez değer. Biçim: typeof(ColumnName:ColumnType[, ...]). Örneğin, typeof(col1:string, col2:long). Giriş şemasını genişletmek için aşağıdaki söz dizimini kullanın: typeof(*, col1:string, col2:long). |
| betik | string |
✔️ | Yürütülecek geçerli Python betiği. Çok satırlı dizeler oluşturmak için bkz . Kullanım ipuçları. |
| script_parameters | dynamic |
Python betiğine ayrılmış kargs sözlük olarak geçirilecek ad değeri çiftlerinin özellik paketi. Daha fazla bilgi için bkz . Ayrılmış Python değişkenleri. |
|
| hint.distribution | string |
Eklentinin yürütülmesinin birden çok küme düğümüne dağıtılması için bir ipucu. Varsayılan değer şudur: single.
single , betiğin tek bir örneğinin sorgu verilerinin tamamı üzerinde çalıştırılacağı anlamına gelir.
per_node , Python bloğundan önceki sorgu dağıtılırsa betiğin bir örneğinin içerdiği verilerde her düğümde çalıştırılacağı anlamına gelir. |
|
| hint.remote | string |
Bu ipucu yalnızca kümeler arası sorgular için geçerlidir. Varsayılan değer şudur: auto.
auto , Python kodunun hangi kümede yürütüleceğine sunucunun otomatik olarak karar aldığı anlamına gelir. Değerini, yerel kümede Python kodunu yürütmeye zorlamak için local ayarlama. Python eklentisinin uzak kümede devre dışı bırakılması durumunda bu eklentiyi kullanın. |
|
| external_artifacts | dynamic |
Bulut depolama alanından erişilebilen yapıtlar için ad ve URL çiftlerinden oluşan bir özellik paketi. Daha fazla bilgi için bkz. Dış yapıtları kullanma. | |
| spill_to_disk | bool |
Giriş tablosunu Python korumalı alanında seri hale getirmek için alternatif bir yöntem belirtir. Büyük tabloları seri hale getirmek için serileştirmeyi hızlandırmak ve korumalı alan bellek tüketimini önemli ölçüde azaltmak için true olarak ayarlayın. Varsayılan true değeridir. |
Ayrılmış Python değişkenleri
Aşağıdaki değişkenler Kusto Sorgu Dili ile Python kodu arasındaki etkileşim için ayrılmıştır.
-
df: DataFrame olarakTgiriş tablosal verileri (yukarıdakilerin değerleripandas). -
kargs: python sözlüğü olarak script_parameters bağımsız değişkeninin değeri. -
resultpandas: Python betiği tarafından oluşturulan ve değeri eklentiyi izleyen Kusto sorgu işlecine gönderilen tablosal veriler haline gelen DataFrame.
Eklentiyi etkinleştirme
Eklenti varsayılan olarak devre dışıdır. Başlamadan önce önkoşul listesini gözden geçirin. Eklentiyi etkinleştirmek ve Python görüntüsünün sürümünü seçmek için bkz . Kümenizde dil uzantılarını etkinleştirme.
Python korumalı alanı görüntüsü
Python görüntüsünün sürümünü farklı bir yönetilen görüntü veya özel görüntü olarak değiştirmek için bkz . Kümenizdeki Python dil uzantıları görüntüsünü değiştirme.
Farklı Python görüntülerine yönelik paketlerin listesini görmek için bkz . Python paket başvurusu.
Not
- Varsayılan olarak, eklenti numpy'yi np ve pandas'ı pd olarak içeri aktarır. İsteğe bağlı olarak, gerektiğinde diğer modülleri içeri aktarabilirsiniz.
- Bazı paketler, eklentinin çalıştırıldığı korumalı alan tarafından uygulanan sınırlamalarla uyumsuz olabilir.
Sorgu ve güncelleştirme ilkesinden alımı kullanma
- Eklentiyi şu sorgularda kullanın:
- Kaynak tablosu kuyruğa alınan alım tarafından alınan bir güncelleştirme ilkesinin parçası olarak tanımlanır.
- gibi bir sorgudan alan bir komutun parçası olarak
.set-or-appendçalıştırın.
- Eklentiyi, kaynak tablosu akış alımı kullanılarak alınan güncelleştirme ilkesinin parçası olarak tanımlanan bir sorguda kullanamazsınız.
Örnek
range x from 1 to 360 step 1
| evaluate python(
//
typeof(*, fx:double), // Output schema: append a new fx column to original table
```
result = df
n = df.shape[0]
g = kargs["gain"]
f = kargs["cycles"]
result["fx"] = g * np.sin(df["x"]/n*2*np.pi*f)
```
, bag_pack('gain', 100, 'cycles', 4) // dictionary of parameters
)
| render linechart
Performans ipuçları
- Eklentinin giriş veri kümesini gereken en düşük miktara (sütunlar/satırlar) düşürün.
- Mümkün olduğunda Kusto'nun sorgu diliyle kaynak veri kümesindeki filtreleri kullanın.
- Kaynak sütunların bir alt kümesinde hesaplama yapmak için eklentiyi çağırmadan önce yalnızca bu sütunları yansıtın.
- Betiğinizdeki mantık dağıtılabilir olduğunda kullanın
hint.distribution = per_node.- Giriş veri kümesini bölümleme için bölüm işlecini de kullanabilirsiniz.
- Mümkün olduğunda Python betiğinizin mantığını uygulamak için Kusto'nun sorgu dilini kullanın.
Kullanım ipuçları
Sorgu düzenleyicinizde Python betiğini içeren çok satırlı dizeler oluşturmak için, sık kullandığınız Python düzenleyicisinden (Jupyter, Visual Studio Code, PyCharm vb.) Python betiğinizi kopyalayın, sorgu düzenleyicinize yapıştırın ve ardından tam betiği ardışık üç arka uç içeren satırlar arasına alın. Örneğin:
```
python code
```Azure Blob depolama gibi bir dış konumda depoladığınız bir betiğin içeriğini almak için externaldata işlecini kullanın.
Python betiğinin dış verilerini okuma örneği
let script =
externaldata(script:string)
[h'https://kustoscriptsamples.blob.core.windows.net/samples/python/sample_script.py']
with(format = raw);
range x from 1 to 360 step 1
| evaluate python(
typeof(*, fx:double),
toscalar(script),
bag_pack('gain', 100, 'cycles', 4))
| render linechart
Dış Yapıtları Kullanma
Bulut depolamadan dış yapıtlar betik için kullanılabilir hale getirilebilir ve çalışma zamanında kullanılabilir.
Dış yapıtlar özelliği tarafından başvuruda bulunılan URL'ler şu şekilde olmalıdır:
- Kümenin belirtme çizgisi ilkesine eklenir.
- Genel kullanıma açık bir konumda veya depolama bağlantı dizesi açıklandığı gibi gerekli kimlik bilgilerini sağlayın.
Not
Yönetilen Kimlikler kullanarak dış yapıtların kimliğini doğrularken, kullanımın SandboxArtifacts küme düzeyinde yönetilen kimlik ilkesinde tanımlanması gerekir.
Yapıtlar, betiğin yerel geçici dizininden .\Tempokunmasını sağlar. Özellik paketinde sağlanan adlar yerel dosya adları olarak kullanılır. Bkz Örnek.
Dış paketlere başvurma hakkında bilgi için bkz . Python eklentisi için paketleri yükleme.
Dış yapıt önbelleği yenileniyor
Sorgularda kullanılan dış yapıt dosyaları kümenizde önbelleğe alınır. Bulut depolamadaki dosyalarınızda güncelleştirmeler yapıyorsanız ve kümenizle anında eşitleme gerektiriyorsanız.clear cluster cache external-artifacts komutunu kullanabilirsiniz. Bu komut önbelleğe alınan dosyaları temizler ve sonraki sorguların yapıtların en son sürümüyle çalışmasını sağlar.
Python eklentisi için paketleri yükleme
Çoğu kullanım örneğinde özel görüntü oluşturmayı tercih edebilirsiniz.
Aşağıdaki nedenlerle paketleri kendiniz yüklemek isteyebilirsiniz:
- Özel görüntü oluşturma izniniz yok.
- Paket özeldir.
- Test için geçici bir paket yüklemesi oluşturmayı tercih eder ve özel görüntü oluşturma ek yükünü istemezsiniz.
Paketleri aşağıdaki gibi yükleyin:
Önkoşullar
Paketleri barındırmak için tercihen kümenizle aynı yerde bir blob kapsayıcısı oluşturun. Örneğin,
https://artifactswestus.blob.core.windows.net/pythonkümenizin Batı ABD'de olduğunu varsayarsak.Bu konuma erişime izin vermek için kümenin belirtme çizgisi ilkesini değiştirin.
Bu değişiklik Için AllDatabasesAdmin izinleri gerekir.
Örneğin, içinde
https://artifactswestus.blob.core.windows.net/pythonbulunan bir bloba erişimi etkinleştirmek için aşağıdaki komutu çalıştırın:
.alter-merge cluster policy callout @'[ { "CalloutType": "sandbox_artifacts", "CalloutUriRegex": "artifactswestus\\.blob\\.core\\.windows\\.net/python/","CanCall": true } ]'
Paketleri yükleme
PyPi veya diğer kanallardaki genel paketler için paketi ve bağımlılıklarını indirin.
- Yerel Windows Python ortamınızdaki bir cmd penceresinde şunu çalıştırın:
pip wheel [-w download-dir] package-name.Gerekli paketi ve bağımlılıklarını içeren bir zip dosyası oluşturun.
- Özel paketler için paketin klasörünü ve bağımlılıklarının klasörlerini sıkıştırın.
- Genel paketler için önceki adımda indirilen dosyaları sıkıştırın.
Not
- Python altyapısıyla ve korumalı alan çalışma zamanı platformuyla uyumlu paketi indirdiğinizden emin olun (şu anda Windows'ta 3.10.8 veya 3.11.7)
- Dosyaların üst klasörlerini değil, kendilerinin
.whlsıkıştırmasını sağlayın. - Temel korumalı alan görüntüsünde aynı sürüme sahip paketler için dosyaları atlayabilirsiniz
.whl.
Zip dosyasını yapıtlar konumundaki bir bloba yükleyin (önkoşulların 1. adımından).
Eklentiyi çağırın
python.- Parametresini
external_artifactsyerel ad ve zip dosyasının blob URL'si (SAS belirteci dahil) özellik paketiyle belirtin. - Satır içi python kodunuzda öğesini içeri aktarın
Zipackagesandbox_utilsve yöntemini ZIP dosyasının yerel adıyla çağırıninstall().
- Parametresini
Dış yapıtları kullanma örneği
Sahte veri oluşturan Faker paketini yükleyin.
range ID from 1 to 3 step 1
| extend Name=''
| evaluate python(typeof(*), ```if 1:
from sandbox_utils import Zipackage
Zipackage.install("Faker.zip")
from faker import Faker
fake = Faker()
result = df
for i in range(df.shape[0]):
result.loc[i, "Name"] = fake.name()
```,
external_artifacts=bag_pack('faker.zip', 'https://artifacts.blob.core.windows.net/Faker.zip;impersonate'))
| Kimlik | Ad |
|---|---|
| 1 | Gary Tapia |
| 2 | Emma Evans |
| 3 | Ashley Bowen |
İlgili içerik
Python eklentisini kullanan UDF işlevlerine daha fazla örnek için İşlevler kitaplığına bakın.
Python eklentisi, Python betiği kullanarak kullanıcı tanımlı bir işlev (UDF) çalıştırır. Python betiği, girdi olarak tablosal verileri alır ve tablosal çıkış üretir.
Sözdizimi
T|evaluate [hint.distribution= (single | per_node)] [hint.remote= (auto | local)] python(output_schema,betiği [,script_parameters] [,external_artifacts] [,spill_to_disk])
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| output_schema | string |
✔️ |
type Python kodu tarafından döndürülen tablosal verilerin çıkış şemasını tanımlayan değişmez değer. Biçim: typeof(ColumnName:ColumnType[, ...]). Örneğin, typeof(col1:string, col2:long). Giriş şemasını genişletmek için aşağıdaki söz dizimini kullanın: typeof(*, col1:string, col2:long). |
| betik | string |
✔️ | Yürütülecek geçerli Python betiği. Çok satırlı dizeler oluşturmak için bkz . Kullanım ipuçları. |
| script_parameters | dynamic |
Python betiğine ayrılmış kargs sözlük olarak geçirilecek ad değeri çiftlerinin özellik paketi. Daha fazla bilgi için bkz . Ayrılmış Python değişkenleri. |
|
| hint.distribution | string |
Eklentinin yürütülmesinin birden çok korumalı alana dağıtılması için bir ipucu. Varsayılan değer şudur: single.
single , betiğin tek bir örneğinin tek bir korumalı alanda sorgu verilerinin tamamı üzerinde çalıştırılacağı anlamına gelir.
per_node , Python bloğundan önceki sorgu bölümlere dağıtılırsa her bölümün kendi korumalı alanında paralel olarak çalıştırılacağı anlamına gelir. |
|
| hint.remote | string |
Bu ipucu yalnızca kümeler arası sorgular için geçerlidir. Varsayılan değer şudur: auto.
auto , Python kodunun hangi kümede yürütüleceğine sunucunun otomatik olarak karar aldığı anlamına gelir. Değerini, yerel kümede Python kodunu yürütmeye zorlamak için local ayarlama. Python eklentisinin uzak kümede devre dışı bırakılması durumunda bu eklentiyi kullanın. |
|
| external_artifacts | dynamic |
OneLake depolama alanından erişilebilen yapıtlar için ad ve URL çiftlerinden oluşan bir özellik paketi. Daha fazla bilgi için bkz. Dış yapıtları kullanma. | |
| spill_to_disk | bool |
Giriş tablosunu Python korumalı alanında seri hale getirmek için alternatif bir yöntem belirtir. Büyük tabloları seri hale getirmek için serileştirmeyi hızlandırmak ve korumalı alan bellek tüketimini önemli ölçüde azaltmak için true olarak ayarlayın. Varsayılan true değeridir. |
Ayrılmış Python değişkenleri
Aşağıdaki değişkenler Kusto Sorgu Dili ile Python kodu arasındaki etkileşim için ayrılmıştır.
-
df: DataFrame olarakTgiriş tablosal verileri (yukarıdakilerin değerleripandas). -
kargs: python sözlüğü olarak script_parameters bağımsız değişkeninin değeri. -
resultpandas: Python betiği tarafından oluşturulan ve değeri eklentiyi izleyen Kusto sorgu işlecine gönderilen tablosal veriler haline gelen DataFrame.
Eklentiyi etkinleştirme
Eklenti varsayılan olarak devre dışıdır. Başlamadan önce KQL veritabanınızda Python eklentisini etkinleştirin.
Python korumalı alanı görüntüsü
Farklı Python görüntülerine yönelik paketlerin listesini görmek için bkz . Python paket başvurusu.
Not
- Varsayılan olarak, eklenti numpy'yi np ve pandas'ı pd olarak içeri aktarır. İsteğe bağlı olarak, gerektiğinde diğer modülleri içeri aktarabilirsiniz.
- Bazı paketler, eklentinin çalıştırıldığı korumalı alan tarafından uygulanan sınırlamalarla uyumsuz olabilir.
Sorgu ve güncelleştirme ilkesinden alımı kullanma
- Eklentiyi şu sorgularda kullanın:
- Kaynak tablosu kuyruğa alınan alım tarafından alınan bir güncelleştirme ilkesinin parçası olarak tanımlanır.
- gibi bir sorgudan alan bir komutun parçası olarak
.set-or-appendçalıştırın.
- Eklentiyi, kaynak tablosu akış alımı kullanılarak alınan güncelleştirme ilkesinin parçası olarak tanımlanan bir sorguda kullanamazsınız.
Örnek
range x from 1 to 360 step 1
| evaluate python(
//
typeof(*, fx:double), // Output schema: append a new fx column to original table
```
result = df
n = df.shape[0]
g = kargs["gain"]
f = kargs["cycles"]
result["fx"] = g * np.sin(df["x"]/n*2*np.pi*f)
```
, bag_pack('gain', 100, 'cycles', 4) // dictionary of parameters
)
| render linechart
Performans ipuçları
- Eklentinin giriş veri kümesini gereken en düşük miktara (sütunlar/satırlar) düşürün.
- Mümkün olduğunda Kusto'nun sorgu diliyle kaynak veri kümesindeki filtreleri kullanın.
- Kaynak sütunların bir alt kümesinde hesaplama yapmak için eklentiyi çağırmadan önce yalnızca bu sütunları yansıtın.
- Betiğinizdeki mantık dağıtılabilir olduğunda kullanın
hint.distribution = per_node.- Giriş veri kümesini bölümleme için bölüm işlecini de kullanabilirsiniz.
- Mümkün olduğunda Python betiğinizin mantığını uygulamak için Kusto'nun sorgu dilini kullanın.
Kullanım ipuçları
Sorgu düzenleyicinizde Python betiğini içeren çok satırlı dizeler oluşturmak için, sık kullandığınız Python düzenleyicisinden (Jupyter, Visual Studio Code, PyCharm vb.) Python betiğinizi kopyalayın, sorgu düzenleyicinize yapıştırın ve ardından tam betiği ardışık üç arka uç içeren satırlar arasına alın. Örneğin:
```
python code
```Azure Blob depolama gibi bir dış konumda depoladığınız bir betiğin içeriğini almak için externaldata işlecini kullanın.
Python betiğinin dış verilerini okuma örneği
let script =
externaldata(script:string)
[h'https://kustoscriptsamples.blob.core.windows.net/samples/python/sample_script.py']
with(format = raw);
range x from 1 to 360 step 1
| evaluate python(
typeof(*, fx:double),
toscalar(script),
bag_pack('gain', 100, 'cycles', 4))
| render linechart
Dış Yapıtları Kullanma
OneLake depolamadan dış yapıtlar betik için kullanılabilir hale getirilebilir ve çalışma zamanında kullanılabilir.
Yapıtlar, betiğin yerel geçici dizininden .\Tempokunmasını sağlar. Özellik paketinde sağlanan adlar yerel dosya adları olarak kullanılır. Bkz Örnek.
Dış paketlere başvurma hakkında bilgi için bkz . Python eklentisi için paketleri yükleme.
Dış yapıt önbelleği yenileniyor
Sorgularda kullanılan dış yapıt dosyaları kümenizde önbelleğe alınır. Bulut depolamadaki dosyalarınızda güncelleştirmeler yapıyorsanız ve kümenizle anında eşitleme gerektiriyorsanız.clear cluster cache external-artifacts komutunu kullanabilirsiniz. Bu komut önbelleğe alınan dosyaları temizler ve sonraki sorguların yapıtların en son sürümüyle çalışmasını sağlar.
Python eklentisi için paketleri yükleme
Paketleri aşağıdaki gibi yükleyin:
Önkoşul
- Paketleri barındırmak için tercihen eventhouse'unuzla aynı çalışma alanında bir göl evi oluşturun.
Paketleri yükleme
PyPi veya diğer kanallardaki genel paketler için paketi ve bağımlılıklarını indirin.
- Yerel Windows Python ortamınızdaki bir cmd penceresinde şunu çalıştırın:
pip wheel [-w download-dir] package-name.Gerekli paketi ve bağımlılıklarını içeren bir zip dosyası oluşturun.
- Özel paketler için paketin klasörünü ve bağımlılıklarının klasörlerini sıkıştırın.
- Genel paketler için önceki adımda indirilen dosyaları sıkıştırın.
Not
- Python altyapısıyla ve korumalı alan çalışma zamanı platformuyla uyumlu paketi indirdiğinizden emin olun (şu anda Windows'ta 3.10.8 veya 3.11.7)
- Dosyaların üst klasörlerini değil, kendilerinin
.whlsıkıştırmasını sağlayın. - Temel korumalı alan görüntüsünde aynı sürüme sahip paketler için dosyaları atlayabilirsiniz
.whl.
Zip dosyasını lakehouse'a yükleyin.
OneLake URL'sini kopyalayın (sıkıştırılmış dosyanın özelliklerinden)
Eklentiyi çağırın
python.- parametresini
external_artifactsyerel ad ve zip dosyasının OneLake URL'si içeren bir özellik paketiyle belirtin. - Satır içi python kodunuzda öğesini içeri aktarın
Zipackageve yöntemini ZIP dosyasının adıyla çağırınsandbox_utils.install()
- parametresini
Dış yapıtları kullanma örneği
Sahte veri oluşturan Faker paketini yükleyin.
range ID from 1 to 3 step 1
| extend Name=''
| evaluate python(typeof(*), ```if 1:
from sandbox_utils import Zipackage
Zipackage.install("Faker.zip")
from faker import Faker
fake = Faker()
result = df
for i in range(df.shape[0]):
result.loc[i, "Name"] = fake.name()
```,
external_artifacts=bag_pack('faker.zip', 'https://msit-onelake.dfs.fabric.microsoft.com/MSIT_DEMO_WS/MSIT_DEMO_LH.Lakehouse/Files/Faker.zip;impersonate'))
| Kimlik | Ad |
|---|---|
| 1 | Gary Tapia |
| 2 | Emma Evans |
| 3 | Ashley Bowen |
İlgili içerik
Python eklentisini kullanan UDF işlevlerine daha fazla örnek için İşlevler kitaplığına bakın.