infer_storage_schema 外掛程式
此外掛程式會推斷外部數據的架構,並將其傳回為 CSL 架構字串。 建立外部資料表時,可以使用此字串。 使用 evaluate
運算子叫用外掛程式。
驗證與授權
在 要求的屬性中,您會指定要存取的記憶體連接字串。 每個記憶體 連接字串 指定用來存取記憶體的授權方法。 根據授權方法,主體可能需要授與外部記憶體的許可權,才能執行架構推斷。
下表列出支持的驗證方法,以及記憶體類型的任何必要許可權。
驗證方法 | Azure Blob 儲存體 / Data Lake Storage Gen2 | Data Lake Storage Gen1 |
---|---|---|
模擬 | 儲存體 Blob 資料讀者 | 讀者 |
共用存取 (SAS) 權杖 | 清單 + 讀取 | Gen1 不支援此驗證方法。 |
Microsoft Entra 存取令牌 | ||
儲存體帳戶存取金鑰 | Gen1 不支援此驗證方法。 |
語法
evaluate
infer_storage_schema(
Options)
深入瞭解 語法慣例。
參數
名稱 | 類型 | 必要 | Description |
---|---|---|---|
選項 | dynamic |
✔️ | 指定 要求屬性的屬性包。 |
要求的支持屬性
名稱 | 類型 | 必要 | Description |
---|---|---|---|
StorageContainers | dynamic |
✔️ | 記憶體連接字串的陣列,表示預存數據成品的前置詞 URI。 |
DataFormat | string |
✔️ | 其中一種支持 的數據格式。 |
FileExtension | string |
如果指定,函式只會掃描以這個擴展名結尾的檔案。 指定延伸模組可能會加速程式,或消除數據讀取問題。 | |
FileNamePrefix | string |
如果指定,函式只會掃描開頭為這個前置詞的檔案。 指定前置詞可能會加速程式。 | |
模式 | string |
架構推斷策略。 值為:any 、、last all 。 函式會從第一個找到的檔案、最後一個寫入的檔案,或從所有檔案分別推斷數據架構。 預設值是 last 。 |
傳回
infer_storage_schema
外掛程式會傳回單一結果資料表,其包含保存 CSL 結構描述字串的單一資料列/資料行。
注意
- 儲存體容器 URI 秘密金鑰除了讀取之外,還必須具有列出的權限。
- 結構描述推斷策略 'all' 是一項非常「昂貴」的作業,因為其隱含會從找到的所有成品讀取並合併其結構描述。
- 某些傳回的類型可能不是實際的類型,因為猜測類型錯誤 (或是因為結構描述合併程序)。 這就是為什麼您應該仔細檢查結果,再建立外部資料表。
範例
let options = dynamic({
'StorageContainers': [
h@'https://storageaccount.blob.core.windows.net/MobileEvents;secretKey'
],
'FileExtension': '.parquet',
'FileNamePrefix': 'part-',
'DataFormat': 'parquet'
});
evaluate infer_storage_schema(options)
輸出
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 |
使用外部資料表定義中傳回的結構描述:
.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'
)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應