開始
用戶指南
管理指南
參考指南
資源
2022年12月22日更新
給我們反饋
了解如何使用Databricks提供的生產就緒工具來開發和部署用於數據編排的第一個提取、轉換和加載(ETL)管道。
在本文結束時,你會覺得很舒服:
啟動Databricks通用計算集群.
創建Databricks筆記本.
使用Auto Loader配置增量數據攝取到Delta Lake.
執行筆記本單元格來處理、查詢和預覽數據.
將筆記本調度為Databricks作業.
本教程使用交互式筆記本在Python或Scala中完成常見的ETL任務。
您還可以使用Delta Live Tables來構建ETL管道。Databricks創建了Delta Live Tables,以降低構建、部署和維護生產ETL管道的複雜性。看到Delta Live Tables快速入門.
你也可以使用Databricks Terraform提供商創建本文的資源。看到使用Terraform創建集群、筆記本和作業.
您已經登錄到Databricks,並且處於Data Science & Engineering工作區。有關更多信息,請參見開始:免費試用和安裝.
你有創建集群權限.
請注意
如果您沒有集群控製權限,隻要您有,您仍然可以完成下麵的大部分步驟訪問集群.
如果您隻能訪問Databricks SQL工作區,請參見:以數據分析師的身份開始Databricks.
要進行探索性數據分析和數據工程,可以創建一個集群來提供執行命令所需的計算資源。
點擊計算在側欄中。
在“計算池”頁麵,單擊創建集群.這將打開New Cluster頁麵。
為集群指定唯一的名稱,其餘值保持默認狀態,單擊創建集群.
要了解有關Databricks集群的更多信息,請參見集群.
要開始在Databricks上編寫和執行交互式代碼,請創建一個筆記本。
點擊新在側欄中,然後單擊筆記本.
在“創建筆記本”界麵:
為筆記本指定唯一的名稱。
確保默認語言設置為PythonorgydF4y2BaScala.
選擇步驟1中創建的集群集群下拉。
點擊創建.
筆記本打開時頂部有一個空單元格。
有關創建和管理筆記本電腦的詳細信息,請參見管理筆記本.
Databricks推薦使用自動加載程序用於增量數據攝取。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,真正的)#配置自動加載器攝取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”//清除之前demo執行的數據火花.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)
這段代碼中定義的變量應該允許您安全地執行它,而不會有與現有工作區資產或其他用戶衝突的風險。在執行此代碼時,受限製的網絡或存儲權限將引發錯誤;請與工作區管理員聯係以排除這些限製。
要了解有關自動裝載機的更多信息,請參見什麼是自動加載器?.
筆記本逐個單元執行邏輯。要在單元格中執行邏輯:
要運行在上一步中完成的單元格,選擇單元格並按下SHIFT + ENTER.
若要查詢剛剛創建的表,請將以下代碼複製並粘貼到空單元格中,然後按SHIFT + ENTER運行單元格。
df=火花.讀.表格(table_name)
瓦爾df=火花.讀.表格(table_name)
要預覽DataFrame中的數據,請將以下代碼複製並粘貼到空單元格中,然後按SHIFT + ENTER運行單元格。
顯示(df)
有關可視化數據的交互選項的詳細信息,請參見可視化.
通過將Databricks筆記本添加為Databricks作業中的任務,可以將它們作為生產腳本運行。在這一步中,您將創建一個可以手動觸發的新作業。
把你的筆記本安排為一項任務:
點擊時間表在標題欄的右側。
屬性的惟一名稱作業名.
點擊手冊.
在集群下拉菜單,選擇步驟1中創建的集群。
在出現的窗口中,單擊現在運行.
要查看作業運行結果,請單擊圖標旁邊的最後一次運行時間戳。
有關作業的更多信息,請參見創建、運行和管理Databricks作業.
使用Databricks了解更多關於數據工程集成和工具的信息:
連接您最喜歡的IDE
使用dbt和Databricks
了解Databricks CLI (Command Line Interface)
了解Databricks Terraform Provider