開始
加載和管理數據
處理數據
政府
引用和資源
2023年8月3日更新
給我們反饋
本教程向您展示了如何建立一個端到端分析管道磚lakehouse。
重要的
本教程使用交互式筆記本完成常見的ETL任務在Python統一目錄啟用集群。如果你不使用統一目錄,看看磚上運行你的第一個ETL工作負載。
通過本文的結尾,您將感到舒適:
推出一個統一目錄啟用集群計算。
創建一個磚筆記本。
讀寫的數據統一目錄外的位置。
配置增量數據攝入統一目錄表和自動加載程序。
筆記本電池過程中,執行查詢,並預覽數據。
安排一個筆記本作為磚的工作。
從磚SQL查詢統一目錄表
磚提供了一套生產就緒的工具,允許數據專業人員快速開發和部署提取、轉換和加載(ETL)管道。統一目錄允許數據管理員配置和安全存儲憑證,外部位置,為用戶和數據庫對象在一個組織。磚SQL允許分析師運行SQL查詢中使用相同的表生產ETL工作負載,允許大規模實時商業智能。
請注意
如果你沒有集群控製特權,你仍然可以完成大部分的步驟隻要你有以下訪問一個集群。
如果你隻有進入磚SQL的工作區,明白了設置您的工作區使用磚SQL。
做探索性數據分析和數據工程,創建一個集群來提供所需的計算資源執行命令。
點擊計算在側邊欄。
在計算頁麵,點擊創建集群。這將打開新的集群頁麵。
為集群指定一個唯一的名稱。
選擇單獨的節點單選按鈕。
選擇單用戶從訪問模式下拉。
確保你的電子郵件地址是可見的單用戶字段。
選擇所需的磚的運行時版本的11.1或以上,使用統一的目錄。
點擊創建集群。
更多地了解磚集群,明白了集群。
開始編寫和執行互動代碼在磚上,創建一個筆記本。
點擊新在側邊欄,然後單擊筆記本。
在創建筆記本頁麵:
為你的筆記本指定一個唯一的名稱。
確保設置為默認語言Python。
選擇您在步驟1中創建的集群集群下拉。
點擊創建。
一個筆記本打開頂部有一個空單元。
學習更多的關於創建和管理筆記本,看到的管理筆記本。
磚推薦使用自動加載程序增量數據的攝入。自動加載程序自動檢測和過程到達雲對象存儲新文件。
您可以使用統一目錄管理獲得外部的位置。用戶或服務主體讀文件權限在外部位置可以使用自動加載程序來攝取數據。
讀文件
通常,數據將抵達一個外部位置從其他係統由於寫道。在這個演示,您可以模擬數據到達通過編寫JSON文件到一個外部位置。
將下麵的代碼複製到一個筆記本電池。替換的字符串值目錄與目錄的名稱創建目錄和使用目錄權限。替換的字符串值external_location與外部位置的路徑讀文件,寫文件,創建外部表權限。
目錄
創建目錄
使用目錄
external_location
寫文件
創建外部表
外部位置可以被定義為一個完整的存儲容器,但往往指向一個目錄嵌套在一個容器中。
為外部位置路徑是正確的格式“gs: / / bucket名/道路/ / external_location”。
“gs: / / bucket名/道路/ / external_location”
external_location=“< your-external-location >”目錄=“<目錄>”dbutils。fs。把(f”{external_location}/ filename.txt”,“Hello world !”,真正的)顯示(dbutils。fs。頭(f”{external_location}/ filename.txt”))dbutils。fs。rm(f”{external_location}/ filename.txt”)顯示(火花。sql(f“顯示模式{目錄}”))
執行這個細胞應該打印一行12字節寫,打印字符串“Hello world !””,顯示所有的數據庫目錄中。如果你不能得到這個電池運行,確認你在統一目錄啟用工作區和從您的工作區管理員請求適當的權限來完成本教程。
下麵的Python代碼使用您的電子郵件地址來創建一個獨特的數據庫提供的目錄中並在外部位置提供了一個獨特的存儲位置。執行這個細胞將刪除所有數據與本教程,允許您執行這個例子冪等。定義並實例化一個類,您將使用模擬批次的數據從conncted係統外部源的位置。
這段代碼複製到一個新細胞在你的筆記本和配置您的環境中執行它。
在這段代碼中定義的變量應該允許您安全地執行它,而不會與現有工作空間衝突風險資產或其他用戶。限製網絡或存儲權限執行這段代碼時將提高錯誤;聯係您的工作區管理員解決這些限製。
從pyspark.sql.functions進口上校#設置參數隔離在工作區和重置演示用戶名=火花。sql(的“選擇regexp_replace (current_user (), [^ a-zA-Z0-9)”,“_”)”)。第一個()(0]數據庫=f”{目錄}.e2e_lakehouse_{用戶名}_db”源=f”{external_location}/ e2e-lakehouse-source”表=f”{數據庫}.target_table”checkpoint_path=f”{external_location}/ _checkpoint / e2e-lakehouse-demo”火花。sql(f“c.username = '{用戶名}’”)火花。sql(f“設置c.database ={數據庫}”)火花。sql(f“c.source = '{源}’”)火花。sql(“數據庫,如果存在美元下降{c.database}級聯”)火花。sql(“創建數據庫{c.database}”)火花。sql(“使用美元{c.database}”)#從以前的演示執行清除數據dbutils。fs。rm(源,真正的)dbutils。fs。rm(checkpoint_path,真正的)#定義一個類加載批次的數據來源類LoadData:def__init__(自我,源):自我。源=源defget_date(自我):試一試:df=火花。讀。格式(“json”)。負載(源)除了:返回“2016-01-01”batch_date=df。selectExpr(“馬克斯(不同(日期(tpep_pickup_datetime))) + 1日”)。第一個()(0]如果batch_date。月= =3:提高異常(“源數據了”)返回batch_datedefget_batch(自我,batch_date):返回(火花。表(“samples.nyctaxi.trips”)。過濾器(上校(“tpep_pickup_datetime”)。投(“日期”)= =batch_date))defwrite_batch(自我,批處理):批處理。寫。格式(“json”)。模式(“添加”)。保存(自我。源)defland_batch(自我):batch_date=自我。get_date()批處理=自我。get_batch(batch_date)自我。write_batch(批處理)RawData=LoadData(源)
您現在可以土地一批數據,將下麵的代碼複製到一個細胞和執行它。您可以手動執行這個細胞觸發新的數據到達60倍。
RawData。land_batch()
磚建議存儲數據三角洲湖。三角洲湖是一個開源存儲層提供lakehouse ACID事務,使數據。三角洲湖是默認格式表中創建數據磚。
配置自動加載程序來攝取數據統一目錄表,下麵的代碼複製並粘貼到你的筆記本一個空單元:
#導入功能從pyspark.sql.functions進口上校,current_timestamp#配置自動加載程序向三角洲攝取JSON數據表(火花。readStream。格式(“cloudFiles”)。選項(“cloudFiles.format”,“json”)。選項(“cloudFiles.schemaLocation”,checkpoint_path)。負載(file_path)。選擇(“*”,上校(“_metadata.file_path”)。別名(“source_file”),current_timestamp()。別名(“processing_time”))。writeStream。選項(“checkpointLocation”,checkpoint_path)。觸發(availableNow=真正的)。選項(“mergeSchema”,“真正的”)。toTable(表))
更多地了解汽車裝載機,明白了自動加載器是什麼?。
了解更多關於結構化流與統一目錄,看看使用統一的目錄和結構化流。
筆記本電腦執行邏輯細胞。使用這些步驟來執行的邏輯單元:
運行的細胞在前一步完成,選擇細胞和新聞SHIFT + ENTER。
查詢您剛剛創建的表,下麵的代碼複製並粘貼到一個空的細胞,然後按SHIFT + ENTER運行單元。
df=火花。讀。表(table_name)
DataFrame預覽數據,下麵的代碼複製並粘貼到一個空的細胞中,然後按SHIFT + ENTER運行單元。
顯示(df)
了解更多關於交互式可視化數據的選擇,明白了可視化在數據磚筆記本。
您可以運行磚筆記本生產腳本通過添加作為一個磚的工作任務。在這個步驟中,您將創建一個新的工作,你可以手動觸發。
安排你的筆記本作為一個任務:
點擊時間表右邊的標題欄。
輸入一個唯一的名稱作業名。
點擊手冊。
在集群下拉,選擇您在步驟1中創建的集群。
在出現的窗口中,點擊現在運行。
看到工作運行結果,單擊旁邊的圖標最後一次運行時間戳。
工作的更多信息,請參閱磚的工作是什麼?。
任何人的使用目錄允許在當前目錄,使用模式允許對當前模式選擇表可以查詢的權限表的內容從他們的首選磚API。
使用模式
選擇
你可以切換到磚SQL UI使用上麵的角色切換器+在屏幕的左上角。選擇SQL從下拉菜單中。
+
你需要訪問運行SQL倉庫在磚SQL執行查詢。
本教程中前麵創建的表的名稱target_table。你可以查詢它在第一個單元格使用你提供的目錄和數據庫與論e2e_lakehouse_ <用戶名>。您可以使用數據瀏覽找到您創建的數據對象。
target_table
e2e_lakehouse_ <用戶名>
了解更多關於集成數據工程與磚和工具:
你最喜歡的IDE連接
使用印度生物技術部磚
了解磚命令行界麵(CLI)
了解磚起程拓殖的提供者