如何在 Azure 数据资源管理器 (Kusto) 中撤消引入?



上下文:我遵循本指南: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:标签的扩展数据时引入数据。tagsingestIfNotExists的值都是字符串数组, 序列化为 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标记可能会导致对性能产生严重影响。
  • 如果在引入数据后的一段时间内不需要此类标签,我们建议您删除范围标签。
    • 要自动删除标签,可以设置扩展数据块标签保留策略。

最新更新