上下文:我遵循本指南:https://learn.microsoft.com/en-us/azure/kusto/api/netfx/kusto-ingest-client-examples
我正在使用IngestFromStorageAsync
- 我看到结果有一个IngestionSourceId
(GUID) - 但我不知道如何处理。(这不是范围 ID)
我假设您可以使用此 ID 删除导入的所有记录......
有谁知道如何撤消摄取?
目前,我正在使用.show cluster extents
来显示范围 ID,然后调用.drop extent [id]
。 这是撤消引入的正确方法吗?
撤消"引入实质上是删除引入的数据。
删除数据可以在扩展数据块(数据分片)的分辨率下完成,并且扩展数据块可以在任何给定时刻相互合并(例如,在引入数据后立即
)。如果你知道有可能想要删除刚刚引入的数据(并且无法修复导致这些"错误"(?) 引入的引入管道),则可以遵循的一个方向是使用范围标记,以便能够识别作为引入的一部分创建的范围, 然后放下它们。
更多信息可以在这里找到:https://learn.microsoft.com/en-us/azure/kusto/management/extents-overview。 如果您选择将标签用于此目的(并且无法避免需要"撤消"摄取的情况),请确保阅读该文档中的"性能说明"。
摘自文档链接:
"引入者:"范围标记
以ingest-by:
前缀开头的标签可用于确保数据 仅摄入一次。您可以发出ingestIfNotExists
属性命令,以防止在已存在具有此特定ingest-by:
标签的扩展数据时引入数据。tags
和ingestIfNotExists
的值都是字符串数组, 序列化为 JSON。
以下示例仅引入数据一次。第 2 个和第 3 个命令不执行任何操作:
.ingest ... with (tags = '["ingest-by:2016-02-17"]')
.ingest ... with (ingestIfNotExists = '["2016-02-17"]')
.ingest ... with (ingestIfNotExists = '["2016-02-17"]', tags = '["ingest-by:2016-02-17"]')
[!注] 通常,摄取命令可能包括
ingest-by:
标签和ingestIfNotExists
属性, 设置为相同的值,如上面的第三个命令所示。
[!警告]
- 不建议过度使用
ingest-by
标记。- 如果已知向 Kusto 馈送的管道存在数据重复,建议在将数据引入 Kusto 之前尽可能多地解决这些重复问题。
- 尝试为每个引入调用设置唯一的
ingest-by
标记可能会导致对性能产生严重影响。- 如果在引入数据后的一段时间内不需要此类标签,我们建议您删除范围标签。
- 要自动删除标签,可以设置扩展数据块标签保留策略。