【问题标题】:Integer columns not accepted in Azure Table StorageAzure 表存储中不接受整数列
【发布时间】:2020-05-21 22:20:12
【问题描述】:

我正在使用 ADF 管道将数据从数据湖复制到 blob 存储,然后再复制到表存储。表存储有一列包含 integer 值(列:Age)。关于尝试查询表存储中的数据

https://myaccount.table.core.windows.net/Customers()?$filter=Age%20eq%2030 -> (age 30 is considered as integer)

输出为空。

关于将查询更新为

https://myaccount.table.core.windows.net/Customers()?$filter=Age%20eq%20'30' -> (age 30 is considered as string)

它返回了正确的输出。

我使用相同的 adf 管道将数据从数据湖复制到 cosmos db sql api。当我使用查询时

SELECT * FROM c WHERE c.Age = 30

它返回了正确的输出。我试过了

SELECT * FROM c WHERE c.Age > 30

它也返回了正确的输出。

因此,cosmos db 接受整数列,而表存储只接受字符串值。这是为什么?如何在表存储中解决此问题,以便它接受整数列?请告诉我。谢谢!

【问题讨论】:

  • 您是否在存储资源管理器中检查了年龄类型是否为整数?我测试过,可以查询整数列。
  • 我在存储资源管理器中将年龄类型视为字符串。这是为什么?我从 ADF 复制的年龄列是整数类型。

标签: azure-data-factory azure-table-storage azure-data-factory-2


【解决方案1】:

不太清楚原因,下面是我将子数据从数据湖复制到天蓝色表的步骤。

首先这是我的测试 JSON:

{
    "callingimsi": "466920403025604",
    "switch1": "China",
    "switch2": "Germany",
    "testvalue":12
}

创建JSON数据集,下面是默认Schema,测试值是整数类型。

然后我只是创建一个表数据集并创建简单的管道,设置源和接收器然后调试。表中testvalue为Int64类型,支持查询。

【讨论】:

    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2019-08-09
    • 2020-01-18
    相关资源
    最近更新 更多