将数据导入SQL Server时,哪种文件类型更好:CSV还是JSON?

将数据导入SQL Server时,哪种文件类型更好:CSV还是JSON?,sql,json,sql-server,csv,data-migration,Sql,Json,Sql Server,Csv,Data Migration,我正在参与一个项目,其中一家第三方公司将向我们提供客户数据的导出,以便我们可以将其导入我们的内部系统 每个客户记录大约有20个字段。数据类型包括字符串、布尔值、整数和日期(带有时间组件和UTC偏移组件)。所有字符串的长度都不超过250个字符。整数的范围可以是0到100000(含0到100000) 我必须将大约200万用户导入SQL Server数据库。我正处于计划阶段,并试图确定是否应该请求csv或json格式的导出文件。我打算两样都要(以防万一),但我还不知道我能不能 如果我只能选择一种文件类

我正在参与一个项目,其中一家第三方公司将向我们提供客户数据的导出,以便我们可以将其导入我们的内部系统

每个客户记录大约有20个字段。数据类型包括字符串、布尔值、整数和日期(带有时间组件和UTC偏移组件)。所有字符串的长度都不超过250个字符。整数的范围可以是0到100000(含0到100000)

我必须将大约200万用户导入SQL Server数据库。我正处于计划阶段,并试图确定是否应该请求csv或json格式的导出文件。我打算两样都要(以防万一),但我还不知道我能不能


如果我只能选择一种文件类型(csv或json),那么这种工作哪种更好?任何有将数据导入SQL Server经验的人都可以提供哪些更好的建议吗?

如果使用批量方法,同样的方法也很快。 从SQL Server 2016开始,json本机受支持,您可以使用json函数轻松地对其进行操作。 您还可以使用OPENJSON通过T-SQL直接导入文件 和OPENROWSET批量导入。或者,您可以将上面的T-SQL放入SSIS包中

有关更多详细信息,请参阅本文:

磁盘空间或传输时间会成为问题吗?我假设您只针对一个表:您打算使用什么工具进行导入?我肯定会要求提供几千条记录的一些样本(如果可能,可以采用两种格式),以便您进行实验。根据您在这里所说的,根据数据来自的源系统以及它们导出数据的方式,我将重点介绍它们使用的日期格式,它是最有可能导致导入问题的来源。验证您可以在导入时导入它,而不需要进行任何转换。在所有其他条件相同的情况下,获取CSV文件中有问题的行(使用grep或类似工具)并将其读入文本编辑器或Excel,要比获取包含一个损坏元素的整个JSON文档更容易。因此,如果我必须只选择一个,我会选择CSV。更好地定义:CSV是平面的-只是一个给定形状的记录的长列表。JSON可以嵌套并包含子对象和子列表/数组-CSV不能这样做。所以,也许真正的问题是:你的需求是什么?您需要导入什么样的数据?@AnnL。它将被放在一张桌子里。对于传输,我假设我将只接收一个或多个子文件中的csv或json文件。我还没有选择使用哪种工具。不过,我将使用Windows计算机。(at)marc_c:我需要导入的数据类型在第二段中,我倾向于使用CSV,因为根据我的研究,整个JSON对象必须加载到内存中,而CSV文件可以逐行处理。考虑到大约有200万客户,每个字段有20个字段,我认为CSV在这种情况下可能“更安全”。在我看来,最重要的是如何从数据库中获取数据以及如何将数据写入文件。您应该以块的形式获取它们(例如,一次10000条记录),并通过批处理模式(使用批量插入)而不是逐行写入它们