如何解决Kusto 查询以更新表列类型而不影响数据
我有一个带有 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'。
解决方法
以下是实现您想要的目标的过程:
- 使用更新后的架构创建名为
OldTable
的新表 - 创建一个名为
Table
的函数(应该与原始表的名称完全相同),它将返回union (OldTable | project id = tolong(id),name),(Table | project id = tolong(id),name)
- 这样,每当有人写入Table
时,他都会调用该函数将以正确的模式从两个表中返回数据 - 交换
Table
和OldTable
- 当
OldTable
表中的数据过期时(在保留期结束时),它将变为空,您必须先删除Table
函数,然后 { {1}} 个表
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。