azure-data-explorer - 如何撤消 Azure 数据资源管理器 (Kusto) 中的引入?
问题描述
背景:我正在关注本指南:https ://docs.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 ://docs.microsoft.com/en-us/azure/kusto/management/extents-overview 。如果您确实选择为此目的使用标签(并且无法避免需要“撤消”摄取的情况),请确保您阅读了该文档中的“性能说明”。
文档链接摘录:
'ingest-by:' 范围标签
以前缀开头的标签ingest-by:
可用于确保数据仅被摄取一次。ingestIfNotExists
如果已经存在具有此特定ingest-by:
标签的范围,您可以发出一个属性命令来阻止数据被摄取。tags
和的值ingestIfNotExists
都是字符串数组,序列化为 JSON。
以下示例仅提取一次数据。第二和第三条命令什么都不做:
.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"]')
[!NOTE] 通常,摄取命令可能同时包含
ingest-by:
标记和ingestIfNotExists
属性,设置为相同的值,如上面的第三个命令所示。
[!警告]
ingest-by
不建议过度使用标签。- 如果已知为 Kusto 提供数据的管道存在数据重复,我们建议您在将数据摄取到 Kusto 之前尽可能解决这些重复问题。
- 尝试
ingest-by
为每个摄取调用设置唯一标签可能会对性能产生严重影响。- 如果在提取数据后的一段时间内不需要此类标签,我们建议您删除范围标签。
- 要自动删除标签,您可以设置范围标签保留策略。
推荐阅读
- python - Python Selenium 使用 For 循环访问元素
- java - 如何使用与 Java 中的 Lambda 函数集成的 AWS API Gateway 中的 API?
- php - Laravel 外观的初始化如何工作(在“DB”示例中)?
- java - 如何在 Spring Boot Security 中使用 HMAC-SHA512 对密码进行编码
- python - Python skicit-learn k-最近邻 - 3D距离矩阵
- python - 在 sqlalchemy 中何时使用 `session_maker` 以及何时使用 `Session`
- firebase - Flutter 在选项卡导航中从 firebase 检索数据的最有效方法
- python - 用于检测空白音频文件的 Python 脚本
- servicestack - 表中的 OrmLite upsert
- r - 使用 redoc::dedoc 从 *.docx 转换损坏