העברת קוד באמצעות כלי התרגום של SQL באצווה

במאמר הזה מוסבר איך להשתמש בכלי לתרגום SQL באצווה ב-BigQuery כדי לתרגם סקריפטים שנכתבו בניבים אחרים של SQL לשאילתות GoogleSQL. המסמך הזה מיועד למשתמשים שמכירים את מסוף Cloud de Confiance .

רשימת הדיאלקטים של SQL שנתמכים בכלי הזה לתרגום SQL מופיעה כאן.

רשימת המיקומים הנתמכים לעיבוד מופיעה במאמר מיקומים.

לפני שמתחילים

לפני ששולחים עבודת תרגום, צריך לבצע את השלבים הבאים.

הפעלת תרגום של SQL

מפעילים את ה-API הנדרש ומקבלים את ההרשאות שדרושות לשימוש בכלי לתרגום SQL ב-BigQuery. מידע נוסף זמין במאמר בנושא הפעלת תרגומים של SQL.

ההרשאות הנדרשות

כדי לקבל את ההרשאות שדרושות ליצירת משימות תרגום באמצעות כלי התרגום האינטראקטיבי, Translation API או כלי התרגום של SQL באצווה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים במשאב parent:

  • צפייה במשימות העברה ומעקב אחריהן: צפייה ב-MigrationWorkflow (roles/bigquerymigration.viewer)
  • שליחת משימות העברה: MigrationWorkflow Editor (roles/bigquerymigration.editor)
  • גישה לקטגוריות של Cloud Storage עבור קלט וקבצים: Storage Object Admin ‏ (roles/storage.objectAdmin) – בקטגוריית המקור ובקטגוריית היעד של Cloud Storage.

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקידים המוגדרים מראש האלה מכילים את ההרשאות שנדרשות ליצירת משימות תרגום באמצעות כלי התרגום האינטראקטיבי, Translator API או כלי התרגום של SQL באצווה. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי ליצור משימות תרגום באמצעות כלי התרגום האינטראקטיבי, Translator 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.

כדי לספק מטא נתונים משלכם, צריך לאסוף את הצהרות שפת הגדרת הנתונים (DDL) של אובייקטי ה-SQL במערכת המקור בקובצי טקסט נפרדים.

החלטה לגבי אופן שליחת עבודת התרגום

יש שלוש אפשרויות לשליחת משימת תרגום באצווה:

  • לקוח לתרגום באצווה: מגדירים משימה על ידי שינוי ההגדרות בקובץ תצורה, ושולחים את המשימה באמצעות שורת הפקודה. בגישה הזו לא צריך להעלות ידנית קבצים של מקורות ל-Cloud Storage. הלקוח עדיין משתמש ב-Cloud Storage כדי לאחסן קבצים במהלך עיבוד משימת התרגום.

    הלקוח של תרגום באצווה מדור קודם הוא לקוח Python בקוד פתוח שמאפשר לתרגם קובצי מקור שנמצאים במחשב המקומי, ולשמור את קובצי התרגום בספרייה מקומית. כדי להגדיר את הלקוח לשימוש בסיסי, משנים כמה הגדרות בקובץ ההגדרות שלו. אם רוצים, אפשר גם להגדיר את הלקוח כך שיטפל במשימות מורכבות יותר, כמו החלפת מאקרו ועיבוד מקדים ועיבוד סופי של קלט ופלט של תרגום. מידע נוסף מופיע בקובץ ה-readme של לקוח התרגום באצווה.

  • Cloud de Confiance מסוף: הגדרה ושליחה של משימה באמצעות ממשק משתמש. בגישה הזו צריך להעלות קובצי מקור ל-Cloud Storage.

יצירת קובצי YAML של תצורה

אפשר גם ליצור ולהשתמש בקבצי YAML של הגדרות כדי להתאים אישית את התרגומים של קבוצות קבצים. אפשר להשתמש בקבצים האלה כדי לשנות את פלט התרגום בדרכים שונות. לדוגמה, אתם יכולים ליצור קובץ תצורה ב-YAML כדי לשנות את האותיות של אובייקט SQL במהלך התרגום.

אם רוצים להשתמש במסוף Cloud de Confiance או ב-BigQuery Migration API כדי להריץ תרגום באצווה, אפשר להעלות את קובץ ה-YAML של ההגדרות לקטגוריה של Cloud Storage שמכילה את קובצי המקור.

אם רוצים להשתמש בלקוח של תרגום באצווה, אפשר למקם את קובץ ה-YAML של ההגדרה בתיקיית הקלט המקומית של התרגום.

העלאת קובצי קלט ל-Cloud Storage

אם רוצים להשתמש במסוף Cloud de Confiance או ב-BigQuery Migration API כדי לבצע משימת תרגום, צריך להעלות ל-Cloud Storage את קובצי המקור שמכילים את השאילתות והסקריפטים שרוצים לתרגם. אפשר גם להעלות קבצים של מטא-נתונים או קבצי YAML של הגדרות לאותה קטגוריה של Cloud Storage ולאותה ספרייה שמכילות את קובצי המקור. מידע נוסף על יצירת קטגוריות והעלאת קבצים ל-Cloud Storage זמין במאמרים בנושא יצירת קטגוריות והעלאת אובייקטים ממערכת קבצים.

טיפול בפונקציות SQL שלא נתמכות באמצעות פונקציות UDF מסייעות

כשמתרגמים SQL מדיאלקט מקור ל-BigQuery, יכול להיות שלחלק מהפונקציות אין מקבילה ישירה. כדי לפתור את הבעיה הזו, שירות ההעברה ל-BigQuery (וגם קהילת BigQuery הרחבה) מספק פונקציות עזר מוגדרות על ידי המשתמש (UDF) שמשכפלות את ההתנהגות של הפונקציות האלה בניב המקור שלא נתמך.

פונקציות UDF כאלה נמצאות בדרך כלל במערך הנתונים הציבורי bqutil, כך ששאילתות מתורגמות יכולות להפנות אליהן בהתחלה באמצעות הפורמט bqutil.<dataset>.<function>(). לדוגמה, bqutil.fn.cw_count().

שיקולים חשובים לגבי סביבות ייצור:

bqutil אמנם מספק גישה נוחה לפונקציות העזר האלה שמוגדרות על ידי המשתמש לצורך תרגום ובדיקה ראשוניים, אבל לא מומלץ להסתמך ישירות על bqutil לעומסי עבודה של ייצור מכמה סיבות:

  1. ניהול גרסאות: פרויקט bqutil מארח את הגרסה העדכנית של הפונקציות האלה, מה שאומר שההגדרות שלהן יכולות להשתנות לאורך זמן. הסתמכות ישירה על bqutil עלולה להוביל להתנהגות בלתי צפויה או לשינויים שוברים בשאילתות הייצור אם הלוגיקה של UDF מתעדכנת.
  2. בידוד תלות: פריסת פונקציות UDF בפרויקט שלכם מבודדת את סביבת הייצור משינויים חיצוניים.
  3. התאמה אישית: יכול להיות שתצטרכו לשנות את הפונקציות המוגדרות על ידי המשתמש או לבצע בהן אופטימיזציה כדי שיתאימו יותר ללוגיקה העסקית הספציפית או לדרישות הביצועים שלכם. אפשר לעשות את זה רק אם הם נמצאים בפרויקט שלכם.
  4. אבטחה וניהול: יכול להיות שמדיניות האבטחה של הארגון שלכם מגבילה גישה ישירה למערכי נתונים ציבוריים כמו bqutil לעיבוד נתוני ייצור. העתקת פונקציות UDF לסביבה המבוקרת שלכם תואמת למדיניות כזו.

פריסת פונקציות UDF מסייעות בפרויקט:

כדי להשתמש בפונקציות העזר האלה של UDF בסביבת ייצור בצורה מהימנה ויציבה, צריך לפרוס אותן בפרויקט ובמערך הנתונים שלכם. כך יש לכם שליטה מלאה בגרסה, בהתאמה האישית ובגישה שלהם. הוראות מפורטות להטמעה של פונקציות UDF זמינות במדריך להטמעה של פונקציות UDF ב-GitHub. במדריך הזה מפורטים הסקריפטים והשלבים שנדרשים כדי להעתיק את הפונקציות המוגדרות על ידי המשתמש לסביבה שלכם.

שליחת עבודת תרגום

כדי להתחיל עבודת תרגום, לראות את ההתקדמות ולצפות בתוצאות, פועלים לפי השלבים הבאים.

המסוף

אנחנו יוצאים מנקודת הנחה שכבר העליתם קובצי מקור לקטגוריה של Cloud Storage.

  1. נכנסים לדף SQL Translation במסוף Cloud de Confiance .

    מעבר אל SQL Translation

  2. בחלונית SQL translation (תרגום SQL), לוחצים על Start translation (התחלת התרגום).

  3. בקטע הגדרת תרגום, מזינים את הפרטים הבאים:

    1. בשדה שם מוצג, מקלידים שם לעבודת התרגום. השם יכול להכיל אותיות, מספרים או קווים תחתונים.
    2. בקטע Processing location (מיקום העיבוד), בוחרים את המיקום שבו רוצים להריץ את משימת התרגום. לדוגמה, אם אתם נמצאים באירופה ולא רוצים שהנתונים שלכם יעברו את הגבולות של מיקום כלשהו, אתם יכולים לבחור באזור eu. כדי לקבל את התוצאות הכי טובות, מומלץ לבחור את אותו מיקום של דלי קובץ המקור.
    3. בשדה ניב המקור, בוחרים את ניב ה-SQL שרוצים לתרגם.
    4. בקטע Target dialect, בוחרים באפשרות 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. יצירת קובץ פרטי כניסה ל-CLI של gcloud.

  3. בספריית ההתקנה של לקוח התרגום באצווה, משתמשים בעורך הטקסט לפי בחירתכם כדי לפתוח את הקובץ config.yaml ולשנות את ההגדרות הבאות:

    • ‫project_number: מקלידים את מספר הפרויקט שבו רוצים להשתמש לעבודת התרגום באצווה. אפשר לראות את זה בחלונית Project info בCloud de Confiance דף הפתיחה של המסוף של הפרויקט.
    • ‫gcs_bucket: מקלידים את השם של קטגוריית Cloud Storage שבה לקוח התרגום באצווה משתמש כדי לאחסן קבצים במהלך עיבוד משימת התרגום.
    • ‫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: המיקום של Cloud de Confiance by S3NS הפרויקט שבו מופעלת משימת התרגום הזו.
    • ‫CONFIG_FILE_NAME: השם של קובץ config.yaml. אחרי שיוצרים את משימת התרגום, אפשר לראות את הסטטוס שלה ברשימת משימות התרגום במסוף Cloud de Confiance .
  8. זה שינוי אופציונלי. אחרי שמשימת התרגום מסתיימת, מוחקים את הקבצים שהמשימה יצרה בקטגוריה של Cloud Storage שציינתם, כדי להימנע מעלות האחסון.

BigQuery CLI

כדי להריץ את הכלי לתרגום SQL של קבוצות באמצעות כלי שורת הפקודה של BigQuery, מבצעים את השלבים הבאים:

  1. יוצרים קובץ הגדרות תרגום בפורמט YAML או JSON. בקובץ הזה צריך להגדיר את הנתיב לקובץ המקור, את יעד הפלט ואת הניבים של שפת המקור ושפת היעד של התרגום.

    הדוגמה הבאה מציגה קובץ YAML של הגדרות תרגום מ-Teradata ל-BigQuery:

    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

    בדוגמה הבאה מוצג קובץ JSON של הגדרות תרגום מ-Teradata ל-BigQuery:

    {
    "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: המיקום של Cloud de Confiance by S3NS הפרויקט שבו מופעלת משימת התרגום הזו.
    • ‫CONFIG_FILE_NAME: השם של קובץ config.yaml.
  • כדי לראות פרטים על משימת תרגום ספציפית, מריצים את הפקודה הבאה:

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

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: המזהה של Cloud de Confiance by S3NS הפרויקט שבו מופעלת משימת התרגום הזו.
    • ‫WORKFLOW_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

בדיקת פלט התרגום

אחרי שמריצים את עבודת התרגום, אפשר לראות מידע על העבודה במסוף Cloud de Confiance . אם השתמשתם במסוף Cloud de Confiance כדי להריץ את העבודה, תוכלו לראות את תוצאות העבודה בקטגוריה של Cloud Storage שציינתם כיעד. אם השתמשתם בלקוח של תרגום באצווה כדי להריץ את העבודה, תוכלו לראות את תוצאות העבודה בספריית הפלט שציינתם. מתרגם ה-SQL של אצווה מוציא את הקבצים הבאים ליעד שצוין:

  • הקבצים המתורגמים.
  • דוח סיכום התרגום בפורמט CSV.
  • מיפוי שמות הפלט שנצרך בפורמט JSON.
  • הקבצים עם ההצעות של ה-AI.

Cloud de Confiance פלט בקונסולה

כדי לראות את פרטי עבודת התרגום:

  1. נכנסים לדף SQL Translation במסוף Cloud de Confiance .

    מעבר אל SQL Translation

  2. ברשימת עבודות התרגום, מאתרים את העבודה שרוצים לראות את פרטי התרגום שלה. לאחר מכן לוחצים על שם עבודת התרגום. תוכלו לראות תרשים סנקיי שממחיש את האיכות הכוללת של העבודה, את מספר שורות הקוד של הקלט (לא כולל שורות ריקות והערות) ואת רשימת הבעיות שהתרחשו במהלך תהליך התרגום. כדאי לתת עדיפות לתיקונים משמאל לימין. בעיות בשלב מוקדם עלולות לגרום לבעיות נוספות בשלבים הבאים.

  3. מעבירים את מצביע העכבר מעל סרגלי השגיאה או האזהרה, וקוראים את ההצעות כדי להבין מה השלבים הבאים לניפוי הבאגים של עבודת התרגום.

  4. בוחרים בכרטיסייה סיכום היומן כדי לראות סיכום של בעיות התרגום, כולל קטגוריות של בעיות, פעולות מוצעות ותדירות ההתרחשות של כל בעיה. אפשר ללחוץ על העמודות בתרשים סנקיי כדי לסנן בעיות. אפשר גם לבחור קטגוריית בעיות כדי לראות הודעות יומן שמשויכות לקטגוריית הבעיות הזו.

  5. לוחצים על הכרטיסייה Log Messages כדי לראות פרטים נוספים על כל בעיה בתרגום, כולל קטגוריית הבעיה, הודעת הבעיה הספציפית וקישור לקובץ שבו הבעיה התרחשה. אפשר ללחוץ על העמודות בתרשים סנקיי כדי לסנן את הבעיות. אפשר לבחור בעיה בכרטיסייה Log Message כדי לפתוח את הכרטיסייה Code שבה מוצגים קובץ הקלט וקובץ הפלט, אם רלוונטי.

  6. לוחצים על הכרטיסייה Job details כדי לראות את פרטי ההגדרה של עבודת התרגום.

דוח סיכום

דוח הסיכום הוא קובץ CSV שמכיל טבלה של כל הודעות האזהרה והשגיאה שנתקלו בהן במהלך עבודת התרגום.

כדי לראות את קובץ הסיכום ב Cloud de Confiance מסוף, פועלים לפי השלבים הבאים:

  1. נכנסים לדף SQL Translation במסוף Cloud de Confiance .

    מעבר אל SQL Translation

  2. ברשימת עבודות התרגום, מאתרים את העבודה שרוצים לראות, לוחצים על שם העבודה או על אפשרויות נוספות > הצגת פרטים.

  3. בכרטיסייה פרטי המשימה, בקטע דוח תרגום, לוחצים על translation_report.csv.

  4. בדף פרטי האובייקט, לוחצים על הערך בשורה כתובת URL מאומתת כדי לראות את הקובץ בדפדפן.

בטבלה הבאה מתוארות העמודות בקובץ הסיכום:

עמודה תיאור
חותמת הזמן חותמת הזמן שבה התרחשה הבעיה.
FilePath הנתיב לקובץ המקור שהבעיה משויכת אליו.
FileName השם של קובץ המקור שאליו משויכת הבעיה.
ScriptLine מספר השורה שבה התרחשה הבעיה.
ScriptColumn מספר העמודה שבה התרחשה הבעיה.
TranspilerComponent הרכיב הפנימי של מנוע התרגום שבו התרחשה האזהרה או השגיאה. יכול להיות שהעמודה הזו ריקה.
סביבה סביבת הדיאלקט של התרגום שמשויכת לאזהרה או לשגיאה. יכול להיות שהעמודה הזו ריקה.
ObjectName אובייקט ה-SQL בקובץ המקור שמשויך לאזהרה או לשגיאה. יכול להיות שהעמודה הזו ריקה.
חוּמרה חומרת הבעיה, אזהרה או שגיאה.
קטגוריה קטגוריית הבעיה בתרגום.
SourceType המקור של הבעיה הזו. הערך בעמודה הזו יכול להיות SQL, שמציין שיש בעיה בקובצי ה-SQL של הקלט, או METADATA, שמציין שיש בעיה בחבילת המטא-נתונים.
הודעה האזהרה או הודעת השגיאה שקשורות לבעיה בתרגום.
ScriptContext קטע ה-SQL בקובץ המקור שמשויך לבעיה.
פעולה הפעולה המומלצת לפתרון הבעיה.

כרטיסיית קוד

בכרטיסייה 'קוד' אפשר לעיין במידע נוסף על קובצי הקלט והפלט של משימת תרגום מסוימת. בכרטיסיית הקוד אפשר לבדוק את הקבצים שנעשה בהם שימוש במשימת תרגום, לעיין בהשוואה בטבלה בין קובץ קלט לתרגום שלו כדי לזהות אי דיוקים, ולראות סיכומים והודעות של יומנים לגבי קובץ ספציפי במשימה.

כדי לגשת לכרטיסיית הקוד:

  1. נכנסים לדף SQL Translation במסוף Cloud de Confiance .

    מעבר אל SQL Translation

  2. ברשימת עבודות התרגום, מאתרים את העבודה שרוצים לראות, לוחצים על שם העבודה או על אפשרויות נוספות > הצגת פרטים.

  3. בוחרים באפשרות כרטיסיית קוד. כרטיסיית הקוד כוללת את החלוניות הבאות:

    מעיינים בכרטיסיית הקוד בדף התרגום של SQL.

    • סייר הקבצים: מכיל את כל קובצי ה-SQL שמשמשים לתרגום. לוחצים על קובץ כדי לראות את הקלט והפלט של התרגום שלו, ובעיות תרגום שקשורות לתרגום שלו.
    • קלט משופר על ידי Gemini: קלט ה-SQL שתורגם על ידי מנוע התרגום. אם ציינתם כללי התאמה אישית של Gemini עבור קוד ה-SQL המקורי בהגדרות של Gemini, המתרגם ישנה קודם את הקלט המקורי ואז יתרגם את הקלט המשופר של Gemini. כדי לראות את הקלט המקורי, לוחצים על הצגת הקלט המקורי.
    • פלט התרגום: תוצאת התרגום. אם הגדרתם כללי התאמה אישית של Gemini ל-SQL היעד בהגדרות של Gemini, הטרנספורמציה תוחל על התוצאה המתורגמת כפלט משופר של Gemini. אם יש פלט משופר על ידי Gemini, אפשר ללחוץ על הלחצן הצעה מ-Gemini כדי לבדוק את הפלט המשופר.
  4. אופציונלי: כדי לראות קובץ קלט וקובץ פלט בכלי האינטראקטיבי לתרגום SQL ב-BigQuery, לוחצים על עריכה. אפשר לערוך את הקבצים ולשמור את קובץ הפלט בחזרה ב-Cloud Storage.

הכרטיסייה 'הגדרות'

בכרטיסייה Configuration אפשר להוסיף, לשנות את השם, להציג או לערוך את קובצי ה-YAML של ההגדרות.בSchema Explorer מוצגת תיעוד של סוגי ההגדרות הנתמכים, כדי לעזור לכם לכתוב את קובצי ה-YAML של ההגדרות. אחרי שמעדכנים את קובצי ה-YAML של ההגדרות, אפשר להריץ מחדש את העבודה כדי להשתמש בהגדרות החדשות.

כדי לגשת לכרטיסיית ההגדרות:

  1. נכנסים לדף SQL Translation במסוף Cloud de Confiance .

    מעבר אל SQL Translation

  2. ברשימת עבודות התרגום, מאתרים את העבודה שרוצים לראות, לוחצים על שם העבודה או על אפשרויות נוספות > הצגת פרטים.

  3. בחלון פרטי התרגום, לוחצים על הכרטיסייה הגדרות.

מעיינים בכרטיסייה 'הגדרה' בדף התרגום ל-SQL.

כדי להוסיף קובץ הגדרה חדש:

  1. לוחצים על more_vert אפשרויות נוספות > יצירת קובץ YAML של הגדרות.
  2. יופיע חלונית שבה תוכלו לבחור את הסוג, המיקום והשם של קובץ ה-YAML החדש של התצורה.
  3. לוחצים על יצירה.

כדי לערוך קובץ תצורה קיים:

  1. לוחצים על קובץ ה-YAML של ההגדרות.
  2. עורכים את הקובץ ולוחצים על שמירה.
  3. לוחצים על הרצה מחדש כדי להריץ משימת תרגום חדשה שמשתמשת בקובצי ה-YAML של ההגדרות שעברו עריכה.

כדי לשנות את השם של קובץ הגדרות קיים, לוחצים על more_vert אפשרויות נוספות > שינוי שם.

קובץ מיפוי של שמות פלט שנצרכו

קובץ ה-JSON הזה מכיל את כללי המיפוי של שמות הפלט ששימשו את משימת התרגום. יכול להיות שהכללים בקובץ הזה יהיו שונים מהכללים של מיפוי שמות הפלט שהגדרתם למשימת התרגום, בגלל קונפליקטים בכללי מיפוי השמות או בגלל היעדר כללי מיפוי שמות לאובייקטים של SQL שזוהו במהלך התרגום. צריך לבדוק את הקובץ הזה כדי לראות אם צריך לתקן את כללי מיפוי השמות. אם כן, צריך ליצור כללי מיפוי חדשים של שמות פלט שפותרים את הבעיות שזיהיתם, ולהריץ משימת תרגום חדשה.

קבצים מתורגמים

לכל קובץ מקור נוצר קובץ פלט תואם בנתיב היעד. קובץ הפלט מכיל את השאילתה המתורגמת.

ניפוי באגים בשאילתות SQL שתורגמו באצווה באמצעות כלי התרגום האינטראקטיבי של SQL

אתם יכולים להשתמש בכלי האינטראקטיבי לתרגום SQL ב-BigQuery כדי לבדוק או לנפות באגים בשאילתת SQL באמצעות אותם מטא-נתונים או מיפוי אובייקטים כמו במסד הנתונים של המקור. אחרי שמסיימים משימת תרגום באצווה, BigQuery יוצר מזהה של הגדרת תרגום שמכיל מידע על המטא-נתונים של המשימה, על מיפוי האובייקטים או על נתיב החיפוש של הסכימה, בהתאם לשאילתה. משתמשים במזהה ההגדרה של התרגום באצווה עם כלי ה-SQL האינטראקטיבי לתרגום כדי להריץ שאילתות SQL עם ההגדרה שצוינה.

כדי להתחיל תרגום אינטראקטיבי של SQL באמצעות מזהה של הגדרת תרגום באצווה, פועלים לפי השלבים הבאים:

  1. נכנסים לדף SQL Translation במסוף Cloud de Confiance .

    מעבר אל SQL Translation

  2. ברשימת עבודות התרגום, מאתרים את העבודה שרוצים, ואז לוחצים על אפשרויות נוספות > פתיחת תרגום אינטראקטיבי.

    כלי התרגום האינטראקטיבי של SQL ב-BigQuery ייפתח עם מזהה ההגדרה המתאים של תרגום באצווה. כדי לראות את מזהה הגדרות התרגום של התרגום האינטראקטיבי, לוחצים על כלים > תרגום שאילתות > הגדרות תרגום בכלי האינטראקטיבי לתרגום SQL.

כדי לנפות באגים בקובץ תרגום של קבוצת תרגומים בכלי האינטראקטיבי לתרגום SQL, פועלים לפי השלבים הבאים:

  1. נכנסים לדף SQL Translation במסוף Cloud de Confiance .

    מעבר אל SQL Translation

  2. ברשימת עבודות התרגום, מאתרים את העבודה שמעניינת אתכם, ואז לוחצים על שם העבודה או על אפשרויות נוספות > הצגת פרטים.

  3. בחלון פרטי התרגום, לוחצים על הכרטיסייה קוד.

  4. בסייר הקבצים, לוחצים על שם הקובץ כדי לפתוח אותו.

  5. לצד שם קובץ הפלט, לוחצים על עריכה כדי לפתוח את הקבצים בכלי האינטראקטיבי לתרגום SQL (תצוגה מקדימה).

    קבצי הקלט והפלט יאוכלסו בכלי האינטראקטיבי לתרגום SQL, שמשתמש עכשיו במזהה ההגדרה המתאים של תרגום באצווה.

  6. כדי לשמור את קובץ הפלט הערוך בחזרה ב-Cloud Storage, לוחצים על Save > Save To GCS (שמירה ב-GCS) בכלי האינטראקטיבי לתרגום SQL.

מגבלות

המתרגם לא יכול לתרגם פונקציות בהגדרת המשתמש (UDF) משפות שאינן SQL, כי הוא לא יכול לנתח אותן כדי לקבוע את סוגי נתוני הקלט והפלט שלהן. הדבר גורם לתרגום לא מדויק של הצהרות SQL שמפנות לפונקציות UDF האלה. כדי לוודא שהפונקציות המוגדרות על ידי המשתמש שאינן SQL יקבלו הפניה נכונה במהלך התרגום, צריך להשתמש ב-SQL תקין כדי ליצור פונקציות placeholder מוגדרות על ידי המשתמש עם אותן חתימות.

לדוגמה, נניח שיש לכם UDF שנכתב ב-C ומחשב את הסכום של שני מספרים שלמים. כדי לוודא שהוראות SQL שמפנות אל פונקציית UDF זו מתורגמות בצורה נכונה, צריך ליצור פונקציית UDF של SQL כ-placeholder שכוללת את אותה חתימה כמו פונקציית ה-UDF של C, כמו בדוגמה הבאה:

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

שומרים את פונקציית ה-UDF הזו של placeholder בקובץ טקסט, וכוללים את הקובץ הזה כאחד מקובצי המקור של עבודת התרגום. כך המתרגם יכול ללמוד את ההגדרה של UDF ולזהות את סוגי נתוני הקלט והפלט הצפויים.

מכסות ומגבלות

  • חלות מכסות של BigQuery Migration API.
  • בכל פרויקט יכולות להיות לכל היותר 10 משימות תרגום פעילות.
  • אין הגבלה על המספר הכולל של קובצי המקור והמטא-נתונים, אבל כדי לשפר את הביצועים מומלץ להגביל את מספר הקבצים ל-1,000.

פתרון בעיות שקשורות לתרגום

בקטעים הבאים מתוארות שגיאות נפוצות שמתרחשות במהלך השימוש בכלי לתרגום SQL באצווה.

בעיות בתרגום של RelationNotFound או AttributeNotFound

אחרי תרגום שאילתה באמצעות כלי התרגום של SQL באצווה, יכול להיות שיתקבל תרגום שנכשל עם השגיאה RelationNotFound או AttributeNotFound.

כדי לראות את התרגומים שנכשלו, עוברים לדף פרטי התרגום ב-BigQuery במסוף Cloud de Confiance ופותחים את הכרטיסייה הודעות יומן.

התרגום פועל בצורה הכי טובה עם פקודות DDL של מטא-נתונים. אם לא ניתן למצוא הגדרות של אובייקטים ב-SQL, מנוע התרגום מעלה בעיות מסוג RelationNotFound או AttributeNotFound. מומלץ להשתמש בכלי לחילוץ מטא-נתונים כדי ליצור חבילות מטא-נתונים ולוודא שכל הגדרות האובייקטים קיימות. הוספת מטא-נתונים היא השלב הראשון המומלץ לפתרון רוב שגיאות התרגום, כי השלב הזה לרוב פותר הרבה שגיאות אחרות שנגרמות באופן עקיף מחוסר במטא-נתונים.

מידע נוסף זמין במאמר יצירת מטא-נתונים לתרגום ולבדיקה.

תיקון בעיות בתרגום באמצעות Gemini

כדי לתקן עבודות תרגום שנכשלו עם השגיאות RelationNotFound או AttributeNotFound, אפשר גם להשתמש ב-Gemini כדי לפתור את הבעיות האלה:

  1. עוברים לדף פרטי התרגום ופותחים את הכרטיסייה הודעות יומן.
  2. לוחצים על השאילתה שמופיעה בה ההודעה RelationNotFound או AttributeNotFound בעמודה קטגוריה.
  3. כדי לעבור לקובץ ולשורה שמכילים את השגיאה בכרטיסיית הקוד, לוחצים על

    הודעת שגיאה.

  4. בעמודה פעולה, לוחצים על הצעה לתיקון.

  5. בוחרים באחת מהאפשרויות הבאות, החלה או החלה והפעלה מחדש:

    • כדי להעתיק את קובץ הסכימה שנוצר מספריית הפלט לספריית הקלט, לוחצים על החלה.
    • כדי להעתיק את קובץ הסכימה שנוצר מספריית הפלט לספריית הקלט ולפתוח חלון להרצה חוזרת, לוחצים על החלה והרצה חוזרת.

תמחור

אין תשלום על השימוש בכלי לתרגום SQL של קבוצות. עם זאת, נפח האחסון שמשמש לאחסון קובצי קלט ופלט כרוך בעמלות הרגילות. מידע נוסף מופיע במאמר בנושא תמחור אחסון.

המאמרים הבאים

מידע נוסף על השלבים הבאים בהעברת מחסן נתונים: