創建集群、筆記本和就業起程拓殖

本文將展示如何使用磚起程拓殖的提供者創建一個集群,一個筆記本和一個工作在現有的磚工作空間

這篇文章是一個同伴磚開始的文章如下:

起程拓殖配置還可以適應在本文中創建自定義集群,筆記本電腦,和工作在你的工作區。

需求

  • 一個磚的工作區。

  • 本地開發機器上,您必須:

    • 起程拓殖CLI。看到下載起程拓殖在起程拓殖網站上。

    • 下列之一:

      • 磚CLI版本0.200或更高版本,配置你的磚個人訪問令牌通過運行配置——主機< workspace-url >——簡介< some-unique-profile-name >。看到安裝CLI磚個人訪問令牌認證

        請注意

        作為一個安全最佳實踐進行身份驗證時使用自動化工具,係統、腳本和應用程序,磚建議您使用OAuth令牌或個人訪問令牌屬於服務主體而不是用戶工作區。為服務主體,創建令牌服務主體的管理令牌

      • 下麵的磚環境變量:

        或者,您可以使用一個個人訪問令牌,而不是服務主體的客戶ID和客戶秘密:

        設置這些環境變量,看你的操作係統的文檔。

        請注意

        作為一個安全最佳實踐進行身份驗證時使用自動化工具,係統、腳本和應用程序,磚建議您使用OAuth令牌或個人訪問令牌屬於服務主體而不是用戶工作區。為服務主體,創建令牌服務主體的管理令牌

步驟1:設置起程拓殖項目

在這個步驟中,您建立了一個起程拓殖起程拓殖驗證項目定義的設置與您的工作區。你也定義設置起程拓殖的資源部署到您的工作空間中。

  1. 創建一個空目錄,然後切換到它。這個目錄包含起程拓殖項目文件。(每個單獨的組起程拓殖項目文件必須在自己的父目錄)。要做到這一點,在你的終端或PowerShell,運行一個命令如下:

    mkdir terraform_cluster_notebook_job& &cdterraform_cluster_notebook_job
  2. 在這個空目錄中,創建一個文件命名auth.tf,並將以下內容添加到該文件。這個配置初始化數據磚起程拓殖起程拓殖與提供者和驗證您的工作區。

    驗證數據磚CLI配置概要文件,添加以下內容:

    變量“databricks_connection_profile”{描述=“磚連接配置文件的名稱使用。”類型=字符串}#初始化磚起程拓殖的提供者。起程拓殖{required_providers{={=“磚/磚”}}}#使用磚CLI的身份驗證。提供者“磚”{配置文件=vardatabricks_connection_profile}#獲取當前用戶的信息。數據“databricks_current_user”“我”{}

    與環境變量進行身份驗證,而不是添加以下內容:

    #初始化磚起程拓殖的提供者。起程拓殖{required_providers{={=“磚/磚”}}}#使用環境變量進行身份驗證。提供者“磚”{}#獲取當前用戶的信息。數據“databricks_current_user”“我”{}
  1. 創建另一個文件命名auth.auto.tfvars,並將以下內容添加到該文件。這個文件包含變量的值驗證起程拓殖與你的工作區。占位符的值替換為你自己的價值觀。

    驗證數據磚CLI配置概要文件,添加以下內容:

    databricks_connection_profile=“默認”

    進行身份驗證和環境變量,你不需要一個auth.auto.tfvars文件。

  1. 運行起程拓殖初始化命令。這個命令初始化起程拓殖項目通過創建額外的輔助文件和下載必要的起程拓殖模塊。

    起程拓殖init
  2. 如果要創建一個集群,創建另一個文件命名cluster.tf,並將以下內容添加到該文件。這些內容創建一個集群資源允許的最小數量。這個集群使用最新的磚(LTS)長期運行時支持的版本。

    的集群使用統一目錄:

    變量“cluster_name”{}變量“cluster_autotermination_minutes”{}變量“cluster_num_workers”{}變量“cluster_data_security_mode”{}#創建集群的“最小”#資源允許的。數據“databricks_node_type”“最小”{local_disk=真正的}#使用最新的磚運行時#長期支持(LTS)版本。數據“databricks_spark_version”“latest_lts”{long_term_support=真正的}資源“databricks_cluster”“這”{cluster_name=varcluster_namenode_type_id=數據databricks_node_type最小的idspark_version=數據databricks_spark_versionlatest_ltsidautotermination_minutes=varcluster_autotermination_minutesnum_workers=varcluster_num_workersdata_security_mode=varcluster_data_security_mode}輸出“cluster_url”{價值=databricks_clusterurl}

    一個通用的集群:

    變量“cluster_name”{描述=“集群的名稱”。類型=字符串默認的=“我的集群”}變量“cluster_autotermination_minutes”{描述=“多少分鍾後自動終止由於不活動。”類型=數量默認的=60}變量“cluster_num_workers”{描述=“工人的數量。”類型=數量默認的=1}#創建集群的“最小”#資源允許的。數據“databricks_node_type”“最小”{local_disk=真正的}#使用最新的磚運行時#長期支持(LTS)版本。數據“databricks_spark_version”“latest_lts”{long_term_support=真正的}資源“databricks_cluster”“這”{cluster_name=varcluster_namenode_type_id=數據databricks_node_type最小的idspark_version=數據databricks_spark_versionlatest_ltsidautotermination_minutes=varcluster_autotermination_minutesnum_workers=varcluster_num_workers}輸出“cluster_url”{價值=databricks_clusterurl}
  3. 如果你正在創建集群,創建另一個文件命名cluster.auto.tfvars,並將以下內容添加到該文件。這個文件包含自定義的變量值集群。占位符的值替換為你自己的價值觀。

    的集群使用統一目錄:

    cluster_name=“我的集群”cluster_autotermination_minutes=60cluster_num_workers=1cluster_data_security_mode=“SINGLE_USER”

    一個通用的集群:

    cluster_name=“我的集群”cluster_autotermination_minutes=60cluster_num_workers=1
  4. 如果要創建一個筆記本,創建另一個文件命名notebook.tf文件,並添加以下內容:

    變量“notebook_subdirectory”{描述=”子目錄的名稱存儲筆記本。”類型=字符串默認的=“起程拓殖”}變量“notebook_filename”{描述=筆記本的文件名。類型=字符串}變量“notebook_language”{描述=“筆記本的語言”。類型=字符串}資源“databricks_notebook”“這”{路徑=" ${data.databricks_current_user.me.home}美元/{var.notebook_subdirectory}美元/{var.notebook_filename}語言=varnotebook_language=”。/ ${var.notebook_filename}}輸出“notebook_url”{價值=databricks_notebookurl}
  5. 將下麵的筆記本代碼保存到一個文件在同一個目錄中notebook.tf文件:

    Python的筆記本磚上運行你的第一個ETL工作負載,一個文件命名notebook-getting-started-etl-quick-start.py用下麵的內容:

    #磚筆記本的來源#導入功能pyspark.sql.functions進口上校,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})dbutilsfsrm(checkpoint_path,真正的)#配置自動加載程序向三角洲攝取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=真正的)toTable(table_name))- - - - - - - - - - - #命令df=火花(table_name)- - - - - - - - - - - #命令顯示(df)

    SQL的筆記本與筆記本電腦教程:查詢數據,一個文件命名notebook-getting-started-quick-start.sql用下麵的內容:

    - - -筆記本- - -魔法%python- - -魔法鑽石=(火花- - -魔法格式(“csv”)- - -魔法選項(“頭”,“真正的”)- - -魔法選項(“inferSchema”,“真正的”)- - -魔法負載(“/ databricks-datasets / Rdatasets /數據- 001 / csv / ggplot2 / diamonds.csv”)- - -魔法)- - -魔法- - -魔法鑽石格式(“δ”)保存(“/ mnt /δ/鑽石”)- - -命令- - - - - - - - - - -下降如果存在鑽石;創建鑽石使用δ位置“/ mnt /δ/鑽石”- - -命令- - - - - - - - - - -選擇顏色,avg(價格)作為價格鑽石集團通過顏色訂單通過顏色

    Python的筆記本教程:運行一個端到端的lakehouse分析管道,一個文件命名notebook-getting-started-lakehouse-e2e.py用下麵的內容:

    #磚筆記本的來源external_location=“< your_external_location >”目錄=“< your_catalog >”dbutilsfs(f{external_location}/ foobar.txt”,“Hello world !”,真正的)顯示(dbutilsfs(f{external_location}/ foobar.txt”))dbutilsfsrm(f{external_location}/ foobar.txt”)顯示(火花sql(f“顯示模式{目錄}))- - - - - - - - - - - #命令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})#從以前的演示執行清除數據dbutilsfsrm(,真正的)dbutilsfsrm(checkpoint_path,真正的)#定義一個類加載批次的數據來源LoadData:def__init__(自我,):自我=defget_date(自我):試一試:df=火花格式(“json”)負載()除了:返回“2016-01-01”batch_date=dfselectExpr(“馬克斯(不同(日期(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()- - - - - - - - - - - #命令RawDataland_batch()- - - - - - - - - - - #命令#導入功能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())- - - - - - - - - - - #命令df=火花(table_name)- - - - - - - - - - - #命令顯示(df)
  6. 如果你創建的筆記本,創建另一個文件命名notebook.auto.tfvars,並將以下內容添加到該文件。這個文件包含定製筆記本配置的變量值。

    Python的筆記本磚上運行你的第一個ETL工作負載:

    notebook_subdirectory=“起程拓殖”notebook_filename=“notebook-getting-started-etl-quick-start.py”notebook_language=“巨蟒”

    SQL的筆記本與筆記本電腦教程:查詢數據:

    notebook_subdirectory=“起程拓殖”notebook_filename=“notebook-getting-started-quickstart.sql”notebook_language=“SQL”

    Python的筆記本教程:運行一個端到端的lakehouse分析管道:

    notebook_subdirectory=“起程拓殖”notebook_filename=“notebook-getting-started-lakehouse-e2e.py”notebook_language=“巨蟒”
  7. 如果你正在創建一個筆記本,磚工作區,一定要設置任何需求筆記本運行成功,通過引用以下說明:

  8. 如果你正在創建一個工作,創建另一個文件命名job.tf,並將以下內容添加到該文件。這些內容創建一個工作運行的筆記本。

    變量“job_name”{描述=“名字。”類型=字符串默認的=“我的工作”}資源“databricks_job”“這”{的名字=varjob_nameexisting_cluster_id=databricks_clustercluster_idnotebook_task{notebook_path=databricks_notebook路徑}email_notifications{on_success=(數據databricks_current_useruser_name]on_failure=(數據databricks_current_useruser_name]}}輸出“job_url”{價值=databricks_joburl}
  9. 如果你創建工作,創建另一個文件命名job.auto.tfvars,並將以下內容添加到該文件。這個文件包含一個變量值配置定製工作。

    job_name=“我的工作”

步驟2:運行配置

在這個步驟中,您運行起程拓殖配置部署集群,筆記本,工作到磚工作區中。

  1. 檢查是否你起程拓殖配置是有效運行起程拓殖驗證命令。如果報告任何錯誤,修複它們,並再次運行該命令。

    起程拓殖驗證
  2. 查看起程拓殖將做什麼在你的工作區,起程拓殖實際上它之前,通過運行起程拓殖計劃命令。

    起程拓殖計劃
  3. 集群部署,筆記本,工作到您的工作空間中運行起程拓殖應用命令。當提示部署類型是的並按輸入

    起程拓殖應用

    起程拓殖部署在您的項目中指定的資源。部署這些資源(特別是集群)可能要占用幾分鍾的時間。

步驟3:探索結果

  1. 如果你創建了一個集群,在輸出的起程拓殖應用命令,複製鏈接旁邊cluster_url,並粘貼到您的web瀏覽器的地址欄。

  2. 如果你創建了一個筆記本,在輸出的起程拓殖應用命令,複製鏈接旁邊notebook_url,並粘貼到您的web瀏覽器的地址欄。

    請注意

    在使用筆記本之前,你可能需要定製它的內容。參見相關文檔如何定製筆記本。

  3. 如果您創建了一個工作,在的輸出起程拓殖應用命令,複製鏈接旁邊job_url,並粘貼到您的web瀏覽器的地址欄。

    請注意

    在運行筆記本之前,你可能需要定製它的內容。看到這篇文章的鏈接開始相關文檔如何定製筆記本。

  4. 如果您創建了一個工作,運行作業如下:

    1. 點擊現在運行在工作中頁麵。

    2. 工作完成後運行,查看工作運行的結果,完成運行60天(過去)工作列表頁麵,點擊最近時間條目開始時間列。的輸出窗格中顯示了筆記本的代碼運行的結果。

第四步:清理

在這個步驟中,您從工作區中刪除前麵的資源。

  1. 查看起程拓殖將做什麼在你的工作區,起程拓殖實際上它之前,通過運行起程拓殖計劃命令。

    起程拓殖計劃
  2. 刪除集群,筆記本,工作從您的工作空間中運行起程拓殖摧毀命令。當提示刪除類型是的並按輸入

    起程拓殖摧毀

    起程拓殖項目中刪除指定的資源。