開始
用戶指南
管理指南
參考指南
資源
2022年10月10日更新
給我們反饋
了解如何使用Databricks中的生產準備工具來開發和部署用於數據編排的第一個提取、轉換和加載(ETL)管道。
在本文結束時,你會感到舒服:
啟動Databricks通用計算集群.
創建Databricks筆記本.
配置增量數據攝入三角洲湖與自動加載器.
執行筆記本單元格來處理、查詢和預覽數據.
將筆記本作為Databricks作業調度.
本教程使用交互式筆記本在Python或Scala中完成常見的ETL任務。
您還可以使用Delta Live Tables來構建ETL管道。Databricks創建了Delta Live table,以減少構建、部署和維護生產ETL管道的複雜性。看到Delta Live Tables快速入門.
你也可以使用磚起程拓殖的提供者創建本文的參考資料。看到使用Databricks Terraform提供程序創建一個集群、一個筆記本和一個作業.
您已經登錄到Databricks,並且處於Data Science & Engineering工作區中。有關更多信息,請參見在穀歌雲上啟動Databricks免費試用.
你有創建集群權限.
請注意
如果您沒有集群控製特權,隻要您有,您仍然可以完成下麵的大部分步驟訪問集群.
如果您隻能訪問Databricks SQL工作區,請參見:開始使用Databricks作為數據分析師.
為了進行探索性數據分析和數據工程,需要創建集群來提供執行命令所需的計算資源。
點擊計算在側邊欄。
在“計算池”頁麵,單擊創建集群.這將打開New Cluster頁麵。
為集群指定一個惟一的名稱,其餘值保持默認狀態,然後單擊創建集群.
要了解有關Databricks集群的更多信息,請參見集群.
要開始在Databricks上編寫和執行交互式代碼,請創建一個筆記本。
點擊創建在側欄中,然後單擊筆記本.
在“創建筆記本”頁麵:
為你的筆記本指定一個唯一的名字。
確保默認語言設置為PythonorgydF4y2BaScala.
從步驟1中選擇創建的集群集群下拉。
點擊創建.
筆記本打開時頂部有一個空格子。
要了解關於創建和管理筆記本的更多信息,請參見管理筆記本.
磚推薦使用自動加載程序對於增量數據攝取。當新文件到達雲對象存儲時,Auto Loader自動檢測和處理。
Databricks建議使用三角洲湖.Delta Lake是一個開源存儲層,它提供ACID事務並支持數據湖屋。Delta Lake是在Databricks中創建的表的默認格式。
要配置Auto Loader將數據攝取到Delta Lake表中,請將以下代碼複製並粘貼到筆記本中的空單元格中:
#導入功能從pyspark.sql.functions進口input_file_name,current_timestamp#定義下麵代碼中使用的變量file_path=“/ databricks-datasets / structured-streaming /事件”用戶名=火花.sql(的“選擇regexp_replace (current_user (), [^ a-zA-Z0-9)”,“_”)”).第一個() (0]table_name=f"{用戶名}_etl_quickstart”checkpoint_path=f“/ tmp /{用戶名}/ _checkpoint / etl_quickstart”#清除之前演示執行的數據火花.sql(f如果存在,刪除表{table_name}")dbutils.fs.rm(checkpoint_path,真正的)#配置Auto Loader將JSON數據導入Delta表(火花.readStream.格式(“cloudFiles”).選項(“cloudFiles.format”,“json”).選項(“cloudFiles.schemaLocation”,checkpoint_path).負載(file_path).選擇(“*”,input_file_name().別名(“source_file”),current_timestamp().別名(“processing_time”)).writeStream.選項(“checkpointLocation”,checkpoint_path).觸發(availableNow=真正的).toTable(table_name))
/ /進口進口org.apache.火花.sql.功能{。input_file_name,current_timestamp}進口org.apache.火花.sql.流媒體.觸發進口火花.值得一提的._//定義下麵代碼中使用的變量瓦爾file_path=“/ databricks-datasets / structured-streaming /事件”瓦爾用戶名=火花.sql(的“選擇regexp_replace (current_user (), [^ a-zA-Z0-9)”,“_”)”).第一個.得到(0)瓦爾table_name=s”$ {用戶名}_etl_quickstart”瓦爾checkpoint_path=“/ tmp /$ {用戶名}/ _checkpoint”//清除之前演示執行的數據火花.sql(如果存在,刪除表$ {table_name}")dbutils.fs.rm(checkpoint_path,真正的)//配置Auto Loader將JSON數據接收到Delta表火花.readStream.格式(“cloudFiles”).選項(“cloudFiles.format”,“json”).選項(“cloudFiles.schemaLocation”,checkpoint_path).負載(file_path).選擇($“*”,input_file_name.作為(“source_file”),current_timestamp.作為(“processing_time”)).writeStream.選項(“checkpointLocation”,checkpoint_path).觸發(觸發.AvailableNow).toTable(table_name)
這段代碼中定義的變量應該允許您安全地執行它,而不會與現有的工作區資產或其他用戶發生衝突。受限製的網絡或存儲權限將在執行此代碼時引發錯誤;請與您的工作空間管理員聯係以排除這些限製。
要了解更多關於自動加載器,請參見什麼是Auto Loader?.
筆記本逐單元執行邏輯。要在單元格中執行邏輯:
要運行在上一步中完成的單元格,請選擇單元格並按下SHIFT + ENTER.
要查詢剛剛創建的表,請將以下代碼複製並粘貼到一個空單元格中,然後按下SHIFT + ENTER運行計算單元。
df=火花.讀.表格(table_name)
瓦爾df=火花.讀.表格(table_name)
要預覽DataFrame中的數據,請將以下代碼複製並粘貼到空單元格中,然後按下SHIFT + ENTER運行計算單元。
顯示(df)
要了解更多關於可視化數據的交互選項的信息,請參見可視化.
通過將Databricks筆記本添加為Databricks作業中的任務,可以將其作為生產腳本運行。在此步驟中,您將創建一個可以手動觸發的新作業。
把你的筆記本作為一項任務:
點擊時間表在標題欄的右側。
的惟一名稱作業名.
點擊手冊.
在集群下拉菜單中選擇步驟1中創建的集群。
在出現的窗口中,單擊現在運行.
要查看作業運行結果,請單擊圖標旁邊的最後一次運行時間戳。
有關工作的更多信息,請參見創建、運行和管理Databricks作業.
使用Databricks了解更多關於數據工程的集成和工具:
連接您最喜歡的IDE
在Databricks中使用dbt
了解Databricks命令行接口(CLI)
了解有關Databricks Terraform Provider的信息