事件方格資料連線
事件方格內嵌是接聽 Azure 儲存體的管線,並會在訂閱的事件發生時,更新 Azure 資料總管以提取資訊。 Azure Data Explorer 提供從 Azure 記憶體 (Blob 記憶體和 ADLSv2) 的持續擷取,以及透過 Azure 事件方格 Azure 事件中樞 將這些通知串流至 Azure Data Explorer。
事件方格內嵌管線會經過數個步驟。 您會在 Azure Data Explorer 中建立目標數據表,其中會擷取特定格式的數據。 接著,您會在 Azure Data Explorer 中建立事件方格數據連線。 事件方格資料連線需要知道事件路由資訊,例如要將資料傳送到哪個資料表以及資料表對應。 您也會指定內嵌屬性,其會描述要內嵌的資料、目標資料表和對應。 您可以產生範例資料,然後上傳 Blob 或重新命名 Blob 以測試您的連線。 內嵌之後刪除 Blob。
事件方格擷取可以透過 Azure 入口網站、使用擷取精靈、以程序設計方式使用 C# 或 Python,或使用 Azure Resource Manager 範本來管理。
如需 Azure Data Explorer 中數據擷取的一般資訊,請參閱 Azure Data Explorer 數據擷取概觀。
Azure Data Explorer 數據連線驗證機制
- 受控識別 型數據連線 (建議) :使用受控識別型數據連線是連線至數據源的最安全方式。 它提供從數據源擷取數據的能力的完整控制權。
使用受控識別設定數據連線需要下列步驟:
- 將受控識別新增至叢集。
- 授與數據源上受控識別的許可權。
- 在目標資料庫上設定 受控識別原則 。
- 使用受控識別驗證來擷取數據,建立數據連線。
警告
如果從數據源中移除受控識別許可權,則會停用數據連線,且無法從數據源擷取數據。
- 金鑰型資料連線:如果未在數據連線中指定受控識別,聯機會自動預設為金鑰型驗證。 索引鍵型聯機會使用資源 連接字串 來擷取數據,例如 Azure 事件中樞 連接字串。 Azure Data Explorer 會產生指定資源的資源 連接字串,並將它安全地儲存在數據連線中。 然後,連接字串 用來從數據源擷取數據。
警告
如果輪替密鑰,則會停用數據連線,且無法從數據源擷取數據。 若要修正此問題,請更新或重新建立數據連線。
- 因此,MI 可以從 Azure 記憶體擷取數據,至少應該有:
- Azure 事件中樞 Azure 事件中樞 上的數據接收者。
- Azure 記憶體帳戶上的記憶體 Blob 資料讀取器。
資料格式
注意
針對 BlobStorage
、StorageV2
或 Data Lake Storage Gen2,可在 Azure 儲存體帳戶上設定事件方格通知訂閱。
內嵌屬性
您可以透過 Blob 中繼資料指定 Blob 內嵌的內嵌屬性。 您可以設定下列屬性:
屬性 | Description |
---|---|
rawSizeBytes |
原始 (未壓縮) 資料的大小。 對於 Avro/ORC/Parquet,這是套用格式特定壓縮之前的大小。 將此屬性設定為未壓縮的資料大小 (以位元組為單位),以提供原始資料大小。 |
kustoDatabase |
目標資料庫的區分大小寫名稱。 根據預設,數據會內嵌到與數據連線相關聯的目標資料庫中。 使用此屬性覆寫預設資料庫,並將數據傳送至不同的資料庫。 若要這樣做,您必須先 將連接設定為多資料庫連線。 |
kustoTable |
現有目標數據表的區分大小寫名稱。 覆寫 Data Connection 窗格上的 Table 集。 |
kustoDataFormat |
資料格式 覆寫 Data Connection 窗格上的 Data format 集。 |
kustoIngestionMappingReference |
要使用的現有內嵌對應名稱。 覆寫 Data Connection 窗格上的 Column mapping 集。 |
kustoIgnoreFirstRecord |
如果設定為 true ,Kusto 會忽略 Blob 的第一個資料列。 用於表格式資料 (CSV、TSV 或類似資料) 來忽略標頭。 |
kustoExtentTags |
此字串代表將附加至結果範圍的標籤。 |
kustoCreationTime |
覆寫 Blob 的範圍 建立時間 ,格式為 ISO 8601 字串。 用於回填。 |
事件路由
當您建立與叢集的數據連線時,您會指定要傳送內嵌數據的位置路由。 預設路由會傳送至與目標資料庫相關聯之 連接字串 中指定的目標數據表。 數據的預設路由也稱為 靜態路由。 您可以使用事件資料屬性來指定資料的替代路由。
將事件數據路由傳送至替代資料庫
默認會關閉將數據路由至替代資料庫。 若要將數據傳送至不同的資料庫,您必須先將連接設定為多資料庫連接。 您可以在 Azure 入口網站、C#、Python 或 ARM 範本中執行此動作。 用來允許資料庫路由的使用者、群組、服務主體或受控識別,至少必須具有叢集的 參與者 角色和寫入許可權。 如需詳細資訊,請參閱建立 Azure Data Explorer 的事件方格數據連線。
若要指定替代資料庫,請設定 資料庫擷取屬性。
警告
指定替代資料庫而不將連接設定為多資料庫數據連線,會導致擷取失敗。
將事件數據路由傳送至替代數據表
設定與 Azure Data Explorer 叢集的 Blob 記憶體連線時,請指定目標資料表屬性:
- 資料表名稱
- 資料格式
- 對應
您也可以使用 Blob 中繼資料,為每個 Blob 指定目標資料表屬性。 資料將動態路由,如內嵌屬性所指定。
下列範例示範如何在上傳 Blob 元數據之前,先在 Blob 元數據上設定擷取屬性。 Blob 會路由傳送至不同的資料表。
此外,您可以指定目標資料庫。 事件方格數據聯機會在特定資料庫的內容內建立。 因此,此資料庫是數據連線的預設資料庫路由。 若要將數據傳送至不同的資料庫,請設定 「KustoDatabase」 擷取屬性,並將數據連線設定為多資料庫數據連線。 默認會停用將數據路由至另一個資料庫, (不允許) 。 設定與數據連線資料庫不同的資料庫擷取屬性,而不允許將數據路由傳送至多個資料庫, (將連線設定為多重資料庫數據連線) ,會導致擷取失敗。
如需詳細資訊,請參閱上傳 Blob。
var container = new BlobContainerClient("<storageAccountConnectionString>", "<containerName>");
await container.CreateIfNotExistsAsync();
var blob = container.GetBlobClient("<blobName>");
// Blob is dynamically routed to table `Events`, ingested using `EventsMapping` data mapping
await blob.SetMetadataAsync(
new Dictionary<string, string>
{
{ "rawSizeBytes", "4096" }, // the uncompressed size is 4096 bytes
{ "kustoTable", "Events" },
{ "kustoDataFormat", "json" },
{ "kustoIngestionMappingReference", "EventsMapping" },
{ "kustoDatabase", "AnotherDB" }
}
);
await blob.UploadAsync(BinaryData.FromString(File.ReadAllText("<filePath>")));
上傳 Blob
您可以從本機檔案建立 Blob、將內嵌屬性設定為 Blob 中繼資料,然後將其上傳。 如需範例,請參閱 使用事件方格數據連線。
注意
- 強烈建議使用
BlockBlob
來產生數據,因為usingAppendBlob
可能會導致非預期的行為。 - 使用 Azure Data Lake Gen2 記憶體 SDK 需要使用
CreateFile
來上傳檔案,並在Flush
結尾將 close 參數設定為true
。 如需 Data Lake Gen2 SDK 正確使用方式的詳細範例,請參閱 使用事件方格數據連線。 - 在啟用階層命名空間功能的記憶體帳戶不支援在作業之後
CopyBlob
觸發擷取。 - 當事件中樞端點未認可收到事件時,Azure 事件方格 會啟動重試機制。 如果此重試傳遞失敗,事件方格可以使用「無效信件處理」程序,將未傳遞的事件傳遞至儲存體帳戶。 如需詳細資訊,請參閱 Event Grid 訊息傳遞與重試。
重新命名 Blob
使用 ADLSv2 時,您可以將 Blob 重新命名為觸發 Blob 擷取至 Azure Data Explorer。 例如,請參閱 重新命名 Blob。
注意
- 目錄重新命名可在 ADLSv2 中進行,但其不會觸發「Blob 重新命名」事件,以及將 Blob 內嵌目錄中的動作。 若要在重新命名之後內嵌 Blob,請直接重新命名所需的 Blob。
- 如果您在 建立數據連線 或 手動建立事件方格資源時定義篩選來追蹤特定主體,這些篩選會套用至目的地檔案路徑。
使用儲存體生命週期刪除 Blob
Azure Data Explorer 不會在擷取之後刪除 Blob。 使用 Azure Blob 儲存體生命週期來管理您的 Blob 刪除。 建議將 Blob 保留三到五天。
已知的事件方格問題
- 使用 Azure Data Explorer 匯出用於事件方格擷取的檔案時,請注意:
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應