Azure 資料總管資料擷取概觀
數據擷取牽涉到將數據載入叢集中的數據表。 Azure 資料總管可確保數據有效性、視需要轉換格式,以及執行架構比對、組織、編製索引、編碼和壓縮等操作。 擷取之後,數據就可供查詢。
Azure 數據總管會使用串流或佇列擷取,提供一次性擷取或建立連續擷取管線。 若要判斷適合您,請參閱單次數據擷取和連續數據擷取。
注意
數據會根據設定 的保留原則保存在記憶體中。
一次性數據擷取
單次擷取有助於傳輸歷程記錄數據、填入遺漏的數據,以及原型設計和數據分析的初始階段。 這種方法有助於快速的數據整合,而不需要持續管線承諾。
有多種方式可執行單次數據擷取。 使用下列判定樹來判斷最適合使用案例的選項:
如需詳細資訊,請參閱相關文件:
圖說文字 | 相關文件 |
---|---|
如需擷取,請參閱 Azure 數據總管支持的數據格式。 | |
請參閱 Azure Data Factory 管線支援的檔案格式。 | |
若要從現有的記憶體系統匯入數據,請參閱 如何將歷程記錄數據內嵌至 Azure 數據總管。 | |
在 Azure 數據總管 Web UI 中,您可以從本機檔案、Amazon S3 或 Azure 儲存體 取得數據。 | |
若要與 Azure Data Factory 整合,請參閱 使用 Azure Data Factory 將數據複製到 Azure 數據總管。 | |
Kusto 用戶端連結庫 適用於 C#、Python、Java、JavaScript、TypeScript 和 Go。 您可以撰寫程式代碼來操作您的數據,然後使用 Kusto 擷取連結庫將數據內嵌至 Azure 數據總管數據表。 數據必須在擷取之前,使用其中 一種支援的格式 。 |
持續擷取資料
持續擷取在需要實時數據立即深入解析的情況中表現優異。 例如,持續擷取適用於監視系統、記錄和事件數據,以及即時分析。
連續數據擷取牽涉到使用串流或佇列擷取來設定擷取管線:
串流擷取:此方法可確保每個數據表小型數據集的近乎實時延遲。 數據會從串流來源擷取微批次,一開始放在數據列存放區中,然後傳輸至數據行存放區範圍。 如需詳細資訊,請參閱 設定串流擷取。
佇列擷取:這個方法已針對高擷取輸送量進行優化。 數據會根據擷取屬性進行批處理,然後合併並優化小型批次,以便快速查詢結果。 根據預設,佇列值上限為 5 分鐘、1000 個專案,或總大小為 1 GB。 佇列擷取命令的數據大小限制為 6 GB。 此方法會使用重試機制來減輕暫時性失敗,並遵循「至少一次」傳訊語意,以確保程式中不會遺失任何訊息。 如需佇列擷取的詳細資訊,請參閱 擷取批處理原則。
注意
在大部分情況下,我們建議使用佇列擷取,因為它是效能更高的選項。
有多種方式可以設定連續數據擷取。 使用下列判定樹來判斷最適合使用案例的選項:
如需詳細資訊,請參閱相關文件:
圖說文字 | 相關文件 |
---|---|
如需連接器清單,請參閱 連接器概觀。 | |
建立事件中樞數據連線。 與事件中樞整合提供節流、重試、監視和警示等服務。 | |
從 Apache Kafka 擷取數據,這是一個分散式串流平臺,用於建置即時串流數據管線。 | |
建立 IoT 中樞 數據連線。 與 IoT 中樞整合提供節流、重試、監視和警示等服務。 | |
建立事件方格數據連線。 與事件方格整合提供節流、重試、監視和警示等服務。 | |
請參閱相關連接器的指引,例如Apache Spark、Apache Kafka、Azure Cosmos DB、Fluent Bit、Logstash、Open Telemetry、Power Automate、Splunk 等等。 如需詳細資訊,請參閱 連接器概觀。 | |
Kusto 用戶端連結庫 適用於 C#、Python、Java、JavaScript、TypeScript 和 Go。 您可以撰寫程式代碼來操作您的數據,然後使用 Kusto 擷取連結庫將數據內嵌至 Azure 數據總管數據表。 數據必須在擷取之前,使用其中 一種支援的格式 。 |
注意
所有擷取方法都不支援串流擷取。 如需支援詳細數據,請查看檔以取得特定擷取方法。
使用管理命令直接擷取
Azure 資料總管提供下列擷取管理命令,其會直接將數據內嵌至您的叢集,而不是使用數據管理服務。 它們只應用於探索和原型設計,而不是用於生產或大量案例。
- 內嵌擷取: .ingest 內嵌命令 包含要擷取的數據,成為命令文字本身的一部分。 此方法適用於即興測試目的。
- 從查詢擷取: .set、.append、.set-or-append 或 .set-or-replace 命令 間接指定要內嵌的數據做為查詢或命令的結果。
- 從記憶體擷取:.ingest into 命令會取得從外部記憶體擷取的數據,例如 Azure Blob 儲存體,由您的叢集存取,並由命令指向。
注意
發生失敗時,會再次執行擷取,並使用指數輪詢方法重試最多 48 小時,以在嘗試之間等候時間。
比較擷取方法
下表比較主要擷取方法:
擷取名稱 | 資料類型 | 檔案大小上限 | 串流、已排入佇列、直接 | 最常見的案例 | 考量 |
---|---|---|---|---|---|
Apache Spark 連接器 | Spark 環境支援的每個格式 | 不限定 | 佇列 | 現有的管線,在擷取之前先處理Spark,快速從Spark環境支援的各種來源建立安全 (Spark) 串流管線。 | 請考慮 Spark 叢集的成本。 針對批次寫入,請與事件方格的 Azure 數據總管數據連線進行比較。 針對Spark串流,請與事件中樞的數據連線進行比較。 |
Azure Data Factory (ADF) | 支援的數據格式 | 無限制。 繼承ADF限制。 | 佇列或每個 ADF 觸發程式 | 支援不支援的格式,例如 Excel 和 XML,而且可以從 90 多個來源將大型檔案從 perm 複製到雲端 | 此方法在擷取數據之前需要較長的時間。 ADF 會將所有數據上傳至記憶體,然後開始擷取。 |
Event Grid | 支援的數據格式 | 1 GB 未壓縮 | 佇列 | 從 Azure 記憶體、Azure 記憶體中的外部數據連續擷取 | 擷取可由 Blob 重新命名或 Blob 建立動作觸發 |
事件中樞 | 支援的數據格式 | N/A | 已排入佇列,串流 | 訊息、事件 | |
取得數據體驗 | *SV、JSON | 1 GB 未壓縮 | 已排入佇列或直接擷取 | 一次性建立數據表架構、使用事件方格連續擷取的定義、使用容器大量擷取 (最多 5,000 個 Blob;使用歷程記錄擷取時沒有限制) | |
IoT 中樞 | 支援的數據格式 | N/A | 已排入佇列,串流 | IoT 訊息、IoT 事件、IoT 屬性 | |
Kafka 連接器 | Avro、ApacheAvro、JSON、CSV、Parquet 和 ORC | 無限制。 繼承 Java 限制。 | 已排入佇列,串流 | 現有的管線,來自來源的大量耗用量。 | 喜好設定可由現有使用多個產生者或取用者服務或所需的服務管理層級來決定。 |
Kusto 用戶端連結庫 | 支援的數據格式 | 1 GB 未壓縮 | 已排入佇列、串流、直接 | 根據組織需求撰寫您自己的程序代碼 | 透過在擷取程式期間和之後將記憶體交易降至最低,以優化程序設計擷取,以降低擷取成本(COG)。 |
LightIngest | 支援的數據格式 | 1 GB 未壓縮 | 已排入佇列或直接擷取 | 數據遷移、經過調整的擷取時間戳、大量擷取的歷史數據 | 區分大小寫和區分空間 |
Logic Apps | 支援的數據格式 | 1 GB 未壓縮 | 佇列 | 用來自動化管線 | |
LogStash | JSON | 無限制。 繼承 Java 限制。 | 佇列 | 現有的管線,使用Logstash的成熟 開放原始碼本質,從輸入大量耗用量。 | 喜好設定可由現有使用多個產生者或取用者服務或所需的服務管理層級來決定。 |
Power Automate | 支援的數據格式 | 1 GB 未壓縮 | 佇列 | 擷取命令作為流程的一部分。 用來自動化管線。 |
如需其他連接器的資訊,請參閱 連接器概觀。
權限
下列清單描述各種擷取案例所需的許可權:
- 若要建立新的數據表,至少需要資料庫用戶權力。
- 若要將數據內嵌至現有的數據表,而不需變更其架構,至少需要資料庫擷取器許可權。
- 若要變更現有數據表的架構,至少需要數據表管理員或資料庫管理員許可權。
如需詳細資訊,請參閱 Kusto 角色型存取控制。
擷取程式
下列步驟概述一般擷取程式:
設定保留原則 (選擇性):如果資料庫保留原則不適合您的需求,請在數據表層級覆寫。 如需詳細資訊,請參閱保留原則。
建立數據表:如果您使用取得數據體驗,您可以在擷取流程中建立數據表。 否則,請在 Azure 數據總管 Web UI 或 .create 數據表命令中擷取之前先建立數據表。
建立架構對應:架構對應有助於將源數據欄位系結至目的地數據表數據行。 支援不同類型的對應,包括 CSV、JSON 和 AVRO 等數據列導向格式,以及 Parquet 等數據行導向格式。 在大部分的方法中,對應也可以在 數據表上預先建立。
設定更新原則 (選擇性):特定數據格式,例如 Parquet、JSON 和 Avro,可讓您直接擷取時間轉換。 如需在擷取期間更複雜的處理,請使用 更新原則。 此原則會自動對原始數據表內嵌的數據執行擷取和轉換,然後將修改過的數據內嵌到一或多個目的地數據表中。
內嵌數據:使用您慣用的擷取工具、連接器或方法來帶入數據。