在 Azure 儲存體 上建立和改變差異外部數據表
適用於: ✅Microsoft網狀架構✅Azure 數據總管
本文中的命令可用來建立或改變 執行命令之資料庫中的差異外部數據表 。 差異外部數據表會參考位於 Azure Blob 儲存體、Azure Data Lake Store Gen1 或 Azure Data Lake Store Gen2 中的 Delta Lake 數據表數據。
注意
如果數據表存在, .create
命令將會失敗併發生錯誤。 使用 .create-or-alter
或修改 .alter
現有的數據表。
若要加速透過外部差異資料表的查詢,請參閱 查詢加速原則。
權限
若要 .create
至少 需要資料庫用戶 許可權,而且 .alter
至少 需要數據表管理員 許可權。
若要 .create-or-alter
使用受控識別驗證的外部數據表, 需要 AllDatabasesAdmin 許可權。
語法
(.create
.alter
| | .create-or-alter
) external
table
TableName [(
Schema)
]delta
kind
=
(
StorageConnectionString )
[ 屬性 [ (
with
,
...]])
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
TableName | string |
✔️ | 遵守 實體名稱規則的外部數據表名稱 。 外部數據表不能與相同資料庫中的一般數據表同名。 |
結構描述 | string |
選擇性的外部數據架構是一或多個數據行名稱和數據類型的逗號分隔清單,其中每個專案都遵循格式:ColumnName : ColumnType。 如果未指定,則會根據最新的差異數據表版本,從差異記錄檔自動推斷。 |
|
StorageConnectionString | string |
✔️ | 差異數據表根資料夾路徑,包括認證。 可以指向 Azure Blob 儲存體 Blob 容器、Azure Data Lake Gen 2 文件系統或 Azure Data Lake Gen 1 容器。 外部數據表儲存類型是由提供的 連接字串 所決定。 請參閱記憶體 連接字串。 |
屬性 | string |
PropertyName = PropertyValue 格式的索引鍵/值屬性組。 請參閱 選擇性屬性。 |
注意
提示
針對自定義架構,您可以使用 infer_storage_schema 外掛程式,根據外部檔案內容推斷架構。
驗證與授權
存取外部數據表的驗證方法是以建立期間所提供的 連接字串 為基礎,而存取數據表所需的許可權會根據驗證方法而有所不同。
支持的驗證方法與 Azure 儲存體 外部數據表所支援的方法相同。
選擇性屬性
屬性 | 類型 | 描述 |
---|---|---|
folder |
string |
數據表的資料夾 |
docString |
string |
記錄數據表的字串 |
namePrefix |
string |
如果設定,表示檔案的前置詞。 在寫入作業上,所有檔案都會以這個前置詞寫入。 在讀取作業上,只會讀取具有此前置詞的檔案。 |
fileExtension |
string |
如果設定,表示檔案的擴展名。 寫入時,檔名會以這個後綴結尾。 在讀取時,只會讀取具有此擴展名的檔案。 |
encoding |
string |
顯示文字的編碼方式: UTF8NoBOM (預設值) 或 UTF8BOM 。 |
dryRun |
bool |
如果設定,則不會保存外部資料表定義。 這個選項適用於驗證外部數據表定義,特別是與 或 sampleUris 參數搭配filesPreview 使用。 |
注意
建立期間會存取外部差異數據表,以推斷數據分割資訊,並選擇性地推斷架構。 請確定資料表定義有效且可存取記憶體。
範例
使用推斷的架構建立或改變差異外部數據表
在下列外部數據表中,架構會自動從最新的差異數據表版本推斷。
.create-or-alter external table ExternalTable
kind=delta
(
h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
)
使用自訂架構建立差異外部數據表
在下列外部數據表中,會指定自定義架構,並覆寫差異數據表的架構。 如果稍後需要以最新的差異數據表版本為基礎的架構來取代自定義架構,請執行 .alter
| .create-or-alter
命令而不指定架構,如上一個範例所示。
.create external table ExternalTable (Timestamp:datetime, x:long, s:string)
kind=delta
(
h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)
限制
- 不支援時間移動。 只會使用最新的差異數據表版本。