使用批次 SQL 翻譯器遷移程式碼

本文說明如何使用 BigQuery 的批次 SQL 翻譯器,將以其他 SQL 方言編寫的指令碼翻譯成 GoogleSQL 查詢。本文適用於熟悉Google Cloud 控制台的使用者。

如需這項 SQL 翻譯工具支援的 SQL 方言清單,請參閱「支援的 SQL 方言」。

如需支援的處理位置清單,請參閱「位置」。

事前準備

提交翻譯工作前,請先完成下列步驟。

啟用 SQL 翻譯

啟用必要 API,並取得使用 BigQuery SQL 翻譯器所需的權限。詳情請參閱「啟用 SQL 翻譯」。

所需權限

如要取得使用互動式翻譯器、Translation API 或批次 SQL 翻譯器建立翻譯工作所需的權限,請要求管理員授予您 parent 資源的下列 IAM 角色:

  • 查看及監控遷移工作: MigrationWorkflow 檢視者 (roles/bigquerymigration.viewer)
  • 提交遷移工作: MigrationWorkflow 編輯者 (roles/bigquerymigration.editor)
  • 存取輸入和檔案的 Cloud Storage bucket: 來源和目的地 Cloud Storage bucket 的「Storage Object Admin」(儲存空間物件管理員) (roles/storage.objectAdmin)。

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這些預先定義的角色具備使用互動式翻譯器、Translation API 或批次 SQL 翻譯器建立翻譯工作所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要使用互動式翻譯器、Translation API 或批次 SQL 翻譯器建立翻譯工作,必須具備下列權限:

  • bigquerymigration.workflows.create
  • bigquerymigration.workflows.get
  • bigquerymigration.workflows.list
  • bigquerymigration.workflows.delete
  • bigquerymigration.subtasks.get
  • bigquerymigration.subtasks.list
  • storage.objects.get
  • storage.objects.list
  • storage.objects.create

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

收集來源檔案

來源檔案必須是文字檔,內含來源方言的有效 SQL。 來源檔案也可能包含註解。請盡量確保 SQL 有效,並使用可用的方法。

建立中繼資料檔案

為協助服務產生更準確的翻譯結果,建議您提供中繼資料檔案。但這不是強制要求。

您可以使用 dwh-migration-dumper 指令列擷取工具產生中繼資料資訊,也可以提供自己的中繼資料檔案。準備好中繼資料檔案後,即可將這些檔案與來源檔案一併放入翻譯來源資料夾。翻譯人員會自動偵測並運用這些檔案翻譯來源檔案,您不需要啟用任何額外設定。

如要使用 dwh-migration-dumper 工具產生中繼資料資訊,請參閱「產生翻譯中繼資料」。

如要提供自己的中繼資料,請將來源系統中 SQL 物件的資料定義語言 (DDL) 陳述式收集到個別文字檔中。

決定如何提交翻譯工作

提交批次翻譯作業有三種方式:

  • 批次翻譯用戶端:在設定檔中變更設定來設定工作,並使用指令列提交工作。這種做法不需要手動將來源檔案上傳至 Cloud Storage。在翻譯工作處理期間,用戶端仍會使用 Cloud Storage 儲存檔案。

    舊版批次翻譯用戶端是開放原始碼的 Python 用戶端,可讓您翻譯本機電腦上的來源檔案,並將翻譯後的檔案輸出至本機目錄。您可以在設定檔中變更幾項設定,為基本用途設定用戶端。您也可以選擇設定用戶端,處理更複雜的工作,例如巨集取代,以及翻譯輸入和輸出內容的前後處理。詳情請參閱批次翻譯用戶端readme。

  • Google Cloud 控制台:使用使用者介面設定及提交工作。這種做法需要將來源檔案上傳至 Cloud Storage。

建立設定 YAML 檔案

您可以視需要建立及使用設定設定 YAML 檔案,自訂批次翻譯。這些檔案可用於以各種方式轉換翻譯輸出內容。舉例來說,您可以建立設定 YAML 檔案,在翻譯期間變更 SQL 物件的大小寫。

如要使用 Google Cloud 控制台或 BigQuery Migration API 執行批次翻譯工作,可以將設定 YAML 檔案上傳至含有來源檔案的 Cloud Storage bucket。

如要使用批次翻譯用戶端,請將設定 YAML 檔案放在本機翻譯輸入資料夾中。

將輸入檔案上傳至 Cloud Storage

如要使用 Google Cloud 控制台或 BigQuery Migration API 執行翻譯工作,請將含有要翻譯的查詢和指令碼的來源檔案上傳至 Cloud Storage。您也可以將任何中繼資料檔案或設定 YAML 檔案上傳至同一個 Cloud Storage bucket 和目錄,其中包含來源檔案。如要進一步瞭解如何建立 bucket 並將檔案上傳至 Cloud Storage,請參閱「建立 bucket」和「從檔案系統上傳物件」。

使用輔助 UDF 處理不支援的 SQL 函式

將來源方言的 SQL 轉譯為 BigQuery 時,部分函式可能沒有直接對應的函式。為解決這個問題,BigQuery 遷移服務 (和更廣泛的 BigQuery 社群) 提供輔助使用者定義函式 (UDF),可複製這些不支援的來源方言函式行為。

這些 UDF 通常位於 bqutil 公開資料集中,因此翻譯後的查詢一開始可以採用 bqutil.<dataset>.<function>() 格式參照這些 UDF。例如:bqutil.fn.cw_count()。

正式環境的重要注意事項:

雖然 bqutil 可讓您輕鬆存取這些輔助 UDF,進行初步翻譯和測試,但基於下列原因,不建議直接依賴 bqutil 處理正式版工作負載:

  1. 版本管控:bqutil 專案會代管這些 UDF 的最新版本,因此定義可能會隨時間變更。如果 UDF 的邏輯更新,直接依賴 bqutil 可能會導致生產查詢發生非預期行為或重大變更。
  2. 依附元件隔離:將 UDF 部署至自己的專案,可避免外部變更影響正式環境。
  3. 自訂:您可能需要修改或最佳化這些 UDF,進一步滿足特定商業邏輯或效能需求。只有在這些資源位於您的專案中時,才能執行這項操作。
  4. 安全性和管理:貴機構的安全政策可能會限制直接存取公開資料集 (例如 bqutil),以處理正式環境資料。將 UDF 複製到受控環境,符合這類政策。

將輔助 UDF 部署至專案:

如要穩定可靠地在正式環境中使用,請將這些輔助 UDF 部署到自己的專案和資料集。方便您全面掌控這些應用程式的版本、自訂項目和存取權。 如需部署這些 UDF 的詳細操作說明,請參閱 GitHub 上的 UDF 部署指南。本指南提供必要的指令碼和步驟,協助您將 UDF 複製到環境中。

提交翻譯工作

請按照下列步驟開始翻譯工作、查看進度及結果。

控制台

這些步驟假設您已將來源檔案上傳至 Cloud Storage bucket。

  1. 前往 Google Cloud 控制台的「SQL Translation」頁面。

    前往 SQL 翻譯

  2. 在「SQL 翻譯」面板中,按一下「開始翻譯」。

  3. 在「Translation configuration」(翻譯設定) 中輸入下列資訊:

    1. 在「顯示名稱」中,輸入翻譯工作的名稱。名稱可包含英文字母、數字或底線。
    2. 在「處理位置」中,選取要執行翻譯工作的地點。舉例來說,如果您位於歐洲,且不希望資料跨越任何位置限制範圍,請選取「eu」區域。如果選擇與來源檔案 bucket 相同的位置,翻譯工作就能發揮最佳效果。
    3. 在「來源方言」中,選取要翻譯的 SQL 方言。
    4. 在「目標方言」部分,選取「GoogleSQL」。
  4. 點選「下一步」。

  5. 在「檔案位置詳細資料」部分,指定用於翻譯輸入和輸出的 Cloud Storage 路徑。您可以輸入 bucket_name/folder_name/ 格式的路徑,或使用「瀏覽」選項前往資料夾。

    1. 在「輸出目錄位置」部分,指定翻譯檔案的目標 Cloud Storage 資料夾路徑。這是所有翻譯輸出內容的根目錄。
    2. 選擇一或多個輸入目錄位置,其中包含要翻譯的 SQL 檔案路徑。
    3. 如有需要,每個輸入目錄都可以選擇在根輸出目錄下方提供輸出子目錄名稱。
  6. 點選「下一步」。

  7. 選取要自訂中繼資料和任何其他翻譯輸出內容的選用設定。

  8. 您可以建立設定 YAML 檔案,並將這些檔案放在輸入 Cloud Storage 值區中,進一步自訂翻譯行為。這些檔案可用於設定重新命名物件、啟用最佳化功能、 使用 Gemini 強化翻譯等。 如要進一步瞭解設定 YAML 檔案,請參閱「建立設定 YAML 檔案」。

  9. 按一下「建立」即可開始翻譯工作。

建立翻譯工作後,您可以在翻譯工作清單中查看狀態。

批次翻譯用戶端

  1. 安裝批次翻譯用戶端和 Google Cloud CLI。

  2. 產生 gcloud CLI 憑證檔案。

  3. 在批次翻譯用戶端安裝目錄中,使用您選擇的文字編輯器開啟 config.yaml 檔案,並修改下列設定:

    • project_number:輸入要用於批次翻譯工作的專案編號。您可以在專案的Google Cloud 控制台歡迎頁面,找到「專案資訊」窗格。
    • gcs_bucket:輸入批次翻譯用戶端在處理翻譯作業時,用來儲存檔案的 Cloud Storage bucket 名稱。
    • input_directory:輸入含有來源檔案和任何中繼資料檔案的目錄絕對或相對路徑。
    • output_directory:輸入翻譯檔案的目標目錄絕對或相對路徑。
  4. 儲存變更並關閉 config.yaml 檔案。

  5. 將來源和中繼資料檔案放在輸入目錄中。

  6. 使用下列指令執行批次翻譯用戶端:

    bin/dwh-migration-client
    
  7. 建立翻譯工作。

    • 以下範例顯示建立翻譯工作的指令。如果工作流程執行成功,指令會執行工作流程並顯示輸出內容。

      gcloud bq migration-workflows create --location=us --config-file=CONFIG_FILE_NAME.json
    • 下列範例顯示使用 --async 旗標建立及執行工作流程的指令。這項指令會建立並執行工作流程,並立即傳回工作流程的連結。

      gcloud bq migration-workflows create --location=LOCATION  --config-file=CONFIG_FILE_NAME.json --async
    • 以下範例顯示列出翻譯工作的指令:

      gcloud bq migration-workflows list --location=LOCATION

    更改下列內容:

    • LOCATION:執行這項翻譯工作的 Google Cloud 專案位置。
    • CONFIG_FILE_NAME:config.yaml 檔案的名稱。翻譯工作建立完成後,您可以在 Google Cloud 控制台的翻譯工作清單中查看狀態。
  8. 選用。翻譯工作完成後,請刪除工作在您指定的 Cloud Storage bucket 中建立的檔案,以免產生儲存空間費用。

BigQuery CLI

如要使用 bq 指令列工具執行批次 SQL 轉譯器,請按照下列步驟操作:

  1. 以 YAML 或 JSON 格式建立轉譯設定檔。您必須在這個檔案中定義來源檔案的路徑、輸出目的地,以及翻譯的來源和目標方言。

    以下範例顯示從 Teradata 轉換至 BigQuery 的轉譯設定 YAML 檔案:

    tasks:
    translation_task:
      type: Teradata2BigQuery_Translation
      translationDetails:
        sourceTargetMapping:
        - sourceSpec:
            baseUri: gs://bq-translations/input
          targetSpec:
            relativePath: output
        targetBaseUri: gs://bq-translations
        targetTypes:
        - sql
        sourceEnvironment:
          defaultDatabase: default_db
          schemaSearchPath:
          - foo

    以下範例顯示從 Teradata 翻譯為 BigQuery 的翻譯設定 JSON 檔案:

    {
    "tasks": {
      "translation_task": {
        "type": "Teradata2BigQuery_Translation",
        "translationDetails": {
          "sourceTargetMapping": [
            {
              "sourceSpec": {
                "literal": {
                  "literalString": "sel 1",
                  "relativePath": "my_input_1"
                },
                "encoding": "UTF-8"
              }
            },
            {
              "sourceSpec": {
                "literal": {
                  "literalString": "sel 2",
                  "relativePath": "my_input_2"
                },
                "encoding": "UTF-8"
              }
            }
          ],
          "targetReturnLiterals": [
            "sql/my_input_1",
            "sql/my_input_2"
          ]
        }
      }
    }
    }
  2. 建立翻譯設定後,請執行下列指令來執行翻譯工作。

    bq mk --migration_workflow --location=LOCATION --config_file=CONFIG_FILE_NAME.json

    更改下列內容:

    • LOCATION:執行這項翻譯工作的 Google Cloud 專案位置。
    • CONFIG_FILE_NAME:config.yaml 檔案的名稱。
  • 如要查看特定翻譯工作的詳細資料,請執行下列指令:

    bq show --migration_workflow projects/PROJECT_ID/ locations/us/workflows/WORKFLOW_ID

    更改下列內容:

    • PROJECT_ID:執行這項翻譯工作的 Google Cloud 專案 ID。
    • WORKFLOW_ID:翻譯工作的 ID。
  • 如要查看特定翻譯工作的結果,請執行下列指令:

    gcloud bq migration-workflows describe projects/PROJECT_ID    /locations/us/workflows/WORKFLOW_ID
  • 如要從清單中移除翻譯工作,請執行下列指令:

    bq rm --migration_workflow projects/PROJECT_ID/locations/us/workflows/WORKFLOW_ID
  • 如要列出所有翻譯工作,請執行下列指令:

    bq ls --migration_workflow --location=LOCATION

探索翻譯輸出內容

執行翻譯工作後,您可以在 Google Cloud 控制台查看工作相關資訊。如果您使用 Google Cloud 控制台執行工作,可以在您指定的目的地 Cloud Storage bucket 中查看工作結果。如果您使用批次翻譯用戶端執行作業,可以在指定的輸出目錄中查看作業結果。批次 SQL 翻譯工具會將下列檔案輸出至指定目的地:

  • 翻譯後的檔案。
  • CSV 格式的翻譯摘要報告。
  • 以 JSON 格式對應所用輸出內容的名稱。
  • AI 建議檔案。

Google Cloud 控制台輸出內容

如要查看翻譯工作詳細資料,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「SQL Translation」頁面。

    前往 SQL 翻譯

  2. 在翻譯工作清單中,找出要查看翻譯詳細資料的工作。然後按一下翻譯工作名稱。 您可以查看桑基圖,瞭解工作的整體品質、程式碼的輸入行數 (不含空白行和註解),以及翻譯過程中發生的問題清單。建議您優先修正左側的錯誤,早期階段的問題可能會導致後續階段發生其他問題。

  3. 將指標懸停在錯誤或警告列上,然後查看建議,判斷偵錯翻譯工作的後續步驟。

  4. 選取「記錄摘要」分頁標籤,即可查看翻譯問題摘要,包括問題類別、建議動作,以及每個問題的發生頻率。您可以點選桑基圖的長條,篩選問題。您也可以選取問題類別,查看與該類別相關的記錄訊息。

  5. 選取「記錄訊息」分頁,即可查看各項翻譯問題的詳細資訊,包括問題類別、具體問題訊息,以及發生問題的檔案連結。您可以點選桑基圖的長條,篩選問題。您可以在「Log Message」分頁中選取問題,開啟「Code」分頁,查看輸入和輸出檔案 (如有)。

  6. 按一下「工作詳細資料」分頁標籤,查看翻譯工作設定詳細資料。

摘要報告

摘要報告為 CSV 檔案,內含翻譯作業期間遇到的所有警告和錯誤訊息表格。

如要在 Google Cloud 控制台中查看摘要檔案,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「SQL Translation」頁面。

    前往 SQL 翻譯

  2. 在翻譯工作清單中找出感興趣的工作,然後按一下工作名稱,或依序點選「更多選項」>「顯示詳細資料」。

  3. 在「工作詳細資料」分頁的「翻譯報告」部分,按一下「translation_report.csv」。

  4. 在「物件詳細資料」頁面中,按一下「已通過驗證的網址」列中的值,即可在瀏覽器中查看檔案。

下表說明摘要檔案的欄位:

資料欄 說明
時間戳記 問題發生時的時間戳記。
FilePath 與問題相關聯的來源檔案路徑。
FileName 與問題相關聯的來源檔案名稱。
ScriptLine 發生問題的行號。
ScriptColumn 發生問題的資料欄編號。
TranspilerComponent 發生警告或錯誤的翻譯引擎內部元件。這個欄位可能為空。
環境 與警告或錯誤相關的翻譯方言環境。這個欄位可能為空。
ObjectName 來源檔案中與警告或錯誤相關聯的 SQL 物件。這個欄位可能為空。
嚴重性 問題的嚴重程度,可能是警告或錯誤。
類別 翻譯問題類別。
SourceType 這個問題的來源。這個資料欄的值可以是 SQL (表示輸入 SQL 檔案有問題),也可以是 METADATA (表示中繼資料套件有問題)。
訊息 翻譯問題警告或錯誤訊息。
ScriptContext 與問題相關聯的來源檔案中的 SQL 程式碼片段。
動作 建議您採取哪些行動來解決問題。

「程式碼」分頁

您可以在「程式碼」分頁中,查看特定翻譯工作的輸入和輸出檔案相關資訊。在「程式碼」分頁中,您可以檢查翻譯工作使用的檔案、並排比較輸入檔案和翻譯內容,找出任何不準確之處,以及查看工作中特定檔案的記錄摘要和訊息。

如要存取程式碼分頁,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「SQL Translation」頁面。

    前往 SQL 翻譯

  2. 在翻譯工作清單中找出感興趣的工作,然後按一下工作名稱,或依序點選「更多選項」>「顯示詳細資料」。

  3. 選取「程式碼」分頁標籤。「程式碼」分頁包含下列面板:

    在 SQL 翻譯頁面中查看「程式碼」分頁。

    • 檔案總管:包含用於翻譯的所有 SQL 檔案。按一下檔案,即可查看翻譯輸入和輸出內容,以及翻譯時發生的任何問題。
    • 以 Gemini 補強的輸入內容:翻譯引擎翻譯的輸入 SQL 查詢。如果您已在 Gemini 設定中指定來源 SQL 的 Gemini 自訂規則,翻譯工具會先轉換原始輸入內容,然後翻譯 Gemini 強化輸入內容。如要查看原始輸入內容,請按一下「查看原始輸入內容」。
    • 翻譯輸出內容:翻譯結果。如果您已在 Gemini 設定中指定目標 SQL 的 Gemini 自訂規則,系統會將轉換套用至翻譯結果,做為 Gemini 強化輸出內容。如果有經過 Gemini 強化的輸出內容,可以點選「Gemini 建議」按鈕查看。
  4. 選用:如要在 BigQuery 互動式 SQL 翻譯器中查看輸入檔案及其輸出檔案,請按一下「編輯」。 您可以編輯檔案,然後將輸出檔案存回 Cloud Storage。

「設定」分頁

您可以在「設定」分頁中新增、重新命名、查看或編輯設定 YAML 檔案。「結構定義探索器」會顯示支援的設定類型說明文件,協助您編寫設定 YAML 檔案。編輯設定 YAML 檔案後,您可以重新執行工作,使用新的設定。

如要存取設定分頁,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「SQL Translation」頁面。

    前往 SQL 翻譯

  2. 在翻譯工作清單中找出感興趣的工作,然後按一下工作名稱,或依序點選「更多選項」>「顯示詳細資料」。

  3. 在「翻譯詳細資料」視窗中,按一下「設定」分頁標籤。

在 SQL 翻譯頁面中查看「設定」分頁。

如要新增設定檔,請按照下列步驟操作:

  1. 依序點按 more_vert「更多選項」>「建立設定 YAML 檔案」。
  2. 畫面上會顯示面板,您可以在其中選擇新設定 YAML 檔案的類型、位置和名稱。
  3. 點選「建立」。

如要編輯現有的設定檔,請按照下列步驟操作:

  1. 按一下設定 YAML 檔案。
  2. 編輯檔案,然後按一下「儲存」。
  3. 按一下「重新執行」,使用編輯過的設定 YAML 檔案執行新的翻譯工作。

如要重新命名現有的設定檔,請依序點按「more_vert」more_vert「更多選項」>「重新命名」。

使用的輸出名稱對應檔案

這個 JSON 檔案包含翻譯作業使用的輸出名稱對應規則。由於名稱對應規則發生衝突,或翻譯期間識別出的 SQL 物件缺少名稱對應規則,這個檔案中的規則可能與您為翻譯工作指定的輸出名稱對應規則不同。請檢查這個檔案,判斷是否需要修正名稱對應規則。如有,請建立新的輸出名稱對應規則,解決您發現的任何問題,然後執行新的翻譯工作。

翻譯後的檔案

系統會在目的地路徑中,為每個來源檔案產生對應的輸出檔案。輸出檔案會包含翻譯後的查詢。

使用互動式 SQL 翻譯器偵錯批次翻譯的 SQL 查詢

您可以使用 BigQuery 互動式 SQL 翻譯器,透過與來源資料庫相同的中繼資料或物件對應資訊,檢查或偵錯 SQL 查詢。完成批次翻譯作業後,BigQuery 會產生翻譯設定 ID,其中包含作業的中繼資料、物件對應或結構定義搜尋路徑等資訊 (視查詢而定)。您可以使用互動式 SQL 翻譯器搭配批次翻譯設定 ID,以指定設定執行 SQL 查詢。

如要使用批次翻譯設定 ID 啟動互動式 SQL 翻譯,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「SQL Translation」頁面。

    前往 SQL 翻譯

  2. 在翻譯工作清單中,找出感興趣的工作,然後依序點按「更多選項」>「開啟互動式翻譯」。

    BigQuery 互動式 SQL 翻譯器現在會開啟,並顯示對應的批次翻譯設定 ID。如要查看互動式翻譯的翻譯設定 ID,請依序點選互動式 SQL 翻譯器中的「工具」>「查詢翻譯」>「翻譯設定」。

如要在互動式 SQL 翻譯器中偵錯批次翻譯檔案,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「SQL Translation」頁面。

    前往 SQL 翻譯

  2. 在翻譯工作清單中找出感興趣的工作,然後按一下工作名稱,或依序點選「更多選項」> 顯示詳細資料。

  3. 在「翻譯詳細資料」視窗中,按一下「程式碼」分頁標籤。

  4. 在檔案總管中,按一下檔案名稱即可開啟檔案。

  5. 按一下輸出檔案名稱旁的「編輯」,在互動式 SQL 轉譯器 (預覽) 中開啟檔案。

    您會看到輸入和輸出檔案已填入互動式 SQL 翻譯器,該翻譯器現在使用對應的批次翻譯設定 ID。

  6. 如要將編輯後的輸出檔案儲存回 Cloud Storage,請在互動式 SQL 轉譯器中依序點選「Save」> Save To GCS。

限制

翻譯器無法翻譯 SQL 以外語言的使用者定義函式 (UDF),因為無法剖析這些函式,判斷輸入和輸出資料類型。這會導致參照這些 UDF 的 SQL 陳述式翻譯不準確。如要確保在轉譯期間正確參照非 SQL UDF,請使用有效的 SQL 建立具有相同簽章的預留位置 UDF。

舉例來說,假設您有一個以 C 語言編寫的 UDF,用於計算兩個整數的總和。為確保參照這個 UDF 的 SQL 陳述式能正確轉換,請建立與 C UDF 共用相同簽章的預留位置 SQL UDF,如下列範例所示:

CREATE FUNCTION Test.MySum (a INT, b INT)
  RETURNS INT
  LANGUAGE SQL
  RETURN a + b;

將這個預留位置 UDF 儲存到文字檔中,然後將該檔案納入翻譯作業的來源檔案。這有助於翻譯人員瞭解 UDF 定義,並識別預期的輸入和輸出資料類型。

配額與限制

  • 適用 BigQuery Migration API 配額。
  • 每個專案最多可有 10 項進行中的翻譯工作。
  • 雖然來源和中繼資料檔案總數沒有硬性限制,但建議將檔案數量控制在 1000 個以下,以獲得更佳的效能。

排解翻譯錯誤

以下各節說明使用批次 SQL 轉譯器時常見的錯誤。

RelationNotFound 或 AttributeNotFound 翻譯問題

使用批次 SQL 翻譯器翻譯查詢後,您可能會遇到翻譯失敗的情況,並收到 RelationNotFound 或 AttributeNotFound 錯誤。

如要找出失敗的翻譯,請前往 Google Cloud 控制台的 BigQuery「翻譯詳細資料」頁面,然後開啟「記錄訊息」分頁。

翻譯服務最適合搭配中繼資料 DDL 使用。如果找不到 SQL 物件定義,翻譯引擎就會引發 RelationNotFound 或 AttributeNotFound 問題。建議使用中繼資料擷取工具產生中繼資料套件,確保所有物件定義都存在。建議您先新增中繼資料,解決大部分的翻譯錯誤,因為這個步驟通常會修正許多其他錯誤,這些錯誤是因缺少中繼資料而間接造成。

詳情請參閱「產生翻譯和評估用的中繼資料」。

使用 Gemini 修正翻譯問題

如要修正 RelationNotFound 或 AttributeNotFound 錯誤導致的翻譯工作失敗問題,也可以使用 Gemini 解決這些問題:

  1. 前往「翻譯詳細資料」頁面,然後開啟「記錄訊息」分頁。
  2. 在「類別」欄中,按一下含有 RelationNotFound 或 AttributeNotFound 訊息的查詢。
  3. 如要前往程式碼分頁中含有錯誤的檔案和行,請按一下

    錯誤訊息。

  4. 在「動作」欄中,按一下「建議修正」。

  5. 選取下列其中一個選項:「套用」或「套用並重新執行」:

    • 如要將產生的結構定義檔案從輸出目錄複製到輸入目錄,請按一下「套用」。
    • 如要將產生的結構定義檔案從輸出目錄複製到輸入目錄,並開啟重新執行視窗,請按一下「套用並重新執行」。

定價

使用批次 SQL 翻譯器不會產生費用。不過,儲存輸入和輸出檔案的儲存空間仍會產生正常費用。詳情請參閱「儲存空間定價」。

後續步驟

進一步瞭解資料倉儲遷移作業的下列步驟: