Azure 資料總管資料擷取概觀

資料擷取是一個程序,用於從一或多個來源將資料記錄載入 Azure 資料總管中的資料表。 一旦擷取之後,資料就會變成可供查詢。

下圖顯示在 Azure 資料總管中工作的端對端流程,以及顯示不同的擷取方法。

資料擷取和管理的概觀配置。

Azure 資料總管中負責資料擷取的資料管理服務可實作下列程序:

Azure 資料總管會從外部來源提取資料,並從擱置的 Azure 佇列中讀取要求。 資料會進行批次處理或串流處理到資料管理員。 流向相同資料庫和資料表的批次資料,已針對擷取輸送量最佳化。 Azure 資料總管會驗證初始資料,並在必要時轉換資料格式。 進一步資料操作包括比對結構描述、組織、編製索引、編碼以及壓縮資料。 資料會根據設定保留原則保存在儲存體中。 然後,資料管理員會將內嵌的資料認可至引擎,以供查詢使用。

支援的資料格式、屬性和權限

批次處理與串流擷取

  • 批次處理擷取會進行資料批次處理,並已針對高擷取輸送量進行最佳化。 這個方法是擷取慣用的最高效能類型。 資料會根據擷取屬性進行批次處理。 小型批次的資料會接著合併,並針對快速查詢結果進行最佳化。 您可以在資料庫或資料表上設定擷取批次處理原則。 根據預設,最大批次處理值為 5 分鐘、1000 個項目,或總大小為 1 GB。 批次擷取命令的資料大小限制為 6 GB。

  • 串流擷取是從串流來源進行的資料擷取。 串流擷取可讓您以近乎即時的延遲來處理每個資料表的小型資料集。 資料一開始會內嵌到資料列存放區,然後移至資料行存放區範圍。 您可使用 Azure 資料總管用戶端程式庫或其中一個支援的資料管線來完成串流擷取。

擷取方法和工具

Azure 資料總管支援數種擷取方法,而每種方法都有自己的目標案例。 這些方法包括擷取工具、各種服務的連接器和外掛程式、受控管線、使用 SDK 的程式設計擷取,以及擷取的直接存取權。

使用受控管線進行擷取

對於想要由外部服務進行管理 (節流、重試、監視、警示等) 的組織而言,使用連接器可能是最適當的解決方案。 已排入佇列的擷取適合大量資料。 Azure 資料總管支援下列 Azure Pipelines:

使用連接器和外掛程式的擷取

使用 SDK 進行程式設計擷取

Azure 資料總管會提供可用於查詢和資料擷取的 SDK。 程式設計擷取適合用於將擷取程序期間和之後的儲存體交易降至最低,藉此降低擷取成本 (COG)。

可用的 SDK 及開放原始碼專案

工具

  • 擷取精靈:可讓您從各種來源類型建立和調整資料表,以快速擷取資料。 擷取精靈會自動根據 Azure Data Explorer中的資料來源來建議資料表和對應結構。 精靈可用於單次擷取,或透過內嵌資料所在容器上的事件方格定義連續擷取。

  • LightIngest :用於將特殊資料擷取至 Azure 資料總管的命令列公用程式。 此公用程式可以從本機資料夾或從 Azure blob 儲存體容器提取來源資料。

擷取控制項命令

使用命令將資料直接內嵌至引擎。 這個方法會略過資料管理服務,因此應該只用于探索和原型設計。 請勿在生產或高容量的案例中使用此方法。

  • 內嵌式擷取:系統會將控制命令 (.ingest inline) 傳送至引擎,並將資料內嵌為命令文字本身的一部分。 此方法適用於即興測試用途。

  • 從查詢內嵌:系統會將控制命令 (.set、.append、.set-or-append 或 .set-or-replace) 傳送至引擎,並將資料間接指定為查詢或命令的結果。

  • 從儲存體內嵌 (提取) :系統會將控制命令 (.ingest into) 傳送至引擎,並且讓儲存在某些外部儲存體 (例如 Azure Blob 儲存體) 中的資料可由引擎存取,並由命令指向。

比較擷取方法和工具

擷取名稱 資料類型 檔案大小上限 串流、批次處理、直接 最常見的案例 考量
擷取精靈 *sv、JSON 1 GB 未壓縮 (請參閱注意) 在直接擷取中批次處理至容器、本機檔案和 Blob 一次性建立資料表架構、使用事件方格連續擷取的定義、大量擷取容器 (最多 5,000 個 Blob;使用歷程記錄擷取) 時沒有限制
LightIngest 所有支援的格式 1 GB 未壓縮 (請參閱注意) 透過 DM 或直接擷取批次處理至引擎 資料移轉、使用已調整擷取時間戳記的歷史資料、大量擷取 (無大小限制) 區分大小寫、空格敏感性
ADX Kafka Avro、ApacheAvro、JSON、CSV、Parquet 和 ORC 無限制。 繼承 JAVA 限制。 批次處理、串流 現有的管線,來自來源的大量耗用量。 喜好設定可取決於已使用「多個產生者/取用者」服務,或想要如何管理服務。
ADX 至 Apache Spark Spark 環境支援的每個格式 無限制 批次 在擷取之前,在 Spark 上預先處理現有的管線,快速建立安全 (Spark) 串流管線,而 Spark 環境支援的各種來源。 請考慮 Spark 叢集的成本。 針對批次寫入,請與事件方格的 Azure Data Explorer資料連線進行比較。 針對 Spark 串流,請與事件中樞的資料連線進行比較。
LogStash JSON 無限制。 繼承 JAVA 限制。 連接器的輸入為 Logstash 事件,而連接器會使用批次處理擷取輸出至 Kusto。 現有的管線,利用 Logstash 的成熟、開放原始碼本質,從輸入 (s) 大量耗用量。 喜好設定可取決於已使用「多個產生者/取用者」服務,或想要如何管理服務。
Azure Data Factory (ADF) 支援的資料格式 每個 ADF 限制的無限制 * () 批次處理或經由 ADF 觸發程序 支援通常不受支援的格式、大型檔案、可從超過 90 個來源複製 (從內部部署環境複製到雲端) 這個方法需要相當多的時間,直到擷取資料為止。 ADF 會將所有資料上傳至記憶體,然後開始擷取。
Power Automate 所有支援的格式 1 GB 未壓縮 (請參閱注意) 批次 在流程中擷取命令。 用來自動化管線。
Logic Apps 所有支援的格式 1 GB 未壓縮 (請參閱注意) 批次 用來自動化管線
IoT 中樞 支援的資料格式 N/A 批次處理、串流 IoT 訊息、IoT 事件、IoT 屬性
事件中樞 支援的資料格式 N/A 批次處理、串流 訊息、事件
事件方格 支援的資料格式 1 GB 未壓縮 批次處理 從 Azure 儲存體、Azure 儲存體中的外部資料進行連續擷取 擷取可由 Blob 重新命名或 Blob 建立動作觸發
.NET SDK 所有支援的格式 1 GB 未壓縮 (請參閱注意) 批次處理、串流、直接 根據組織需求撰寫自己的程式碼
Python 所有支援的格式 1 GB 未壓縮 (請參閱注意) 批次處理、串流、直接 根據組織需求撰寫自己的程式碼
Node.js 所有支援的格式 1 GB 未壓縮 (請參閱注意) 批次處理、串流、直接 根據組織需求撰寫自己的程式碼
Java 所有支援的格式 1 GB 未壓縮 (請參閱注意) 批次處理、串流、直接 根據組織需求撰寫自己的程式碼
REST 所有支援的格式 1 GB 未壓縮 (請參閱注意) 批次處理、串流、直接 根據組織需求撰寫自己的程式碼
Go 所有支援的格式 1 GB 未壓縮 (請參閱注意) 批次處理、串流、直接 根據組織需求撰寫自己的程式碼

注意

在上表中參考時,擷取支援檔案大小上限 6 GB。 建議內嵌 100 MB 和 1 GB 之間的檔案。

擷取程序

一旦選擇了最符合您需求的擷取方法,請執行下列步驟:

  1. 設定批次處理原則 (選擇性)

    批次處理管理員會根據擷取 批次處理原則來批次擷取資料。 在擷取之前定義批次處理原則。 請參閱 擷取最佳做法 - 優化輸送量。 批次處理原則變更最多可能需要 5 分鐘才會生效。 此原則會根據三個因素來設定批次限制:批次建立後經過的時間、 (blob 的累積數目) 或批次大小總計。 根據預設,設定為 5 分鐘/1000 個 Blob / 1 GB,第一次達到限制就會生效。 因此,將範例資料排入佇列以進行擷取時,通常會有 5 分鐘的延遲。

  2. 設定保留原則

    在 Azure 資料總管中內嵌至資料表的資料會受制於資料表的有效保留原則。 除非明確設定於資料表上,否則有效保留原則會衍生自資料庫的保留原則。 熱保留是叢集大小和保留原則的函式。 內嵌的資料超過您的可用空間,將會強制第一筆資料冷保留。

    請確定資料庫的保留原則適合您的需求。 如果不是,請在資料表層級明確覆寫。 如需詳細資訊,請參閱保留原則

  3. 建立資料表

    為了內嵌資料,必須事先建立資料表。 使用下列其中一個選項:

    注意

    如果記錄不完整或無法將欄位剖析為所需的資料類型,則會將對應的資料表資料行填入 null 值。

  4. 建立結構描述對應

    結構描述對應可協助將來源資料欄位繫結至目的地資料表資料行。 對應可讓您根據定義的屬性,將不同來源的資料放入相同的資料表。 支援不同類型的對應,包括資料列導向 (CSV、JSON 和 AVRO) 和資料行導向 (Parquet)。 在大多數的方法中,對應也可以在資料表上預先建立並從內嵌命令參數進行參考。

  5. 設定更新原則 (選擇性)

    某些資料格式對應 (Parquet、JSON 和 Avro) 支援簡單且實用的內嵌時間轉換。 如果案例在擷取時需要更複雜的處理,請調整 更新原則,以支援使用查詢命令進行輕量型處理。 更新原則會自動對原始資料表上內嵌的資料執行擷取和轉換,並將結果產生的資料內嵌到一或多個目的地資料表。

  6. 擷取資料

    您可以使用命令或擷取精靈,將 範例資料 內嵌至資料庫中建立的資料表。 若要內嵌您自己的資料,您可以從各種選項中選取,包括 擷取工具連接器和外掛程式 到各種服務、 受控管線使用 SDK 以程式設計方式擷取,以及 直接存取擷取

後續步驟