Kusto 摄取事务在范围方面是否具有原子性?
Are Kusto ingestion transactions atomic in terms of extents?
我想知道 kusto 摄取事务是否保证在范围方面是原子的?所以假设我有一个进程定期将数据推送到某些 kusto table(例如使用 .append)并且每次推送到不同的范围标签(以确保在每次摄取中数据都不同extent id) ,是否可以保证给定范围内的所有记录同时出现在 table 中 - 因此整个范围对于查询 table 或 [=12 的任何人都是可见的=] 的记录可用。所以基本上就范围而言是原子性——试图确保在任何情况下部分写入的范围都不会暴露给任何查询。
对于 .append
命令:
- 成功完成命令后,添加的范围(如果有)将在单个事务中提交。
- 如果数据摄取失败(例如,存在暂时性存储故障),将不会添加新范围。
- 数据摄取失败时,当
extend_schema
选项设置为 true
时,目标 table 仍将扩展其架构。
- 不会出现并非所有创建的范围都提交到 table 的情况 - 要么全部提交,要么 none 提交。
对于 .set-or-append
命令:
- 如果 table 是由命令创建的(即,它不存在),无论顺序数据摄取阶段如何,它都会被提交。
- 成功完成命令后,添加的范围(如果有)将在单个事务中提交。
- 如果数据摄取失败(例如,存在暂时性存储故障),将不会添加新范围,但 table 将保留在数据库中。
- 数据摄取失败时,当
extend_schema
选项设置为 true
时,目标 table 仍将扩展其架构。
- 不会出现并非所有创建的范围都提交到 table 的情况 - 要么全部提交,要么 none 提交。
我想知道 kusto 摄取事务是否保证在范围方面是原子的?所以假设我有一个进程定期将数据推送到某些 kusto table(例如使用 .append)并且每次推送到不同的范围标签(以确保在每次摄取中数据都不同extent id) ,是否可以保证给定范围内的所有记录同时出现在 table 中 - 因此整个范围对于查询 table 或 [=12 的任何人都是可见的=] 的记录可用。所以基本上就范围而言是原子性——试图确保在任何情况下部分写入的范围都不会暴露给任何查询。
对于 .append
命令:
- 成功完成命令后,添加的范围(如果有)将在单个事务中提交。
- 如果数据摄取失败(例如,存在暂时性存储故障),将不会添加新范围。
- 数据摄取失败时,当
extend_schema
选项设置为true
时,目标 table 仍将扩展其架构。 - 不会出现并非所有创建的范围都提交到 table 的情况 - 要么全部提交,要么 none 提交。
对于 .set-or-append
命令:
- 如果 table 是由命令创建的(即,它不存在),无论顺序数据摄取阶段如何,它都会被提交。
- 成功完成命令后,添加的范围(如果有)将在单个事务中提交。
- 如果数据摄取失败(例如,存在暂时性存储故障),将不会添加新范围,但 table 将保留在数据库中。
- 数据摄取失败时,当
extend_schema
选项设置为true
时,目标 table 仍将扩展其架构。 - 不会出现并非所有创建的范围都提交到 table 的情况 - 要么全部提交,要么 none 提交。