【问题标题】:Kusto Query to update table column type with out impacting dataKusto Query 在不影响数据的情况下更新表列类型
【发布时间】:2021-01-27 09:06:31
【问题描述】:

我有一个带有 id:int 和 name:string 字段的 kusto 表,其中包含数据。我正在尝试将 id:int 的表模式类型更改为 id:long。我尝试了以下,但它引发了以下错误。我也尝试过 .alter 而不是 .alter-merge 但没有运气。用数据更新现有表的 Kusto 表列类型而不干扰当前数据的过程是什么?

.alter-merge table mytable
(Id: long, Name: string)

错误: 'Alter table 不支持现有列 (Id) 的列数据类型更改。当前类型=I32,请求类型=I64'。

【问题讨论】:

    标签: azure-data-explorer kql


    【解决方案1】:

    这是实现您想要的目标应遵循的过程:

    1. 使用更新后的架构创建一个名为 OldTable 的新表
    2. 创建一个名为 Table 的函数(应该与原始表的名称完全相同),该函数将返回 union (OldTable | project id = tolong(id), name), (Table | project id = tolong(id), name) - 这样,每当有人写 Table 时,他将调用将从两个表中返回数据的函数在正确的架构中
    3. 交换TableOldTable
    4. OldTable 表中的数据过期(在保留期结束时),它将变为空,您必须先删除Table 函数,然后删除OldTable

    【讨论】:

      猜你喜欢
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2021-12-12
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多