使用dbx Visual Studio代碼
提示
的磚擴展Visual Studio代碼提供了一種替代方法使用dbx
與Visual Studio代碼。然而,磚擴展Visual Studio代碼是在公共預覽,它尚未提供一些dbx
特性,比如定義多個部署環境和多個部署工作流,以及提供CI / CD項目模板。
本文描述了一個麵向代碼示例你可以使用在任何Python-compatible IDE。具體地說,本文描述了如何使用這段代碼示例Visual Studio代碼,它提供了開發人員的生產力功能如下:
本文使用dbx的磚實驗室隨著Visual Studio代碼提交代碼示例遠程數據磚工作空間。dbx
指示磚介紹磚工作流提交的代碼運行在磚上集群工作在工作區中。
您可以使用Git流行的第三方供應商用於版本控製和持續集成和持續交付或持續部署(CI / CD)的代碼。Git版本控製,這些提供者包括以下:
Azure DevOps(在Azure中國地區)
CI / CD,dbx
支持以下CI / CD平台:Beplay体育安卓版本
為了演示版本控製和CI / CD可以工作,本文描述了如何使用Visual Studio代碼,dbx
,這個代碼示例,GitHub和GitHub的行動。
代碼示例需求
使用這個代碼示例,你必須有以下:
你的磚磚工作區帳戶。創建一個工作區如果你不已經有一個了。
一個GitHub帳戶。創建一個GitHub帳戶如果你不已經有一個了。
此外,本地開發機器上,你必須有以下:
Python版本3.8或更高版本。
您應該使用一個匹配的版本的Python安裝在你的目標集群。Python的版本,安裝在現有的集群中,您可以使用集群網絡終端運行
python——版本
命令。看到的“係統環境”一節磚的運行時版本磚的運行時版本為目標集群。在任何情況下,Python的版本必須是3.8或更高版本。Python的版本,目前引用的本地機器上,運行
python——版本
從您的本地終端。(取決於你如何設置Python在本地機器上,您可能需要運行python3
而不是python
在本文中)。另請參閱選擇一個Python解釋器。皮普。
皮普
自動安裝新版本的Python。檢查是否皮普
已經安裝,運行皮普——版本
從您的本地終端。(取決於你如何設置Python或皮普
你的本地機器上,您可能需要運行pip3
而不是皮普
在本文中)。dbx0.8.0或以上版本。您可以安裝
dbx
包從Python包指數(PyPI)通過運行皮普安裝dbx
。請注意
你不需要安裝
dbx
現在。你可以安裝它在之後的代碼示例設置部分。一個方法來創建Python虛擬環境確保您使用正確的版本的Python和在你的包的依賴關係
dbx
項目。本文將介紹pipenv。的磚CLI或低於0.17版本,設置身份驗證。
請注意
你不需要安裝遺留數據磚CLI(磚CLI的0.17版本)。你可以安裝它在之後的代碼示例設置部分。如果你想安裝它之後,你一定記得當時設置身份驗證。
的Python擴展Visual Studio代碼。
的GitHub拉請求和問題擴展Visual Studio代碼。
Git。
的代碼示例
Python代碼示例本文中可用磚/ ide-best-practices在GitHub回購,如下:
得到的數據owid / covid-19-data在GitHub回購。
過濾器的數據為一個特定的ISO國家代碼。
創建一個數據透視表的數據。
對數據執行數據清理。
為可重用功能模塊化的代碼邏輯。
單元測試的功能。
提供了
dbx
項目配置和設置啟用代碼寫數據到三角洲表在一個偏遠的磚工作區。
設置代碼示例
後你有需求在這段代碼示例中,完成以下步驟開始使用代碼示例。
請注意
這些步驟不包括這個代碼示例設置CI / CD。你不需要設置CI / CD運行這段代碼示例。如果你想設置CI / CD後,明白了使用GitHub運行操作。
步驟1:創建一個Python虛擬環境
從您的終端,創建一個空白的文件夾包含一個虛擬環境代碼示例。這些指令使用父文件夾命名
ide-demo
。你可以給這個文件夾任何你想要的名字。如果你使用一個不同的名稱,取代本文的名字。創建的文件夾後,切換到它,然後開始Visual Studio代碼從文件夾中。一定要包括點(。
後)代碼
命令。對於Linux和macOS:
mkdir ide-democdide-demo代碼。
提示
如果你得到這個錯誤
命令不發現:代碼
,請參閱從命令行啟動在微軟的網站。Windows:
醫學博士ide-democdide-demo代碼。
在Visual Studio代碼,在菜單欄,點擊視圖>終端。
的根源
ide-demo
文件夾,運行pipenv
命令使用以下選項,<版本>
是目標的Python版本已經安裝在本地(理想情況下,一個版本相匹配你的目標集群的版本的Python),例如3.8.14
。pipenv——python <版本>
記下的
Virtualenv位置
價值的輸出pipenv
命令,如您需要在下一步。選擇目標Python解釋器,然後激活Python虛擬環境:
在菜單欄,點擊視圖>命令麵板、類型
Python:選擇
,然後單擊Python:選擇翻譯。在Python的路徑選擇Python解釋器您剛剛創建的虛擬環境。(這條路是上市的
Virtualenv位置
價值的輸出pipenv
命令。)在菜單欄,點擊視圖>命令麵板、類型
終端:創建
,然後單擊終端:創建新的終端。確保你的命令提示符顯示
pipenv
殼。確認,您應當會看到類似(<用戶名>)
之前你的命令提示符。如果你沒有看到它,運行以下命令:pipenv殼
退出
pipenv
殼,運行命令退出
,括號中消失。
有關更多信息,請參見使用Python環境VS代碼在Visual Studio代碼文檔。
步驟2:克隆GitHub的代碼示例
在Visual Studio代碼,打開
ide-demo
文件夾(文件>打開文件夾),如果不是已經打開。點擊視圖>命令麵板、類型
Git:克隆
,然後單擊Git:克隆。為提供存儲庫URL或選擇一個存儲庫源,輸入
https://github.com/databricks/ide-best-practices
瀏覽到你的
ide-demo
文件夾,然後單擊選擇存儲位置。
第三步:安裝代碼示例的依賴性
安裝的版本
dbx
和磚CLI或低於0.17版本的兼容版本的Python。要做到這一點,從你的終端,在Visual Studio代碼從你ide-demo
文件夾和一個pipenv
shell激活(pipenv殼牌
),運行以下命令:pip安裝dbx
確認
dbx
安裝。要做到這一點,運行以下命令:dbx——版本
如果版本號返回,
dbx
安裝。如果版本號低於0.8.0,升級
dbx
通過運行下麵的命令,然後再次檢查版本號:pip安裝dbx——dbx升級版本#還是……python - m pip安裝dbx——dbx升級版本
當你安裝
dbx
遺留數據磚CLI(磚CLI版本0.17)會自動安裝。確認遺留數據磚安裝CLI(磚CLI的0.17版本),運行以下命令:磚,版本
如果返回磚CLI的0.17版本,遺留數據磚CLI安裝。
如果您還沒有設置遺留數據磚CLI(磚CLI的0.17版本)身份驗證,你必須現在就做。確認身份驗證設置,基本運行以下命令來獲得一些關於磚工作區的摘要信息。一定要包括斜杠(
/
後)ls
子命令:磚工作區ls /
如果一個root文件夾名稱列表返回您的工作區,身份驗證設置。
安裝Python包,這段代碼示例取決於。要做到這一點,從運行以下命令
ide-demo / ide-best-practices
文件夾:pip安裝- r unit-requirements.txt
確認代碼示例的安裝依賴包。要做到這一點,運行以下命令:
皮普列表
如果包中列出
讓
和unit-requirements.txt
文件在這個列表,安裝依賴包。
步驟4:定製的代碼示例數據磚工作區
定製的回購
dbx
項目設置。要做到這一點,.dbx / project.json
文件,改變的價值配置文件
對象從默認的
這個概要文件的名稱相匹配的一個遺留的磚你設置身份驗證CLI(磚CLI的版本0.17)。如果你沒有設置任何非默認配置文件,離開了默認的
為是。例如:{“環境”:{“默認”:{“配置文件”:“默認”,“storage_type”:“mlflow”,“屬性”:{“workspace_directory”:“/共享/ dbx / covid_analysis”,“artifact_location”:“dbfs: /共享/ dbx /項目/ covid_analysis”}}},“inplace_jinja_support”:假}
自定義
dbx
項目的部署設置。要做到這一點,conf / deployment.yml
文件,改變的價值spark_version
和node_type_id
對象從10.4.x-scala2.12
和m6gd.large
的磚運行時版本字符串和集群節點類型你想讓你的磚工作區用於部署運行。例如,指定運行時10.4 LTS和磚
n1-highmem-4
節點類型:環境:默認的:工作流:- - - - - -的名字:“covid_analysis_etl_integ”new_cluster:spark_version:“10.4.x-scala2.12”num_workers:1node_type_id:“n1-highmem-4”spark_python_task:python_file:“文件:/ /工作/ covid_trends_job.py”- - - - - -的名字:“covid_analysis_etl_prod”new_cluster:spark_version:“10.4.x-scala2.12”num_workers:1node_type_id:“n1-highmem-4”spark_python_task:python_file:“文件:/ /工作/ covid_trends_job.py”參數:(”——刺激”]- - - - - -的名字:“covid_analysis_etl_raw”new_cluster:spark_version:“10.4.x-scala2.12”num_workers:1node_type_id:“n1-highmem-4”spark_python_task:python_file:“文件:/ /工作/ covid_trends_job_raw.py”
提示
在這個例子中,這三個定義有相同的工作spark_version
和node_type_id
價值。您可以使用不同的值定義為不同的工作。您還可以創建共同的價值觀和重用它們在工作定義,減少打字錯誤和代碼維護。看到YAML的例子dbx
文檔。
探索代碼示例
在你設置代碼示例使用以下信息,了解各種文件ide-demo / ide-best-practices
文件夾的工作。
測試
單元測試
的測試/文檔
文件包含數據的一小部分covid-hospitalizations.csv
申請測試的目的。的測試/ transforms_test.py
文件包含的單元測試covid_analysis / transforms.py
文件。
單元測試運行器
的pytest.ini
文件包含配置選項的運行測試pytest。看到pytest.ini和配置選項在pytest
文檔。
的.coveragerc
文件包含配置選項對於Python代碼覆蓋率測試coverage.py。看到配置引用在coverage.py
文檔。
的讓
文件,它的一個子集unit-requirements.txt
文件,您在前麵跑皮普
包含一個包的列表,也依賴於單元測試。
包裝
的setup . py
文件提供的命令運行在控製台(控製台腳本),等皮普
命令,Python包裝項目setuptools。看到入口點在setuptools
文檔。
其他文件
還有其他文件在這之前沒有描述代碼示例:
的
.github /工作流
文件夾包含三個文件,databricks_pull_request_tests.yml
,onpush.yml
,onrelease.yaml
,表示GitHub的行動,在後麵介紹GitHub的行為部分。的
.gitignore
文件包含一個本地文件夾和文件列表,Git忽略了回購。
運行該代碼示例
您可以使用dbx
你的本地機器上指導磚按需運行遠程工作空間中的代碼示例,在下一小節中所描述的。或者你可以使用GitHub的行為GitHub運行代碼示例每次代碼更改推到GitHub回購。
使用dbx運行
安裝的內容
covid_analysis
文件夾在Python包setuptools
發展模式通過運行下麵的命令從你的根源dbx
項目(例如,ide-demo / ide-best-practices
文件夾)。一定要包括點(。
)結束時,這個命令:pip安裝- e。
這個命令創建一個
covid_analysis.egg-info
文件夾,其中包含編譯後的版本的信息covid_analysis / __init__ . py
和covid_analysis / transforms.py
文件。運行測試通過運行下麵的命令:
pytest測試/
測試的結果顯示在終端。所有四個測試應該顯示為通過。
提示
額外的測試方法,包括檢測R和Scala筆記本,看到的單元測試的筆記本。
可選地,獲得您的測試的測試覆蓋度量通過運行下麵的命令:
覆蓋運行- m pytest測試/
請注意
如果將顯示一條消息
報道
無法找到運行皮普安裝報道
,再試一次。查看測試覆蓋率結果,運行以下命令:
覆蓋率報告- m
如果通過所有四個測試,發送
dbx
項目的內容到你的磚工作區,通過運行下麵的命令:dbx部署——環境=默認的
項目及其運行的信息被發送到指定的位置
workspace_directory
對象.dbx / project.json
文件。項目的內容發送到指定的位置
artifact_location
對象.dbx / project.json
文件。運行前期製作版本的代碼在您的工作區,通過運行下麵的命令:
dbx發射covid_analysis_etl_integ
鏈接顯示在終端運行的結果。它應該是這樣的:
https:// < your-workspace-instance-id > / ? o=1234567890123456#工作/ 123456789012345 / / 12345運行
按照這個鏈接在您的web瀏覽器中看到在您的工作空間中運行的結果。
生產版本的代碼運行在您的工作區,通過運行下麵的命令:
dbx發射covid_analysis_etl_prod
鏈接顯示在終端運行的結果。它應該是這樣的:
https:// < your-workspace-instance-id > / ? o=1234567890123456#工作/ 123456789012345 / / 23456運行
按照這個鏈接在您的web瀏覽器中看到在您的工作空間中運行的結果。
使用GitHub運行操作
在項目的.github /工作流
文件夾,onpush.yml
和onrelease.yml
GitHub行動文件執行以下操作:
在每一個開始推動一個標簽
v
,使用dbx
部署covid_analysis_etl_prod
的工作。在每個推動這並不是一個開始標記
v
:使用
pytest
運行單元測試。使用
dbx
配置文件中指定的covid_analysis_etl_integ
工作遠程工作區。使用
dbx
已經部署的文件中指定covid_analysis_etl_integ
工作在遠程工作,跟蹤運行,直到它完成。
請注意
一個額外的GitHub操作文件,databricks_pull_request_tests.yml
,提供給你作為一個模板來試驗,沒有影響onpush.yml
和onrelease.yml
GitHub的操作文件。您可以運行這段代碼示例沒有databricks_pull_request_tests.yml
GitHub的操作文件。使用本文中未涉及。
接下來的部分描述如何設置和運行onpush.yml
和onrelease.yml
GitHub的操作文件。
設置為使用GitHub的行動
設置數據磚工作區添加一個用戶工作區,將僅用於驗證GitHub回購。添加用戶後,個人訪問令牌為新用戶。
請注意
當你創建一個新的磚工作空間的用戶,您不能將它與自己的磚用戶的電子郵件地址。相反,看到您組織的郵件管理員有一個單獨的電子郵件地址,你可以聯係這個新磚用戶工作區。
看到您的組織的帳戶管理員管理單獨的電子郵件地址及其相關組織中的個人訪問令牌。
作為一個安全最佳實踐,磚建議你使用磚磚服務主體的個人訪問令牌,而不是磚個人工作區用戶訪問令牌,用於啟用GitHub與磚工作區進行身份驗證。
創建數據磚後服務主體及其磚個人訪問令牌,停止並記下磚個人訪問令牌的值,你將在下一節中使用。
GitHub運行操作
步驟1:發布您的克隆回購
在Visual Studio代碼,在側邊欄,單擊GitHub圖標。如果圖標不可見,啟用GitHub拉請求和問題通過擴展擴展視圖(視圖>擴展)第一。
如果登錄可見的按鈕,單擊它,按照屏幕上的指示標誌在GitHub賬戶。
在菜單欄,點擊視圖>命令麵板、類型
發布來GitHub
,然後單擊發布到GitHub。選擇一個選項來發布您的克隆回購GitHub賬戶。
步驟2:添加加密機密回購
在GitHub網站公布回購,聽從指示為存儲庫創建加密的秘密對於以下加密的秘密:
創建一個加密的秘密命名
DATABRICKS_HOST
將你的價值工作區實例URL例如,https://1234567890123456.7.gcp.m.eheci.com
。創建一個加密的秘密命名
DATABRICKS_TOKEN
的值,設置為磚磚服務主體的個人訪問令牌。