【发布时间】:2021-04-15 22:47:18
【问题描述】:
我正在使用 SSIS 将数据从 MYSQL 传输到 SQL_Server,大约有 200 个表。 所以我写了一个动态 ETL,它只取表名并处理其余部分。
但由于我必须有一个固定的表元数据,所以我在 MYSQL 中使用 JSON_array 从除 ID 之外的所有列创建单个列,如下所示:
select id
,JSON_ARRAY(name,cellphone) as JSON
from table
因为我知道我想减小 JSON 大小并从 JSON 中删除表 Schema 的数据架构。 创建的 JSON_ARRAY 如下所示:
[“胡曼”,“12345”]
所以在迁移到 SQL_Server 之后,我知道我可以像这样使用 CROSS APPLY OPENJSON(t.json) 并阅读它,但是我必须调整它,这根本没有效率!
我可以看到如何打开普通 JSON,因此您不需要旋转数据,但我找不到 Array 类型的任何内容。
在一个理想的世界里,我想要这样的东西:
CROSS APPLY OPENJSON(t.json) with(
name varchar(255) '$[0]' ,
cellphone int '$[1]' )
因此,我有 2 列,不再需要旋转我的表格。
【问题讨论】:
标签: mysql arrays json sql-server ssis