在低于 2016 的 SQL Server 版本中,将文件中的大量 JSON 数据加载到数据库表中的标准方法是什么?
我知道 SQL Server 2016 中引入了 OPENJSON()
函数。但是,我仅限于使用 SQL Server 2014。
最好的方法是使用 SQL Server Integration Services (SSIS) 导入数据,但没有内置的连接器或源组件可供使用。
我尝试使用 SSIS JSON Component以此目的。显然,从性能角度来看这并不好。
还有其他方法可以将 JSON 批量加载到 SQL 中吗?
最佳答案
我已在 SSIS 2012/SQL Server 2012 中完成此操作。要求是使用具有返回 json
的各种端点的 RESTful API。
- 在数据流中,创建一个脚本组件。它很可能是Type = Source,因为您将从中生成带有输出列的OutPuts。
- 为您将从 JSON 中提取的各种字段/数据项创建各种 OutPuts 和 OutPut 列。通常这是几个表,如下所示。
在脚本组件的
CreateNewOutputRows()
重写方法中,将JSON数据反序列化为C#类。我用http://json2csharp.com/ stub 类,然后在特殊情况下根据需要修复它,例如 json 是否具有键的 ID 值,而不是键名等。我使用 Newtonsoft.Json 将 json 反序列化为类实例/列表等。将行添加到您在步骤 2 中设置的相关输出缓冲区。将脚本组件的输出连接到各个目标表。
就是这样!你已经完成了。
关于sql-server - 将批量 JSON 数据加载到 SQL Server 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39273210/