Share via


infer_storage_schema eklentisi

Bu eklenti dış verilerin şemasını çıkarsar 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ı dizelerini 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ını 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
Kimliğ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.
erişim belirtecini Microsoft Entra
Depolama hesabı erişim anahtarı Bu kimlik doğrulama yöntemi 1. Nesil'de desteklenmez.

Syntax

evaluateinfer_storage_schema(Seçenekler)

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
Seçenekler dynamic ✔️ İsteğin özelliklerini belirten bir özellik paketi.

İsteğin desteklenen özellikleri

Ad Tür Gerekli Açıklama
StorageContainers dynamic ✔️ Depolanan veri yapıtları için ön ek URI'sini temsil eden bir depolama bağlantı dizeleri dizisi.
Dataformat string ✔️ Desteklenen veri biçimlerinden biri.
Dosyauzantısı 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 ekle başlayan dosyaları tarar. Ön ekin belirtilmesi işlemi hızlandırabilir.
Mode string Şema çıkarımı stratejisi. Değeri: any, last, all. işlevi, veri şemasını ilk bulunan dosyadan, son yazılan dosyadan veya sırasıyla tüm dosyalardan çıkarsar. last varsayılan değerdir.

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 'all' çok "pahalı" bir işlemdir, çünkü bulunan tüm yapıtlardan okuma ve şemalarını birleştirme anlamına gelir.
  • Bazı döndürülen türler, yanlış tür tahmininin (veya şema birleştirme işleminin sonucu olarak) 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)

Çıkış

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öndürülen şemayı dış tablo tanımında 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'
)