數據加載與達美住表

你可以從任何數據源加載數據支持Apache火花在磚使用三角洲生活表。您可以定義數據集(表和視圖)三角洲生活表反對任何查詢,返回一個火花DataFrame,包括流火花DataFrames DataFrames和熊貓。數據攝取任務,磚建議使用流表對大多數用例。流表對攝入來自雲的數據對象存儲使用自動加載程序或從消息巴士就像卡夫卡。下麵的例子演示了一些常見的模式。

重要的

不是所有的數據源都有SQL支持。可以混合使用SQL和Python筆記本δ生活表中管道使用SQL攝入之外所有操作。

細節處理庫不打包在三角洲生活表默認情況下,明白了管道附件

加載文件從雲對象存儲

磚建議使用自動加載器與達美住表對大多數數據攝入任務從雲對象存儲。自動加載器和δ生活表旨在逐步和冪等負荷日益增長的數據到達雲存儲。下麵的例子使用自動加載程序來創建數據集從CSV和JSON文件:

請注意

加載文件自動加載程序在統一目錄啟用管道,必須使用外部位置。了解更多關於使用統一目錄與達美住表,看看使用統一的目錄與三角洲住表管道

@dltdefbeplay体育app下载地址():返回(火花readStream格式(“cloudFiles”)選項(“cloudFiles.format”,“csv”)負載(“/ databricks-datasets / retail-obeplay体育app下载地址rg /客戶/”))@dltdefsales_orders_raw():返回(火花readStream格式(“cloudFiles”)選項(“cloudFiles.format”,“json”)負載(“/ databricks-datasets / retail-org sales_orders /”))
創建刷新流媒體beplay体育app下载地址作為選擇*cloud_files(“/ databricks-datasets / retail-obeplay体育app下载地址rg /客戶/”,“csv”)創建刷新流媒體sales_orders_raw作為選擇*cloud_files(“/ databricks-datasets / retail-org sales_orders /”,“json”)

看到自動加載器是什麼?自動加載程序SQL語法

警告

如果您使用自動加載程序文件通知和你為管道運行一個完整的刷新或流表,您需要執行手動清理你的資源。您可以使用CloudFilesResourceManager在一個筆記本進行清理。

加載數據從一個消息總線

您可以配置三角洲生活表管道從消息總線與攝取數據流表。磚建議流表結合連續執行和增強的自動定量提供最有效的攝入低延遲加載的消息總線。看到增強的自動定量是多少?

例如,下麵的代碼配置一個流表從卡夫卡攝取數據:

進口dlt@dltdefkafka_raw():返回(火花readStream格式(“卡夫卡”)選項(“kafka.bootstrap.servers”,“<服務器:ip >”)選項(“訂閱”,“人類”)選項(“startingOffsets”,“最新”)負載())

你可以寫下遊操作在純SQL執行流轉換這些數據,就像下麵的例子:

創建刷新流媒體streaming_silver_table作為選擇*(生活kafka_raw)在哪裏

處理事件中心的例子,請參閱使用Azure事件中心作為一個三角洲住表數據源

看到在磚處理流數據來源

加載數據從外部係統

三角洲生活表支持加載數據從任何數據源支持的磚。一些數據源沒有完整平價支持SQL,但是你可以寫一個獨立的Python筆記本定義數據從這些來源攝取,然後安排這個庫與其他SQL筆記本建立三角洲住表管道。下麵的示例聲明一個物化視圖來訪問遠程Postgresql表中的數據的當前狀態:

進口dlt@dltdefpostgres_raw():返回(火花格式(“postgresql”)選項(“數據表”,table_name)選項(“主機”,database_host_url)選項(“端口”,5432年)選項(“數據庫”,database_name)選項(“用戶”,用戶名)選項(“密碼”,密碼)負載())

看到在磚與外部數據

從雲對象存儲負載小或靜態數據集

你可以加載小或靜態數據集使用Apache火花負載語法。三角洲生活表支持的所有文件格式支持Apache火花磚。一個完整的列表,請參閱您可以使用哪些數據格式在磚嗎?

下麵的例子演示了加載JSON創建三角洲住表表:

@dltdefclickstream_raw():返回(火花格式(“json”)負載(“/ databricks-datasets / wikipedia-datasets /數據2015 - 001 /點擊流/ raw-uncompressed-json / _2_clickstream.json”))
創建刷新生活clickstream_raw作為選擇*json' /- - - - - -數據集/維基百科- - - - - -數據集/數據- - - - - -001年/點擊流/- - - - - -未壓縮的- - - - - -json/2015年_2_clickstreamjson;

請注意

選擇*format.“路徑”;所有SQL SQL構建常見環境磚。是推薦的模式與三角洲生活直接文件訪問使用SQL表。

看到在磚與外部數據

安全地訪問存儲憑證與秘密管道

您可以使用磚秘密存儲訪問密鑰或密碼等憑證。配置的秘密管道,管道中使用火花屬性設置集群配置。看到配置您的計算設置

下麵的示例使用一個秘密存儲訪問關鍵需要讀取輸入數據從Azure數據存儲Gen2湖(ADLS Gen2)存儲賬戶使用自動加載程序。您可以使用同樣的方法來配置你需要的任何秘密管道,例如,AWS訪問S3鍵,或一個Apache蜂巢metastore的密碼。

更多地了解使用Azure數據存儲Gen2湖連接到數據存儲Gen2湖和Blob存儲Azure

請注意

您必須添加spark.hadoop。前綴的spark_conf配置設置秘密價值的關鍵。

{“id”:“43246596 - a63f - 11 - ec - b909 - 0242 ac120002”,“集群”:({“標簽”:“默認”,“spark_conf”:{“spark.hadoop.fs.azure.account.key < storage-account-name > .dfs.core.windows.net”。:“{{秘密/ < scope-name > / <秘密名字>}}”},“自動定量”:{“min_workers”:1,“max_workers”:5,“模式”:“增強”}},{“標簽”:“維護”,“spark_conf”:{“spark.hadoop.fs.azure.account.key < storage-account-name > .dfs.core.windows.net”。:“{{秘密/ < scope-name > / <秘密名字>}}”}}),“發展”:真正的,“連續”:,“庫”:({“筆記本”:{“路徑”:“/用戶/ user@m.eheci.com/DLT筆記本/δ住表快速入門”}}),“名稱”:“使用ADLS2 DLT快速入門”}

取代

  • < storage-account-name >與ADLS Gen2存儲帳戶名稱。

  • < scope-name >磚秘密範圍的名稱。

  • <秘密名字>的名字包含Azure存儲帳戶訪問關鍵的關鍵。

進口dltjson_path=“abfss: / / <容器名稱> @ < storage-account-name >.dfs.core.windows.net/ < path-to-input-dataset >”@dltcreate_table(評論=“從一個ADLS2存儲賬戶數據攝取。”)defread_from_ADLS2():返回(火花readStream格式(“cloudFiles”)選項(“cloudFiles.format”,“json”)負載(json_path))

取代

  • <容器名稱>Azure存儲賬戶的名稱容器存儲輸入數據。

  • < storage-account-name >與ADLS Gen2存儲帳戶名稱。

  • < path-to-input-dataset >輸入數據集的路徑。