将批量JSON数据加载到SQL Server表中

时间:2016-09-01 13:43:29

标签: sql-server json ssis sql-server-2014 etl

在少于2016年的SQL Server版本中,将大量JSON数据从文件加载到数据库表的标准方法是什么?

我知道SQL Server 2016中引入的yield函数。但是,我只能使用SQL Server 2014.

执行此操作的首选方法是使用SQL Server Integration Services(SSIS)导入数据,但不存在内置连接器或源组件。

为此,我尝试使用SSIS JSON Component。显然,从性能的角度来看,它并不好。

还有其他方法可以将JSON批量加载到SQL中吗?

1 个答案:

答案 0 :(得分:2)

我在 SSIS 2012 / SQL Server 2012 中完成了此操作。要求是使用返回json的各种端点的RESTful API。

  1. 数据流中,创建脚本组件。最有可能的是 Type = Source ,因为您将从输出列生成 OutPuts
  2. enter image description here

    1. 为将从JSON中提取的各种字段/数据项创建各种OutPuts和OutPut列。通常这是几个表,如下所示。
    2. enter image description here

      1. 脚本组件CreateNewOutputRows()覆盖方法中,将JSON数据反序列化为C#类。我使用http://json2csharp.com/来存根类,然后在特殊情况下需要时修复它,比如json有key的ID值,而不是keyname等。我使用 Newtonsoft.Json 将json反序列化为类实例/列表等。将行添加到您在步骤2 中设置的相关输出缓冲区。

      2. Scripting Component 中的输出连接到各种目标表。

      3. 就是这样!你完成了。