Kusto 內嵌連結庫的最佳做法
適用於: ✅Microsoft網狀架構✅Azure 數據總管
本文說明使用 Kusto 擷取連結庫進行數據擷取的最佳做法。
偏好使用佇列而不是直接擷取
針對生產案例,請使用已排入佇列的內嵌用戶端。 如需詳細資訊,請參閱佇列擷取和直接擷取。
使用單一內嵌客戶端實例
Kusto 擷取客戶端實作是安全線程且可重複使用的。 針對每個目標資料庫,使用每個進程佇列或直接內嵌用戶端的單一實例。 執行多個實例可能會多載資料庫,而導致資料庫沒有回應或回應有效要求的速度變慢。
限制追蹤作業狀態
對於大型的數據流,請限制對擷取要求使用正面通知。 過度追蹤可能會導致擷取延遲增加,甚至完成無回應性。 如需詳細資訊,請參閱 作業狀態。
針對輸送量優化
規劃擷取管線時,請考慮下列因素,因為它們可能會影響擷取輸送量。
係數 | 描述 |
---|---|
資料大小 | 在大型區塊中完成時,擷取更有效率。 我們建議以 100 MB 到 1 GB 的批次傳送數據(未壓縮)。 |
資料格式 | 偏好數據格式,例如 CSV,或任何分隔文字格式,例如 PSV 或 TSV,以及已針對最大輸送量優化的 Parquet、JSON 或 AVRO。 如需詳細資訊,請參閱 擷取支持的數據格式。 |
表格寬度 | 只內嵌基本數據。 每個數據行都必須經過編碼和編製索引,這表示較寬的數據表可能會降低輸送量。 藉由提供 擷取對應來控制要擷取的欄位。 |
源數據位置 | 避免跨區域讀取以加速擷取。 |
在資料庫上載入 | 當資料庫遇到高查詢負載時,擷取需要較長的時間才能完成。 |
注意
佇列擷取用戶端會將大型數據集分割成區塊並加以匯總,這在擷取之前無法批處理數據時很有用。
進行成本最佳化
使用 Kusto 用戶端連結庫將數據內嵌至您的資料庫仍然是最便宜且最健全的選項。 我們敦促客戶檢閱其擷取方法,以優化成本,並利用 Azure 儲存體 定價,讓 Blob 交易大幅符合成本效益。
針對符合成本效益的擷取:
- 限制擷取的數據區塊數目,例如檔案、Blob 和數據流。
- 擷取最多 1 GB 未壓縮數據的大型區塊。
- 選擇批處理。
- 提供精確的未壓縮數據大小,以避免額外的記憶體交易。
- 避免將 設定
FlushImmediately
為true
。 - 避免使用
ingest-by
或drop-by
範圍標籤送少量的數據。
注意
過度使用最後兩種方法可能會中斷數據匯總、導致額外的記憶體交易,以及損害擷取和查詢效能。