infer_storage_schema eklentisi
Bu eklenti dış verilerin şemasını çıkartır ve CSL şema dizesi olarak döndürür. Dize, dış tablolar oluşturulurken kullanılabilir. Eklenti işleciyle birlikte çağrılır evaluate
.
Kimlik doğrulaması ve yetkilendirme
İsteğin özelliklerinde, erişilmesi gereken depolama bağlantı dizesi belirtirsiniz. Her depolama bağlantı dizesi, depolamaya erişim için kullanılacak yetkilendirme yöntemini belirtir. Yetkilendirme yöntemine bağlı olarak, şema çıkarımı gerçekleştirmek için sorumluya dış depolama üzerinde izin verilmesi gerekebilir.
Aşağıdaki tabloda desteklenen kimlik doğrulama yöntemleri ve depolama türüne göre gerekli izinler listelenmektedir.
Kimlik doğrulama yöntemi | Azure Blob Depolama / Data Lake Storage 2. Nesil | Data Lake Storage 1. Nesil |
---|---|---|
Kim -liğe bürünme | Depolama Blob Verileri Okuyucusu | Okuyucu |
Paylaşılan Erişim (SAS) belirteci | Liste + Okuma | Bu kimlik doğrulama yöntemi 1. Nesil'de desteklenmez. |
Microsoft Entra erişim belirteci | ||
Depolama hesabı erişim anahtarı | Bu kimlik doğrulama yöntemi 1. Nesil'de desteklenmez. |
Sözdizimi
evaluate
infer_storage_schema(
Seçenekler )
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Zorunlu | Açıklama |
---|---|---|---|
Seçenekler | dynamic |
✔️ | İsteğin özelliklerini belirten bir özellik paketi. |
İsteğin desteklenen özellikleri
Adı | Tür | Zorunlu | Açıklama |
---|---|---|---|
StorageContainers | dynamic |
✔️ | Depolanan veri yapıtları için ön ek URI'sini temsil eden bir depolama bağlantı dizesi dizisi. |
Veri Biçimi | string |
✔️ | Desteklenen veri biçimlerinden biri. |
FileExtension | string |
Belirtilirse, işlev yalnızca bu dosya uzantısıyla biten dosyaları tarar. Uzantının belirtilmesi işlemi hızlandırabilir veya veri okuma sorunlarını ortadan kaldırabilir. | |
FileNamePrefix | string |
Belirtilirse, işlev yalnızca bu ön ek ile başlayan dosyaları tarar. Ön ekin belirtilmesi işlemi hızlandırabilir. | |
Mod | string |
Şema çıkarımı stratejisi. Değeri: any , last , all . İşlev, veri şemasını bulunan ilk dosyadan, son yazılan dosyadan veya sırasıyla tüm dosyalardan çıkartır. Varsayılan değer şudur: last . |
Döndürülenler
Eklenti, infer_storage_schema
CSL şema dizesini içeren tek bir satır/sütun içeren tek bir sonuç tablosu döndürür.
Not
- Depolama kapsayıcısı URI gizli dizi anahtarları, Okuma'ya ek olarak Liste izinlerine sahip olmalıdır.
- Şema çıkarım stratejisi 'tümü', bulunan tüm yapıtlardan okuma ve şemalarını birleştirme anlamına gelen çok "pahalı" bir işlemdir.
- Döndürülen bazı türler yanlış tür tahmininin sonucu olarak (veya şema birleştirme işleminin bir sonucu olarak) gerçek türler olmayabilir. Bu nedenle, dış tablo oluşturmadan önce sonucu dikkatle gözden geçirmeniz gerekir.
Örnek
let options = dynamic({
'StorageContainers': [
h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
],
'FileExtension': '.parquet',
'FileNamePrefix': 'part-',
'DataFormat': 'parquet'
});
evaluate infer_storage_schema(options)
Çıktı
CslSchema |
---|
app_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real |
Dış tablo tanımında döndürülen şemayı kullanın:
.create external table MobileEvents(
app_id:string, user_id:long, event_time:datetime, country:string, city:string, device_type:string, device_vendor:string, ad_network:string, campaign:string, site_id:string, event_type:string, event_name:string, organic:string, days_from_install:int, revenue:real
)
kind=blob
partition by (dt:datetime = bin(event_time, 1d), app:string = app_id)
pathformat = ('app=' app '/dt=' datetime_pattern('yyyyMMdd', dt))
dataformat = parquet
(
h@'https://storageaccount.blob.core.windows.net/MovileEvents;secretKey'
)
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