【问题标题】:Incremental Data Load in Azure KustoAzure Kusto 中的增量数据加载
【发布时间】:2020-12-19 19:16:31
【问题描述】:

我正在尝试使用 ADF 从 Azure Devops 到 Azure Kusto 集群进行增量加载。由于 Kusto 没有更新或删除特定记录的选项,我已按照以下步骤实现增量数据加载。

  1. 数据将首次作为完整加载加载到主表(表 A)中。
  2. 我将从表 A 中获取最大修改日期,并使用以下过滤器仅将最新修改的数据加载到 Kusto 中的 TableStg。(>=(maxmodifieddate-1 天)
  3. 我将在 Kusto 中创建一个临时表 (TableTemp) 以将修改/新数据(来自 TableStg)和现有数据合并到单个表中,然后使用以下 KQL 将主表(表 A)替换为临时表。李>

.set-or-replace TableTemp with (distributed=true) <| set notruncation;let updated=TableStg|union TableA |summarize maxdate=max(ChangedDate) by WorkItemId;let mergeupdate=(TableStg|union TableTemp)|distinct *|join kind=inner updated on $left.WorkItemId==$right.WorkItemId|whereChangedDate==maxdate;mergeupdate| project-away WorkItemId1, maxdate

.drop table TableA ifexists ;

.rename tables TableA=TableTemp;

对于大量记录,此查询因以下内存错误而失败。

“错误”:{ "code": "LimitsExceeded", "message": "请求无效,无法执行。", "@type": "Kusto.DataNode.Exceptions.KustoQueryRunawayException", "@message": "HResult: 0x80DA0001, source: (部分查询失败: 内存不足情况 (E_LOW_MEMORY_CONDITION)。(消息: 'bad allocation', details: ''))"

是否有任何选项可以优化此查询并实现增量加载?

我们还有其他方法可以在 Azure Kusto 中实现增量负载吗?

【问题讨论】:

    标签: azure-data-explorer kql


    【解决方案1】:

    您还有更多(更简单)的选择:

    1. 您可以使用update policy,前提是您保证每次 ADF 摄取都发生在前一次完成之后。
    2. 您还可以使用materialized-views 应用“上次更新”逻辑。

    【讨论】:

      猜你喜欢
      • 2020-12-27
      • 2023-01-31
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      • 1970-01-01
      • 2018-11-03
      相关资源
      最近更新 更多