2017-09-05 41 views
1

我有一个创建CSV文件的外部应用程序。我想将这些文件自动写入SQL,但是作为增量。CSV文件到SQL表增量

我正在调查大容量插入,但我不认为这是增量。 CSV文件可能会变得非常庞大,因此增量式文件将成为您的选择。

谢谢。

+0

在您的应用程序中,将写入行的代码替换为插入记录的代码。 –

+0

是什么让你认为批量插入不会增量?通常,单个插入记录不依赖于任何以前的插入(忽略诸如约束等事情)。 –

+0

@DanBracuk - 感谢您的评论。该应用程序是一个外部应用程序,我没有任何控制权。所以我将无法写入SQL。 – Abe

回答

0

处理此问题的常用方法是将整个CSV批量插入登台表中,然后使用存储过程将登台表中的数据增量合并到最终目标表中。

如果您仍然担心CSV文件对于此过大,那么下一步是编写一个读取CSV的程序,并生成一个只包含您想要导入的新数据/已更改数据的截断文件,然后批量插入较小的CSV而不是原始的CSV。

0
  • 创建一个文本或csv文件,其中包含要在表中加载的所有csv文件的名称。如果不重复,可以包含文件路径。您可以使用shell脚本执行此操作。

  • 然后创建一个临时表,它载入所有需要插入的csv文件名。使用程序。

  • 使用上面的临时表,按行数循环并将其加载到目标表(不在循环中截断)。如果需要截断,则在循环之前执行。您可以将数据加载到是否需要进行任何改造分期(使用程序转换)

我们也有同样的问题,我们采用这种方法。最近,我们转而使用完成所有任务并将数据加载到临时表中的Python。转换后,它最终加载到目标表中。