這很重要
這項功能位於 測試版 (Beta) 中。 要使用它,工作區管理員必須從預覽頁面開啟代理程式碼轉換器。 請參閱 管理 Azure Databricks 預覽。
代理碼轉換器使用 Genie Code 將現有的 SQL 從 T-SQL、Snowflake、Redshift、Oracle、BigQuery 和 Teradata 等方言轉換成可在 Azure Databricks 上運行的 ANSI SQL。 你會在遷移專案中組織工作,轉換器會分析每個原始腳本,驗證已轉換的輸出,並反覆修正錯誤,然後將結果寫入工作區資料夾。
代理碼轉換器是 Databricks 工具的一部分,用於將工作負載從現有資料倉儲和 ETL 工具遷移到 Azure Databricks。 它會轉換你的原始 SQL,同時你在遷移專案中組織和追蹤工作。
運作原理
你可以在工作區建立一個遷移專案來開始轉換。 專案會追蹤每個檔案的狀態,並提供一個單一地方來管理遷移。
當你執行轉換時,Genie Code 會啟動遷移技能,並部署子代理同時轉換檔案。 每個子代理會分析來源方言,產生 ANSI SQL 等效版本,驗證結果,並重試失敗的區段。 轉換後的檔案會直接寫入你為專案指定的工作區資料夾。
你也可以在 Genie Code 對話中使用這個 /migrate 指令,在沒有專案的情況下轉換單一檔案或資料夾。
Requirements
- 已啟用代理式程式碼轉換器 Beta 的工作區。 Workspace 管理員會從 預覽 頁面啟用此功能。 請參閱 管理 Azure Databricks 預覽。
- 你現有的 SQL 檔案必須在工作區中可存取,無論是以工作區檔案上傳,或是在編輯器中開啟。
- 您的工作空間必須符合精靈密碼的要求。 請參考 精靈密碼。
支援來源與限制
該轉換器支援以下來源方言:
- T-SQL
- Snowflake SQL
- Redshift SQL
- Oracle
- BigQuery
- Teradata
此轉換器以 ANSI SQL 為目標。 以下限制適用於每次轉換:
- 一個批次最多可包含 300 個檔案。
- 一個腳本最多可包含1,000行。
- Teradata BTEQ 腳本尚未支援。
轉換現有 SQL 程式碼
以下步驟說明如何在遷移專案中轉換現有 SQL。
步驟 1:上傳原始檔案
你可以用.sql上傳你現有的 SQL 檔案(),或使用 Databricks CLI 批量上傳一組腳本目錄。
步驟二:建立遷移專案
從你的工作區建立一個遷移專案:
- 點擊
>遷移專案」。 - 輸入專案 名稱 。
- 使用下拉選單選擇來源 方言 和 目標框架。
- 輸入目標 Destination 資料夾的檔案路徑。 點擊瀏覽,從可用工作區資料夾列表中選擇目的地。
- (可選)輸入描述專案血統的 Lineage 檔案 路徑。 點擊 瀏覽 ,從工作區中的檔案列表中選擇該檔案。
- 點擊 建立。
步驟 3:將檔案加入你的專案
在新專案中:
- 點擊 新增檔案>+新增檔案。
- 選擇來源資料夾或工作區中的檔案。
專案列出每個檔案及其檔案類型、行數及轉換狀態。
步驟 4:檢視程式碼複雜度與沿革(可選)
如果你已經執行過 Lakebridge 分析器,請將其 JSON 輸出上傳到專案中,以檢視程式碼的複雜度與血統。 點擊原始碼檔案可開啟複雜度評估,點選 血統 可開啟相依關係圖,顯示必須共同遷移的相依檔案與資料表。 有關操作分析儀的說明,請參閱 Lakebridge 分析儀指南。
步驟 5:執行轉換
選擇要轉換的檔案,然後點 選執行。 Genie Code 會開啟對話,啟動遷移技能,並部署子代理同時轉換檔案。 每個轉換後的檔案在專案中以連結檔案的形式出現。 轉換器會為每個檔案標示狀態:
- 綠色:成功轉換
- 黃色:需要檢討
- 紅:轉換失敗
- Gray:進行中
步驟六:檢視轉換結果
點擊已轉換的檔案,即可在 SQL 編輯器中開啟左右並排的差異檢視,並排顯示原始碼和建議的 Databricks SQL。 接受所有建議的修改,或審查並接受個別編輯。 對於無法轉換的腳本,請在編輯器中編輯程式碼,或請 Genie Code 重新驗證或重試特定區段。 確認後,請用筆記本或 SQL 編輯器執行轉換後的 SQL,確認它能在 Azure Databricks 上運行。
創建自訂技能(可選)
自訂技能可以讓你編碼 Genie Code 在每次轉換時自動套用的商業規則。 用它們來處理專有資料型態、強制執行偏好的目標模式,或捕捉你反覆進行的修正。 遷移技能是精靈代碼技能,所以你可以像其他技能一樣創建和管理它。 如需更多詳細資訊,請參閱 使用代理程式技能擴充 Genie Code。
你可以從精靈密碼設定或精靈密碼對話中創建技能。 對於包含詳細指示、範例或支援檔案的複雜技能,請使用設定路徑。 使用聊天路徑來快速完成單一規則技能。
精靈密碼設定
將技能建立為檔案,方便你撰寫詳細說明並在 Git 資料夾中進行版本化:
在精靈密碼面板中,點擊
設定,然後點擊
打開技能資料夾。
在工作區技能路徑
Workspace/.assistant/skills/下,為你的技能建立一個資料夾。 例如:Workspace/.assistant/skills/sql-migration/。在技能資料夾中,建立一個包含必要前置資料和你的轉換規則的
SKILL.md檔案。 例如:--- name: sql-migration description: Conversion rules to apply when migrating legacy SQL to ANSI SQL. --- Always convert the custom type MYDATE to TIMESTAMP_NTZ.
Genie Code 會在你下次執行轉換時學會這項技能。
精靈代碼聊天室
描述你想編碼的轉換規則,然後請 Genie Code 儲存它:
Tip
Always convert our custom type MYDATE to TIMESTAMP_NTZ. Save this as a custom migration skill.
Genie Code 會建立並註冊該技能,並在未來工作區的轉換中套用。
要查看主動技能:
Tip
Show me my migration skills
若要移除技能:
Tip
Delete the migration skill for [description]
工作區技能會儲存在工作區層級,並共享給所有使用者。
測試技巧
作為其代理迴圈的一部分,轉換器分析每個來源腳本,驗證轉換後的輸出在語法上有效且語意上與來源相當,並在寫入結果前反覆修正失敗的段落。 以下建議幫助你檢視並建立對成果的信心:
- 批次轉換:在一次工作中轉換兩到五個檔案的小批次,以驗證多檔案轉換是否端對端運作。
- 語法驗證:轉換後,將輸出輸出放入 Databricks SQL 編輯器或筆記本中,確認其無錯誤。
-
邊緣情況:加入帶有方言專屬結構的腳本,例如 T-SQL 視窗函數、Snowflake
QUALIFY或 RedshiftLISTAGG,以觀察轉換器如何處理非平凡的模式。 - 語意正確性:將原始及轉換後的查詢與等效測試資料進行比較。 確認輸出在語意上正確,而不只是語法正確。