Etl

一般 ETL 原則 - 來自未知數量表的 ETL?

  • January 15, 2014

AFAIK,ETL 集成來自固定數量的源/表的數據。考慮到這些表可能屬於不同類型(客戶、運輸、員工、會計等),ETL 是否有可能整合未來可能添加的未知數量的表中的數據?

編輯 -

讓 A,B,C 成為表格。我們可以有以下 ETL 場景 - A + B + C = 1 行或 A + B + C = 3 行

我有第一個。稍後,我們可以添加表 D、E、F、G…等,就它們包含的數據而言,所有這些表都可能彼此不同。

您是在詢問一個 ETL 流程,該流程無需調整即可接受來自新表的數據?原則上,當然,一切皆有可能。在實踐中,寫這將是一個挑戰。

組合來自兩個或多個表的數據有兩種主要方法:連接和聯合。這些對應於您的兩個範例,其中 A、B 和 C 成為一行(它們正在連接)或三行(它們正在合併)。

無論哪種方式,您的 ETL 流程都需要有某種模式來辨識來源。例如,它可以查找名為“Orders”的表和一個數字。您可以編寫程式碼來基於這樣的模式創建動態 SQL,但是擁有多個幾乎相同的表,只是後綴不同,這通常是一個糟糕的設計。還有一些類似的概念,比如分區。

或者,如果您的表有很大不同,那麼您實際上是在談論編寫人工智慧來辨識和組合相關數據。這將是一個巨大的工程;適合論文,或者 DARPA 可能,但可能不是有截止日期的企業。它創建的任何解決方案都需要手動審查和調整才能準確,所以為什麼不自己更新程式碼呢?

您是否有要實現的業務目標,或者這是出於好奇?

在規劃 ETL 時,通常假設源結構穩定,並且您知道數據類型和值的範圍。如果任何表包含記錄而其他兩個不包含記錄,則第一種情況是可能的,但取決於業務規則或程式邏輯來確定是否可以接受 0 條記錄。

如果您必須向 ETL 流程添加源,您應該了解它們的結構。我不知道有一種工具可以很好地為您自動執行此操作。

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