2017-09-05 39 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。轉換後,它最終加載到目標表中。