我想知道 kusto 摄取事务在范围方面是否保证是原子的?因此,假设我有一个进程定期将数据推送到某个 kusto 表(例如使用 .append)并且每次推送到不同的范围标签(以确保在每次摄取中数据进入不同的范围 id),是否可以保证给定范围中的所有记录同时出现在表中 - 因此查询该表的任何人都可以看到整个范围,或者没有记录可用。所以基本上就范围而言的原子性 - 试图确保在任何情况下都不会将部分写入的范围暴露给任何查询。
问问题
230 次
1 回答
3
对于一个.append
命令:
- 成功完成命令后,添加的范围(如果有)将在单个事务中提交。
- 在数据摄取失败时(例如,存在短暂的存储故障),将不会添加新的扩展区。
- 在数据摄入失败后,将
extend_schema
选项设置为时,true
目标表仍将扩展其架构。 - 不会出现并非所有创建的范围都提交到表的情况——要么全部提交,要么没有。
对于.set-or-append
命令:
- 如果表是由命令创建的(即,它不存在),则无论顺序数据摄取阶段如何,都会提交它。
- 成功完成命令后,添加的范围(如果有)将在单个事务中提交。
- 在数据摄取失败时(例如,发生暂时性存储故障),将不会添加新范围,但表将保留在数据库中。
- 在数据摄入失败后,将
extend_schema
选项设置为时,true
目标表仍将扩展其架构。 - 不会出现并非所有创建的范围都提交到表的情况——要么全部提交,要么没有。
于 2019-05-01T02:55:45.360 回答