【发布时间】:2021-12-31 08:45:29
【问题描述】:
我正在处理一个 SQL Server 数据库,其中包含一个“定义的数据”列,其中包含 JSON 数据(以及其他一些简单的列)。数据随着时间的推移而积累,现在我们有大约 800 万行。
来自此数据库的数据由 ETL 系统定期读取,然后读取“已定义数据”列中的 JSON 数据,并根据 JSON 数据中包含的列名将数据映射到新的 SQL Server 表。
此 SQL Server 表容易更改,这意味着大约每 4 个月需要额外的列或列名更改。每当这个 SQL Server 表改变它的数据结构时,就会引入一个新版本,这也迫使 JSON 数据结构改变。
但是,ETL 系统应该仍然能够从 SQL Server 数据库中加载所有历史 (JSON) 数据,而不管版本一直在变化。考虑到 SQL Server 表和 JSON 数据的版本更改,我如何才能完成这项工作?
所以在这个例子中我的问题是:
我如何确保我可以将客户端 20 和 21 加载到 一个 SQL Server 表中而不会出错,因为 JSON 数据结构在历史数据的情况下不反映版本 2? p>
鉴于 SQL Server 数据库的大小,根据最新版本更新所有历史 JSON 数据似乎不是一个选项(在此示例中,这意味着为 01-01-2021 数据添加“AssetType”并用NULL填充)。
提前非常感谢!
【问题讨论】:
标签: sql json sql-server