建立 Azure Data Explorer 的事件方格數據連線

在本文中,您將瞭解如何使用事件方格數據連線,將 Blob 從記憶體帳戶內嵌至 Azure Data Explorer。 您將建立設定 Azure 事件方格 訂用帳戶的事件方格資料連線。 事件方格訂用帳戶會透過 Azure 事件中樞,將事件從記憶體帳戶路由傳送至 Azure Data Explorer。

注意

擷取最多可支援 6GB 的檔案大小。 建議內嵌 100 MB 和 1 GB 之間的檔案。

若要瞭解如何使用 Kusto SDK 建立連線,請參閱 使用 SDK 建立事件方格數據連線

如需從事件方格擷取至 Azure Data Explorer 的一般資訊,請參閱連線到事件方格

注意

若要使用 Event Grid 連線達到最佳效能,請透過 Blob 元數據設定 rawSizeBytes 擷取屬性。 如需詳細資訊,請參閱 擷取屬性

必要條件

建立事件方格資料連線

在本節中,您會建立 Event Grid 與 Azure Data Explorer 數據表之間的連線。

  1. 流覽至 Azure 入口網站 中的 Azure Data Explorer 叢集。

  2. [數據] 底下,選取 [ 資料庫>TestDatabase]。

    叢集資料庫區段的螢幕快照,其中顯示其包含的資料庫清單。

  3. 在 [設定] 底下,選取 [數據連線],然後選取 [新增數據>連線事件方格] (Blob 記憶體)

    [數據連線] 頁面的螢幕快照。新增數據連線的選項會反白顯示。

  4. 使用下列資訊填寫事件方格資料連線表單:

    [事件方格] 窗格的螢幕快照,其中顯示數據連線的詳細數據。

    設定 建議的值 欄位描述
    資料連線名稱 test-grid-connection 您想要在 Azure 資料總管中建立的連線名稱。 數據連線名稱只能包含英數位元、虛線和點字元,長度最多為 40 個字元。
    儲存體帳戶訂用帳戶 您的訂用帳戶識別碼 儲存體帳戶所在的訂用帳戶識別碼。
    事件類型 blob 已建立blob 已重新命名 觸發擷取的事件類別。 只有 ADLSv2 儲存體支援 blob 已重新命名。 若要重新命名 Blob,請流覽至 Azure 入口網站 中的 Blob,以滑鼠右鍵按兩下 Blob,然後選取 [重新命名]。 支援的型別:Microsoft.Storage.BlobCreated 或 Microsoft.Storage.BlobRenamed。
    儲存體帳戶 gridteststorage1 您先前建立之儲存體帳戶的名稱。
    資源建立 自動 開啟自動資源建立表示 Azure Data Explorer 會為您建立事件方格訂用帳戶、事件中樞命名空間和事件中樞。 否則,您必須手動建立這些資源,以確保建立數據連線。 請參閱 手動建立事件方格擷取的資源
    1. 您可以選擇性地追蹤特定的事件方格主體。 設定通知的篩選條件,如下所示:

      • 前置詞欄位是主題的常值前置詞。 當套用的模式 開頭時,它可以跨越多個容器、資料夾或 Blob。 不允許使用萬用字元。
        • 若要在 blob 容器上定義篩選條件,欄位必須按照以下方式設定:/blobServices/default/containers/[container prefix]
        • 若要在 blob 前置詞 (或 Azure Data Lake Gen2) 上定義資料夾,欄位必須按照以下方式設定:/blobServices/default/containers/[container name]/blobs/[folder/blob prefix]
      • 後置詞欄位是 blob 的常值後置詞。 不允許使用萬用字元。
      • 區分大小寫欄位顯示前置詞和後置詞篩選條件是否區分大小寫

      如需篩選事件的詳細資訊,請參閱 Blob 記憶體事件

    2. 您可以選擇性地根據下列資訊指定 資料路由設定 。 您不需要指定所有資料 路由設定。 也會接受部分設定。

      設定 建議的值 欄位描述
      允許將數據路由傳送至其他資料庫, (多資料庫數據連線) 不允許 如果您想要覆寫與數據連線相關聯的默認目標資料庫,請切換此選項。 如需資料庫路由的詳細資訊,請參閱 事件路由
      資料表名稱 TestTable 您在 TestDatabase 中建立的資料表。
      資料格式 JSON 支援的格式包括APACHEAVRO、Avro、CSV、JSON、ORC、PARQUET、PSV、RAW、SCSV、SOHSV、TSV、TSVE、TXT 和 W3CLOG。 支援的壓縮選項為 Zip 和 Gzip。
      對應名稱 TestTable_mapping 您在 TestDatabase 中建立的對應,會將傳入的資料對應至資料行名稱和 TestTable 的資料類型。 如果未指定,則會自動產生衍生自數據表架構的 識別數據對應
      忽略格式錯誤 忽略 如果您想要忽略 JSON 資料格式的格式錯誤,請切換此選項。

      注意

      數據表和對應名稱會區分大小寫。

    3. 您可以選擇性地在 [ 進階設定] 下,指定數據連線所使用的 受控識別類型 。 根據預設,系統會選取 [系統指派 ]。

      如果您選取 [使用者指派],則必須手動指派受控識別。 如果您選取尚未指派給叢集的使用者,則會自動指派該使用者。 如需詳細資訊,請參閱設定 Azure Data Explorer 叢集的受控識別

      如果您選取 [無],記憶體帳戶和事件中樞會透過連接字串進行驗證。 不建議使用此方法。

      [進階設定] 區段的螢幕快照,其中顯示可用於數據連線的受控識別類型。

  5. 選取 [建立]

使用事件方格數據連線

本節說明如何在建立 Blob 或 Blob 重新命名之後,觸發從 Azure Blob 儲存體 或 Azure Data Lake Gen 2 擷取至叢集。

根據用來上傳 Blob 的記憶體 SDK 類型,選取相關的索引標籤。

下列程式代碼範例會使用 Azure Blob 儲存體 SDK 將檔案上傳至 Azure Blob 儲存體。 上傳會觸發事件方格數據連線,將數據內嵌至 Azure Data Explorer。

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 Data Explorer 不會刪除擷取後的 Blob。 使用 Azure Blob 記憶體生命週期來管理 Blob 刪除,將 Blob 保留三到五天。

注意

啟用階層命名空間功能的記憶體帳戶不支援在作業之後 CopyBlob 觸發擷取。

拿掉事件方格數據連線

若要從 Azure 入口網站 移除 Event Grid 連線,請執行下列步驟:

  1. 移至您的叢集。 從左側功能表中,選取 [ 資料庫]。 然後,選取包含目標數據表的資料庫。
  2. 從左側功能表中,選取 [數據連線]。 然後,選取相關事件方格數據連線旁的複選框。
  3. 從頂端功能表列選取 [ 刪除]。