建立 Azure 數據總管的事件方格數據連線
在本文中,您將瞭解如何使用事件方格數據連線,將記憶體帳戶中的 Blob 內嵌至 Azure 數據總管。 您將建立設定 Azure 事件方格 訂用帳戶的事件方格資料連線。 事件方格訂用帳戶會透過 Azure 事件中樞,將事件從記憶體帳戶路由傳送至 Azure 資料總管。
注意
擷取最多可支援 6GB 的檔案大小。 建議擷取介於 100 MB 到 1 GB 之間的檔案。
若要瞭解如何使用 Kusto SDK 建立連線,請參閱 使用 SDK 建立事件方格數據連線。
如需從事件方格擷取至 Azure 數據總管的一般資訊,請參閱 連線至事件方格。
注意
若要使用事件方格聯機達到最佳效能,請透過 Blob 元數據設定 rawSizeBytes
擷取屬性。 如需詳細資訊,請參閱 擷取屬性。
必要條件
- Azure 訂用帳戶。 建立免費的 Azure 帳戶。
- Azure 資料總管叢集和資料庫。 建立叢集和資料庫。
- 目的地數據表。 建立數據表 或使用現有的數據表。
- 數據表的擷取對應。
- 記憶體帳戶。 您可以在、
StorageV2
或 Data Lake Storage Gen2 的 Azure 儲存體 帳戶上設定事件方格通知訂用帳戶BlobStorage
。 - 註冊事件方格資源提供者。
建立事件方格資料連線
在本節中,您會建立事件方格與 Azure 數據總管數據表之間的連線。
流覽至 Azure 入口網站 中的 Azure 數據總管叢集。
在 [數據] 底下,選取 [資料庫>TestDatabase]。
在 [設定] 下,選取 [數據連線],然後選取 [新增數據連線>事件方格][Blob 記憶體]。
使用下列資訊填寫事件方格資料連線表單:
設定 建議的值 欄位描述 資料連線名稱 test-grid-connection 您想要在 Azure 資料總管中建立的連接名稱。 數據連接名稱只能包含英數位元、虛線和點字元,長度最多為 40 個字元。 儲存體帳戶訂用帳戶 您的訂用帳戶識別碼 儲存體帳戶所在的訂用帳戶識別碼。 事件類型 blob 已建立 或 blob 已重新命名 觸發擷取的事件類別。 只有 ADLSv2 儲存體支援 blob 已重新命名。 若要重新命名 Blob,請流覽至 Azure 入口網站 中的 Blob,以滑鼠右鍵按兩下 Blob,然後選取 [重新命名]。 支援的型別:Microsoft.Storage.BlobCreated 或 Microsoft.Storage.BlobRenamed。 儲存體帳戶 gridteststorage1 您先前建立之儲存體帳戶的名稱。 資源建立 自動 開啟自動資源建立表示 Azure 數據總管會為您建立事件方格訂用帳戶、事件中樞命名空間和事件中樞。 否則,您必須手動建立這些資源,以確保數據連線的建立。 請參閱 手動建立事件方格擷取的資源 您可以選擇性地追蹤特定的事件方格主體。 設定通知的篩選條件,如下所示:
- 前置詞欄位是主題的常值前置詞。 隨著套用模式的 開頭,它可以跨越多個容器、資料夾或 Blob。 不允許使用萬用字元。
- 若要在 blob 容器上定義篩選條件,欄位必須按照以下方式設定:
/blobServices/default/containers/[container prefix]
。 - 若要在 blob 前置詞 (或 Azure Data Lake Gen2) 上定義資料夾,欄位必須按照以下方式設定:
/blobServices/default/containers/[container name]/blobs/[folder/blob prefix]
。
- 若要在 blob 容器上定義篩選條件,欄位必須按照以下方式設定:
- 後置詞欄位是 blob 的常值後置詞。 不允許使用萬用字元。
- 區分大小寫欄位顯示前置詞和後置詞篩選條件是否區分大小寫
如需篩選事件的詳細資訊,請參閱 Blob 記憶體事件。
- 前置詞欄位是主題的常值前置詞。 隨著套用模式的 開頭,它可以跨越多個容器、資料夾或 Blob。 不允許使用萬用字元。
您可以選擇性地根據下列資訊指定 資料路由設定 。 您不需要指定所有資料 路由設定。 也會接受部分設定。
設定 建議的值 欄位描述 允許將資料路由傳送至其他資料庫(多資料庫資料連線) 不允許 如果您想要覆寫與數據連線相關聯的默認目標資料庫,請切換此選項。 如需資料庫路由的詳細資訊,請參閱 事件路由。 資料表名稱 TestTable 您在 TestDatabase 中建立的資料表。 資料格式 JSON 支援的格式包括APACHEAVRO、Avro、CSV、JSON、ORC、PARQUET、PSV、RAW、SCSV、SOHSV、TSV、TSVE、TXT 和 W3CLOG。 支援的壓縮選項為 zip 和 gzip。 對應名稱 TestTable_mapping 您在 TestDatabase 中建立的對應,會將傳入的數據對應至 TestTable 的數據行名稱和數據類型。 如果未指定, 則會自動產生衍生自數據表架構的識別數據對應 。 忽略格式錯誤 忽略 如果您想要忽略 JSON 資料格式的格式錯誤,請切換此選項。 注意
數據表和對應名稱會區分大小寫。
或者,在 [進階設定] 下,您可以指定數據連線所使用的受控識別類型。 默認會 選取 [系統指派 ]。
如果您選取 [ 使用者指派],則必須手動指派受控識別。 如果您選取尚未指派給叢集的使用者,則會自動指派該使用者。 如需詳細資訊,請參閱 設定 Azure 數據總管叢集的受控識別。
如果您選取 [無],記憶體帳戶和事件中樞會透過 連接字串 進行驗證。 不建議使用此方法。
選取 [建立]
使用事件方格數據連線
本節說明如何觸發從 Azure Blob 儲存體 或 Azure Data Lake Gen 2 到叢集的擷取,並遵循 Blob 建立或 Blob 重新命名。
根據用來上傳 Blob 的記憶體 SDK 類型,選取相關的索引標籤。
下列程式代碼範例會使用 Azure Blob 儲存體 SDK 將檔案上傳至 Azure Blob 儲存體。 上傳會觸發事件方格數據連線,以將數據內嵌至 Azure 數據總管。
var azureStorageAccountConnectionString = <storage_account_connection_string>;
var containerName = <container_name>;
var blobName = <blob_name>;
var localFileName = <file_to_upload>;
var uncompressedSizeInBytes = <uncompressed_size_in_bytes>;
var mapping = <mapping_reference>;
// Create a new container if it not already exists.
var azureStorageAccount = new BlobServiceClient(azureStorageAccountConnectionString);
var container = azureStorageAccount.GetBlobContainerClient(containerName);
container.CreateIfNotExists();
// Define blob metadata and uploading options.
IDictionary<String, String> metadata = new Dictionary<string, string>();
metadata.Add("rawSizeBytes", uncompressedSizeInBytes);
metadata.Add("kustoIngestionMappingReference", mapping);
var uploadOptions = new BlobUploadOptions
{
Metadata = metadata,
};
// Upload the file.
var blob = container.GetBlobClient(blobName);
blob.Upload(localFileName, uploadOptions);
注意
Azure 數據總管不會刪除擷取後的 Blob。 使用 Azure Blob 記憶體生命週期 來管理 Blob 刪除,將 Blob 保留三到五天。
注意
在作業之後 CopyBlob
觸發擷取,不支援已啟用階層命名空間功能的記憶體帳戶。
重要
我們強烈建議您不要從自定義程式代碼產生記憶體事件,並將其傳送至事件中樞。 如果您選擇這樣做,請確定產生的事件嚴格遵守適當的記憶體事件架構和 JSON 格式規格。
拿掉事件方格數據連線
若要從 Azure 入口網站 移除 Event Grid 連線,請執行下列步驟:
- 移至您的叢集。 從左側功能表中,選取 [ 資料庫]。 然後,選取包含目標數據表的資料庫。
- 從左側功能表中,選取 [數據連線]。 然後,選取相關事件方格數據連線旁的複選框。
- 從頂端功能表欄,選取 [ 刪除]。