Aracılığıyla paylaş


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

evaluateinfer_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'
)