取消
顯示的結果
而不是尋找
你的意思是:

實現自動裝卸機攝取數據到三角洲湖,我和滿載有100個不同的表,追加合並情形

AK032716
新的因素

我想實現自動裝卸機數據吞入湖三角洲5個不同的源係統和我有100種不同的表在每個數據庫如何動態地解決這個問題通過使用自動裝卸機,觸發一次選項——滿載,附加合並情形

3回複3

Jfoxyyc
價值貢獻

由於三角洲住表為您處理的並行性,我會使用一個元數據表,定義了一些變量,讀這些東西,和遍曆的dict三角洲生活表一樣:

”“”假設:1:Dict名叫metadata_dict database_name, schema_name, table_name, file_path, data_format, load_type 2:數據攝入從數據庫- >雲存儲是一個單獨的過程隻覆蓋目的地或附加目的地3:你已經有一個會話作用域連接雲存儲或使用掛載點”“def create_delta_table (database_name: str, schema_name: str, table_name: str, file_path: str, data_format: str, load_type: str) - > DataFrame:“”“帶表元數據包括文件路徑、模式、表名和利用自動裝卸機要麼刪除/重新加載或δ表附加到目的地。注意——三角洲住表當前不支持統一名稱空間目錄三個水平,hive_metastore目錄將被使用。參數:database_name (str):源數據庫名稱的字符串值schema_name (str):源模式名稱的字符串值table_name (str):一個字符串值的源表名file_path (str):一個字符串值定義在雲存儲的表數據所在(s3, gcp adls) data_format (str):雲存儲數據格式的字符串值(json、拚花等)load_type (str):一個字符串值接受(“重新加載”,“添加”)的回報:火花dataframe名叫database_name__schema_name__table_name加載到目標模式中定義的DLT三角洲格式”“管道”accepted_load_types =(“重新加載”,“添加”)如果load_type不在accepted_load_types:提高ValueError (f“負載類型{load_type}不接受負載類型(“重新加載”,“添加”)“destination_table_name = database_name +“_”+ schema_name +“_”+ table_name如果load_type = =“重載”:@dlt.table (name = destination_table_name) def create_or_reload_delta_table (): df =(火花.read .format (f“{data_format}”) .load (file_path)) #做額外的轉換#返回最終的df返回df如果load_type = =“追加”:@dlt.table (name = destination_table_name) def create_or_append_delta_table (): df =(火花.readStream .format .option (“cloudFiles (“cloudFiles”)。f格式”,“{data_format}”) #添加額外的選項就像inferColumnTypes或schemaEvolutionMode .load (file_path)) #做額外的轉換#返回最終的df返回df if __name__ = = " __main__”:在metadata_dict表:database_name =表(“database_name”) schema_name =表(“schema_name”) table_name =表(“table_name”) file_path =表(“file_path”) data_format =表(“data_format”) load_type =表(“load_type”) create_delta_table (database_name = database_name schema_name = schema_name table_name = table_name file_path = file_path data_format = data_format load_type = load_type)

daniel_sahal
尊敬的貢獻者三世

您可以創建一個通用的筆記本,將參數化表名稱/源係統,然後用不同的參數隻是觸發筆記本(為每個表/源係統)。

對於參數化可以使用dbutils。小部件(https://docs.m.eheci.com/notebooks/widgets.html)。

編排可以使用磚工作負載或任何其他外部協調器(例Azure數據工廠,Apache氣流)。

Kaniz
社區經理
社區經理

嗨@Anil Kovilakar(客戶),我們一直沒有收到你的最後回應@Daniel薩哈和@Jordan福克斯,我檢查看看他們的建議幫助你。

否則,如果你有任何解決方案,請與社區分享,因為它可以幫助別人。

同時,請別忘了點擊“選擇最佳”按鈕時提供的信息幫助解決你的問題。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map