如何提高 CSV 数据到 SQL 服务器的数据处理速度?

How to increase data processing speed in CSV data into SQL Server?

我使用 Nifi-0.6.1 结合 GetFile+SplitText+ReplaceText 处理器来拆分具有 30MB(300 000 行)的 csv 数据。

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

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

仅 30 MB 的数据需要 25 分钟才能将 csv 存储到 SQL 服务器中。 它逐字节执行转换。

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

如何更快地将 csv 数据执行到 sql 服务器?

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

如果您有 CSV 传入,并且您知道列,SplitText 应该很快拆分行,并且 ReplaceText 可用于创建供 PutSQL.

使用的 INSERT 语句

或者,正如@Tomalak 提到的,您可以尝试将 CSV 文件放在 SQL服务器可以访问它的地方,然后使用 PutSQL 发出 BULK INSERT 语句。

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

您传入的 CSV 文件有大约 300,000 行?您可以尝试使用多个 SplitText 处理器来分阶段分解它。一个大的拆分可能会对系统资源造成很大的负担,但是将其分成多个阶段可以使您的流程顺畅。通常建议的最大值为每次拆分 1,000 到 10,000。

有关详细信息,请参阅