你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Kusto 引入库的最佳做法
本文介绍使用 Kusto Ingest 库引入数据的最佳做法。
优先排队而不是直接引入
对于生产方案,请使用排队引入客户端。 有关详细信息,请参阅 排队引入 和 直接引入。
使用单个引入客户端实例
Kusto 引入客户端实现是线程安全且可重用的。 对于每个目标群集,每个进程使用排队或直接引入客户端的单个实例。 运行多个实例可能会使群集过载,导致群集变得无响应或响应有效请求的速度缓慢。
限制跟踪操作状态
对于大型数据流,限制对引入请求使用正通知。 过多的跟踪可能会导致引入延迟增加,甚至导致群集完全无响应。 有关详细信息,请参阅 操作状态。
优化吞吐量
规划引入管道时,请考虑以下因素,因为它们可能会对引入吞吐量产生重大影响。
因子 | 说明 |
---|---|
数据大小 | 在大区块中执行时,引入效率更高。 建议将 100 MB 到 1 GB 的数据分批发送 (未压缩) 。 |
数据格式 | CSV 是最快的引入格式。 对于相同数据量,JSON 可能需要 2 倍或 3 倍的时间。 有关详细信息,请参阅引入 支持的数据格式。 |
表宽度 | 仅引入基本数据。 需要对每列进行编码和编制索引,这意味着较宽的表可能会降低吞吐量。 通过提供引入 映射来控制引入哪些字段。 |
源数据位置 | 避免跨区域读取可加快引入速度。 |
群集上的负载 | 当群集遇到高查询负载时,引入需要更长的时间才能完成。 |
注意
排队引入客户端将大型数据集拆分为区块并聚合它们,这在引入之前无法对数据进行批处理时非常有用。
成本优化
使用 Kusto 客户端库将数据引入群集仍是最便宜且最可靠的选项。 我们敦促客户查看其引入方法,以优化成本,并利用 Azure 存储定价,使 Blob 事务具有显著的成本效益。
对于经济高效的引入:
- 限制引入的数据区块数,例如文件、Blob 和流。
- 引入最大 1GB 未压缩数据的大型区块。
- 选择批处理。
- 提供精确的未压缩数据大小,以避免额外的存储事务。
- 避免将 设置为
FlushImmediately
true
。 - 避免使用 或
drop-by
盘区标记发送少量数据ingest-by
。
注意
过度使用最后两种方法可能会中断数据聚合,导致额外的存储事务,并损害引入和查询性能。
相关内容
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈