azure-data-explorer - Kusto 查询更新表列类型而不影响数据

标签 azure-data-explorer kql

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

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

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

最佳答案

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

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

关于azure-data-explorer - Kusto 查询更新表列类型而不影响数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65915915/

相关文章:

Azure Sentinel 基于来自 KQL 的 5 分钟数据间隔发出警报

azure - 日期时间语法似乎有效,但会导致语法错误

azure - 为什么 .show 查询在 Azure App Insights 日志查询中不起作用?

azure-data-explorer - 库斯托 : How to convert columns to rows and summarize by them

azure - 查询以获取失败请求的百分比 Azure Application Insights

azure-log-analytics - 使用 'TimeGenerated' 时,将 UTC "summarize by"转换为 Azure 监视器/日志/分析中的本地时间

azure - 如何在没有 session ID 但具有与登录关联的事件的 Kusto 中重新创建 session

azure - KQL(Azure 数据资源管理器)中按时间间隔对数据进行分组

azure - KQL 中的自定义日期格式

python - 如何将 parquet 文件上传到 Azure ADLS 2 Blob