Json 如何提高CSV数据进入SQL Server的数据处理速度?

Json 如何提高CSV数据进入SQL Server的数据处理速度?,json,csv,apache-nifi,Json,Csv,Apache Nifi,我使用了Nifi-0.6.1和GetFile+SplitText+ReplaceText处理器的组合来分割30MB(300000行)的csv数据 GetFile能够非常快地将30mb传递给SplitText 在SpliText+Replace Text中,将数据拆分为Json需要25分钟 将csv存储到SQL Server只需30 mb的数据就需要25分钟。 它逐字节执行转换 我在处理器中尝试了并发任务选项。它可以加快速度,但也需要更多的时间。在那个时候,它达到了100%的cpu使用率 如何更快

我使用了Nifi-0.6.1和GetFile+SplitText+ReplaceText处理器的组合来分割30MB(300000行)的csv数据

GetFile能够非常快地将30mb传递给SplitText

在SpliText+Replace Text中,将数据拆分为Json需要25分钟

将csv存储到SQL Server只需30 mb的数据就需要25分钟。 它逐字节执行转换

我在处理器中尝试了并发任务选项。它可以加快速度,但也需要更多的时间。在那个时候,它达到了100%的cpu使用率


如何更快地将csv数据执行到sql Server中?

您提到将数据拆分为JSON,但您使用的是SplitText和ReplaceText。您传入的数据是什么样子的?您是否正在尝试转换为JSON以使用ConvertJSONtoSQL

如果您有CSV输入,并且您知道这些列,SplitText应该可以很快地分割这些行,并且可以使用ReplaceText创建一个INSERT语句供PutSQL使用

或者,正如@Tomalak所提到的,您可以尝试将CSV文件放在SQLServer可以访问它的地方,然后使用PutSQL发出批量插入语句


如果这两项都不够,您可以使用ExecuteScript执行拆分、列解析和转换为SQL语句。

您提到将数据拆分为JSON,但您使用的是SplitText和ReplaceText。您传入的数据是什么样子的?您是否正在尝试转换为JSON以使用ConvertJSONtoSQL

如果您有CSV输入,并且您知道这些列,SplitText应该可以很快地分割这些行,并且可以使用ReplaceText创建一个INSERT语句供PutSQL使用

或者,正如@Tomalak所提到的,您可以尝试将CSV文件放在SQLServer可以访问它的地方,然后使用PutSQL发出批量插入语句


如果这两项都不够,可以使用ExecuteScript执行拆分、列解析和转换为SQL语句。

传入的CSV文件大约有300000行?您可以尝试使用多个SplitText处理器将其分阶段分解。一次大的拆分可能会对系统资源造成很大的负担,但将其划分为多个阶段可以使流程更加顺畅。通常建议的最大值在1000到10000之间


有关更多详细信息,请参阅。

您传入的CSV文件约有300000行?您可以尝试使用多个SplitText处理器将其分阶段分解。一次大的拆分可能会对系统资源造成很大的负担,但将其划分为多个阶段可以使流程更加顺畅。通常建议的最大值在1000到10000之间


有关更多详细信息,请参阅。

“三十万行”?!这是什么意思?此外,还有本机语句将CSV数据加载到SQL Server中。也许你先试试。我只能在SQL Server中执行大容量插入。但我的情况是完全集中在Apache Nifi处理器中。再次尝试解决这个问题。请不要只是回滚那些试图对你糟糕的语法/语言更有意义的更改。“三十万行”?!这是什么意思?此外,还有本机语句将CSV数据加载到SQL Server中。也许你先试试。我只能在SQL Server中执行大容量插入。但我的情况是完全集中在Apache Nifi处理器中。再次尝试解决这个问题。请不要只是回滚那些试图让你糟糕的语法/语言更有意义的更改。我已经使用了4个拆分文本处理器来拆分这些行,但是使用了单替换文本,从中获取行需要更多的时间。例如:转换为json后,数据输入大小为30MB,增加到70MB。因此,将json移动到SQLServer需要很长时间。我已经使用4个拆分文本处理器拆分这些行,但使用单替换文本,从中获取行需要更多的时间。例如:转换为json后,数据输入大小为30MB,增加到70MB。因此,将json移动到SQLServer需要很长时间。我的传入数据是CSV文件。我使用了4个拆分文本和一个替换文本。是的,我使用CovertJSONTSQL将这些数据转换为json。PutSQL仅使用insert,仅更新不批量插入语句。如果我做错了什么,请更新我。PutSQL将执行任何不返回结果集的语句(可调用语句除外)。因此,您可以发出INSERT、UPDATE、CREATE TABLE、BULK INSERT等命令。如果要使用BULK INSERT,您不会希望使用SplitText或ConvertJsonToSQL。相反,您需要暂存CSV文件,以便DB能够访问它,然后通过PutSQL发送一个大容量INSERT语句来接收它。我的传入数据是CSV文件。我使用了4个拆分文本和一个替换文本。是的,我使用CovertJSONTSQL将这些数据转换为Json。PutSQL仅使用INSERT,仅更新不批量插入语句。如果我做错了什么,请更新我。PutSQL将执行任何不返回结果集的语句(可调用语句除外)。因此,您可以发出INSERT、UPDATE、CREATE TABLE、BULK INSERT等命令。如果要使用BULK INSERT,您不会希望使用SplitText或ConvertJsonToSQL。相反,您需要暂存CSV文件,以便DB可以访问它,然后通过PutSQL发送一个大容量插入语句来接收它。