Etl

在轉換為新應用程序時,ELT 是否適用於醫療系統等生命攸關的應用程序?

  • October 12, 2017

我在 ELT 和閱讀方面的小經驗使它看起來主要是為了開發。因為數據沒有像 ETL 那樣被清理,這讓我認為新應用程序需要將其查詢與新應用程序的新資料結構一起調整到舊資料結構。然後,最終 ETL 發生在某個地方,在新數據庫中,加班直到您只有新應用程序、新模式等,不再使用舊數據模式。它可能仍然在某處的某些表中,但未使用,僅存檔。

對於像醫院這樣的東西,ELT 感覺不太對勁。我認為醫院希望在轉換之前清理乾淨。

ELT 是否用於在超級關鍵的生死系統中進行新應用?

編輯:這篇文章是建議的,http://www.jamesserra.com/archive/2012/01/difference-between-etl-and-elt/

閱讀這篇有用的文章後,首選 ELT 的 ELT 案例之一是:

源數據庫和目標數據庫相同

這是什麼意思?相同的數據庫引擎或相同的模式?替換 20 年前系統的新應用程序通常沒有相同的架構,所以我不明白。

ELT 適用於關鍵系統。您的問題是基於這個錯誤的假設:

“因為數據沒有像 ETL 中那樣被清理……”

您可以像使用 ETL 一樣使用 ELT 進行大多數清理。您通常只是在目標系統上的臨時表中執行此操作,而不是在源和目標之間進行中。

編輯: 你問他們為什麼提到:

源數據庫和目標數據庫相同

我認為這意味著“當源數據庫引擎和目標數據庫引擎相同時,ELT 更容易執行,因為您經常讓它們直接對話”。

例如,通過 Oracle DB 連結(Oracle 到 Oracle)或 SQL Server 連結伺服器(SQL Server 到 SQL Server)上的 ELT 比使用 GoldenGate 等設置異構連結要容易得多。

不過,像 Presto 這樣的工具可以使這變得更容易,正如您將看到的人們所做的那樣:

insert into sqlserver.table
select * from oracledb.table

據我所知,ELT 相對於 ETL 列出的兩個優勢是:

  • 最小化與源系統的互動;您正在獲取數據並離開,而不是要求在提取步驟本身期間完成任何轉換工作
  • 使用本機 SQL 程式碼進行轉換步驟,而不是通過位於源數據庫和目標數據庫之間的第三個東西執行程式碼(可以是 perl/python 腳本、本地應用程序或像 MS 的 SQL Server 集成服務這樣的 ETL 工具) .

從概念上講,假設您仍在“ELT”中的“T”之後對生產目標表進行最終載入。因此,它仍然從從源中提取數據開始,並以將轉換後的數據載入到最終目的地結束。

我認為您假設在目標系統中的轉換活動之後沒有發生最終載入,我認為這是一個不正確的假設。而且,即使它是正確的,同樣的事情也可以用 ETL 工具來完成;你只是在重新定義目的地。

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