Import

將數據分期提取到數據庫的工具

  • February 6, 2019

我們有一個可以與 Oracle 或 MySql 或 SQLServer 數據庫一起使用的應用程序。此外,還有一個第 3 方數據源,我們需要每 15 分鐘在我們的數據庫中保存它的最新數據記錄。我們可以呼叫一些 API 或原始數據端點來從第三方源中提取數據。

如果我們編寫一個應用程序來完成這項工作,它應該執行以下操作:

  1. 每 15 分鐘呼叫第 3 方端點(呼叫端點)
  2. 將數據轉換為我們的數據庫格式(數據集成)
  3. 在我們的表中插入數據(Oracle 或 MySql 或 SQLServer)

那麼,是否有任何預定義的工具可以為我們完成這項工作,或者我們應該在內部開發這個應用程序?這是某種數據庫同步工作,但它應該能夠與不同的數據庫一起工作,並且它應該能夠進行數據集成。

解決方案

您的解決方案包含兩個部分

  • 安排工作
  • 提取、轉換和載入 (ETL) 數據

作業調度程序

  • 作業系統有它們 ( cron/ task scheduler)
  • 一些數據庫有調度程序(oracle DBMS_SCHEDULER
  • 還有用於作業間調度和資源控制的企業 COTS(Common Of The Shelf)軟體

ETL

最簡單的形式是 shell 腳本和儲存過程的組合。

  1. shell 腳本首先複製 ( Extract) 數據 ( ftp, scp, REST 呼叫 via curl)。
  2. 然後,它Loads把數據存入數據庫。所有 RDBMS 都有載入 CSV 數據的工具。
  3. 之後,呼叫儲存過程和/或 SQL 腳本Transform將數據置於其最終狀態。
  • 這些最有可能使用INSERT...SELECTMERGE語句。
  1. 最後,shell 腳本歸檔數據文件。

在高端,可以使用 COTS 軟體。

建造還是購買?

隨你(由你決定。你需要做更多的研究。

引用自:https://dba.stackexchange.com/questions/229046