תרגם שאילתות בעזרת מתרגם SQL אינטראקטיבי
מסמך זה מתאר כיצד לתרגם שאילתה מניב SQL אחר לשאילתת GoogleSQL באמצעות מתרגם ה-SQL האינטראקטיבי של BigQuery. כלי התרגום האינטראקטיבי של SQL יכול לעזור לכם לקצר את הזמן ולהפחית את המאמץ כשאתם מעבירים עומסי עבודה ל-BigQuery. המסמך הזה מיועד למשתמשים שמכירים את מסוףGoogle Cloud .
אתם יכולים להשתמש בתכונת כללי התרגום כדי להתאים אישית את האופן שבו כלי התרגום האינטראקטיבי של SQL מתרגם SQL.
לרשימה של דיאלקטים של SQL הנתמכים על ידי מתרגם 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 שאינן נתמכות עם קבצי UDF עוזרים
כשמתרגמים SQL מדיאלקט מקור ל-BigQuery, יכול להיות שלחלק מהפונקציות אין מקבילה ישירה. כדי לפתור את הבעיה הזו, שירות ההעברה ל-BigQuery (וגם קהילת BigQuery הרחבה) מספק פונקציות עזר מוגדרות על ידי המשתמש (UDF) שמשכפלות את ההתנהגות של הפונקציות האלה בניב המקור שלא נתמך.
פונקציות UDF כאלה נמצאות בדרך כלל במערך הנתונים הציבורי bqutil, כך ששאילתות מתורגמות יכולות להפנות אליהן בהתחלה באמצעות הפורמט bqutil.<dataset>.<function>(). לדוגמה, bqutil.fn.cw_count().
שיקולים חשובים לגבי סביבות ייצור:
אמנם bqutil מאפשר גישה נוחה לפונקציות העזר האלה של UDF לצורך תרגום ובדיקה ראשוניים, אבל לא מומלץ להסתמך ישירות על bqutil לעומסי עבודה של ייצור מכמה סיבות:
- בקרת גרסאות: בפרויקט
bqutilמתארחת הגרסה העדכנית של הפונקציות האלה להגדרת משתמש (UDF), מה שאומר שההגדרות שלהן יכולות להשתנות לאורך זמן. הסתמכות ישירה עלbqutilעלולה להוביל להתנהגות בלתי צפויה או לשינויים שוברים בשאילתות הייצור שלכם אם הלוגיקה של פונקציית UDF מתעדכנת. - בידוד תלות: פריסת פונקציות UDF בפרויקט שלכם מבודדת את סביבת הייצור משינויים חיצוניים.
- התאמה אישית: יכול להיות שתצטרכו לשנות את הפונקציות האלה או לבצע בהן אופטימיזציה כדי שיתאימו יותר ללוגיקה העסקית הספציפית שלכם או לדרישות הביצועים. אפשר לעשות את זה רק אם הם נמצאים בפרויקט שלכם.
- אבטחה וניהול: יכול להיות שמדיניות האבטחה של הארגון שלכם מגבילה גישה ישירה למערכי נתונים ציבוריים כמו
bqutilלעיבוד נתוני ייצור. העתקת פונקציות UDF לסביבה המבוקרת שלכם תואמת למדיניות כזו.
פריסת פונקציות UDF מסוג helper בפרויקט:
כדי להשתמש בפונקציות העזר האלה של UDF בסביבת ייצור בצורה מהימנה ויציבה, צריך לפרוס אותן בפרויקט ובמערך הנתונים שלכם. כך יש לכם שליטה מלאה בגרסה, בהתאמה האישית ובגישה שלהם. הוראות מפורטות להטמעה של פונקציות UDF זמינות במדריך להטמעה של פונקציות UDF ב-GitHub. במדריך הזה מפורטים הסקריפטים והשלבים שנדרשים כדי להעתיק את הפונקציות המוגדרות על ידי המשתמש לסביבה שלכם.
מיקומים
מתרגם ה-SQL האינטראקטיבי זמין רק במיקומי עיבוד נבחרים. מידע נוסף זמין במאמר מיקומים.
הגדרות תרגום שמבוססות על Gemini זמינות רק במיקומי עיבוד ספציפיים. מידע נוסף זמין במאמר בנושא מיקומים של נקודות קצה של מודלים של Google
תרגום שאילתה ל-GoogleSQL
בצע את השלבים הבאים כדי לתרגם שאילתה ל-GoogleSQL:
במסוף Google Cloud , עוברים לדף BigQuery.
בחלונית עורך, לוחצים על כלים > הגדרות תרגום.
ב-Source dialect, בוחרים את ניב ה-SQL שרוצים לתרגם.
זה שינוי אופציונלי. בקטע מיקום העיבוד, בוחרים את המיקום שבו רוצים להריץ את עבודת התרגום. לדוגמה, אם אתם נמצאים באירופה ולא רוצים שהנתונים שלכם יעברו את הגבולות של מיקום כלשהו, אתם יכולים לבחור באזור
eu.לוחצים על Save.
בחלונית העורך, לחץ על כלים >�� הפעל תרגום SQL.
החלונית עורך מתפצלת לשתי חלוניות.
בחלונית הימנית, מזינים את השאילתה שרוצים לתרגם.
לוחצים על תרגום.
BigQuery מתרגם את השאילתה שלך ל-GoogleSQL ומציג אותה בחלונית הימנית. לדוגמה, בצילום המסך הבא מוצג תרגום של Teradata SQL:

אופציונלי: כדי להריץ את שאילתת GoogleSQL המתורגמת, לוחצים על הפעלה.
אופציונלי: כדי לחזור לעורך ה-SQL, לוחצים על עוד > השבתת תרגום SQL.
החלונית עורך חוזרת להיות חלונית אחת.
שימוש ב-Gemini עם כלי התרגום האינטראקטיבי של SQL
באפשרותך להגדיר את מתרגם ה-SQL האינטראקטיבי כדי להתאים את האופן שבו מתרגם ה-SQL האינטראקטיבי מתרגם את קוד ה-SQL המקורי שלך. ניתן לעשות זאת על ידי מתן כללים משלך לשימוש עם Gemini בקובץ תצורה של YAML, או על ידי מתן קובץ תצורה של YAML המכיל מטא-נתונים של אובייקטי SQL או מידע על מיפוי אובייקטים.
יצירה והחלה של כללי תרגום משופרים באמצעות Gemini
ניתן להתאים אישית את האופן שבו מתרגם SQL האינטראקטיבי מתרגם SQL על ידי יצירת כללי תרגום. מתרגם ה-SQL האינטראקטיבי מתאים את התרגומים שלו בהתבסס על כללי תרגום SQL משופרים של Gemini שאתה מקצה לו, ומאפשר לך להתאים אישית את תוצאות התרגום בהתאם לצורכי ההעברה שלך.
כדי ליצור כלל תרגום ל-SQL עם Gemini, אפשר ליצור אותו במסוף או ליצור קובץ YAML להגדרות ולהעלות אותו ל-Cloud Storage.
המסוף
כדי ליצור כלל תרגום SQL משופר על ידי Gemini עבור קלט SQL, כותבים שאילתת SQL לקלט בעורך השאילתות, ואז לוחצים על ASSIST > Customize. (תצוגה מקדימה)
באופן דומה, כדי ליצור כלל תרגום SQL משופר של Gemini עבור SQL הפלט, הפעל תרגום אינטראקטיבי ולאחר מכן לחץ על ASSIST >�� התאם אישית תרגום זה.
כשמופיע התפריט התאמה אישית, ממשיכים לשלבים הבאים.
השתמש באחת או בשתי ההנחיות הבאות כדי ליצור כלל תרגום:
בהנחיה Find and replace a pattern (חיפוש והחלפה של תבנית), מציינים תבנית SQL שרוצים להחליף בשדה Replace (החלפה), ותבנית SQL להחלפה בשדה With (ב).
תבנית SQL יכולה להכיל מספר כלשהו של הצהרות, פסוקיות או פונקציות בסקריפט SQL. כשיוצרים כלל באמצעות ההנחיה הזו, תרגום ה-SQL המשופר של Gemini מזהה מקרים של תבנית ה-SQL הזו בשאילתת ה-SQL ומחליף אותה באופן דינמי בתבנית SQL אחרת. לדוגמה, אתם יכולים להשתמש בהנחיה הזו כדי ליצור כלל שמחליף את כל המופעים של
months_between (X,Y)ב-date_diff(X,Y,MONTH).בשדה Describe a change to the output (תיאור שינוי בפלט), מקלידים שינוי בפלט של תרגום ה-SQL בשפה טבעית.
כשיוצרים כלל באמצעות הפרומפט הזה, תרגום ה-SQL המשופר על ידי Gemini מזהה את הבקשה ומבצע את השינוי שצוין בשאילתת ה-SQL.
לחץ על תצוגה מקדימה.
בתיבת הדו-שיח הצעות שנוצרו על ידי Gemini, סקור את השינויים שבוצעו על ידי תרגום ה-SQL המשופר של Gemini בשאילתת ה-SQL בהתבסס על הכלל שלך.
אופציונלי: כדי להוסיף כלל זה לשימוש בתרגומים עתידיים, סמנו את תיבת הסימון שמור בקשה זו....
הכללים נשמרים בקובץ YAML של תצורת ברירת המחדל, או ב-
__default.ai_config.yaml. קובץ ה-YAML של ההגדרה נשמר בתיקייה ב-Cloud Storage כמו שצוין בשדה מיקום מקור הגדרות התרגום בהגדרות התרגום. אם מיקום מקור תצורת התרגום עדיין לא הוגדר, יופיע דפדפן תיקיות ויאפשר לך לבחור אחד. קובץ YAML של הגדרות כפוף למגבלות גודל קובץ ההגדרות.כדי להחיל את השינויים המוצעים על שאילתת ה-SQL, לחץ על החל.
YAML
כדי ליצור כלל תרגום SQL משופר של Gemini, ניתן ליצור קובץ YAML של תצורה מבוסס Gemini ולהעלות אותו ל-Cloud Storage. מידע נוסף זמין במאמר בנושא יצירת קובץ YAML של הגדרות שמבוסס על Gemini.
לאחר שהעלית כלל תרגום SQL משופר של Gemini והעלית אותו ל-Cloud Storage, תוכל להחיל את הכלל על ידי ביצוע הפעולות הבאות:
במסוף Google Cloud , עוברים לדף BigQuery.
בעורך השאילתות, לוחצים על כלים > הגדרות תרגום.
בשדה מיקום מקור תצורת התרגום, ציין את הנתיב לקובץ YAML מבוסס Gemini המאוחסן בתיקיית Cloud Storage.
לוחצים על Save.
אחרי השמירה, מריצים תרגום אינטראקטיבי. אם יש קובץ YAML של הגדרות, הכלי לתרגום אינטראקטיבי מציע שינויים בתרגומים על סמך הכללים שמוגדרים בו.
אם קיימת הצעת Gemini עבור הקלט המבוססת על הכלל שלך, תיבת הדו-שיח הצגת שינויים מוצעים בתצוגה מקדימה תופיע ותציג שינויים אפשריים בקלט התרגום. (תצוגה מקדימה)
אם יש ל-Gemini הצעה לגבי הפלט על סמך הכלל שלכם, יופיע באנר התראה בכלי לעריכת קוד. כדי לסקור וליישם הצעות אלה, בצע את הפעולות הבאות:
לוחצים על עזרה > הצגת ההצעות באחד הצדדים של עורך הקוד כדי לחזור לשינויים המוצעים בשאילתה המתאימה.
בתיבת הדו-שיח הצעות שנוצרו על ידי Gemini, סקור את השינויים שבוצעו על ידי Gemini בשאילתת ה-SQL בהתבסס על כלל התרגום שלך.
כדי להחיל את השינויים המוצעים על פלט התרגום, לחץ על החל.
עדכון קובץ YAML של הגדרות שמבוסס על Gemini
כדי לעדכן קובץ YAML קיים של תצורה, בצע את הפעולות הבאות:
בתיבת הדו-שיח הצעות שנוצרו ב-Gemini, לוחצים על צפייה בקובץ ההגדרות של כלל Gemini.
כאשר עורך התצורה מופיע, בחר את קובץ YAML של התצורה שברצונך לערוך.
מבצעים את השינוי ולוחצים על שמירה.
כדי לסגור את עורך ה-YAML, לוחצים על סיום.
הפעל תרגום אינטראקטיבי כדי להחיל את הכלל המעודכן.
הסבר על תרגום
לאחר הרצת תרגום אינטראקטיבי, ניתן לבקש הסבר טקסט שנוצר על ידי ג'מיני. הטקסט שנוצר כולל סיכום של שאילתת ה-SQL המתורגמת. בנוסף, Gemini מזהה הבדלים בתרגום ואי-התאמות בין שאילתת ה-SQL המקורית לבין שאילתת GoogleSQL המתורגמת.
כדי לקבל הסבר על תרגום SQL של Gemini, בצע את הפעולות הבאות:
כדי ליצור הסבר לתרגום SQL שנוצר על ידי Gemini, לחצו על סיוע ולאחר מכן לחצו על הסבר תרגום זה.
תרגום באמצעות מזהה של הגדרת תרגום באצווה
אפשר להריץ שאילתה אינטראקטיבית עם אותן הגדרות תרגום כמו במשימת תרגום באצווה, על ידי ציון מזהה של הגדרות תרגום באצווה.
- בעורך השאילתות, לוחצים על כלים > הגדרות תרגום.
בשדה מזהה הגדרת התרגום, מציינים מזהה של הגדרת תרגום באצווה כדי להחיל את אותה הגדרת תרגום ממשימת העברה באצווה שהושלמה ב-BigQuery.
כדי למצוא את מזהה ההגדרה של תרגום באצווה של משימה, בוחרים משימת תרגום באצווה בדף SQL translation (תרגום SQL) ולוחצים על הכרטיסייה Translation Configuration (הגדרת תרגום). מזהה תצורת תרגום האצווה רשום כ-שם משאב.
לוחצים על Save.
תרגום עם הגדרות נוספות
אפשר להריץ שאילתה אינטראקטיבית עם הגדרות תרגום נוספות על ידי ציון קובצי YAML של הגדרות שמאוחסנים בתיקייה ב-Cloud Storage. הגדרות התרגום עשויות לכלול מטא-נתונים של אובייקט SQL או מידע על מיפוי אובייקטים ממסד הנתונים של המקור, שיכולים לשפר את איכות התרגום. לדוגמה, אפשר לכלול מידע או סכימות של DDL ממסד הנתונים של המקור כדי לשפר את איכות התרגום האינטראקטיבי של SQL.
כדי לציין הגדרות תרגום באמצעות ציון מיקום לקובצי המקור של הגדרות התרגום:
- בעורך השאילתות, לוחצים על כלים > הגדרות תרגום.
בשדה Translation Configuration Source Location (מיקום מקור הגדרות התרגום), מציינים את הנתיב לקובצי הגדרות התרגום שמאוחסנים בתיקייה ב-Cloud Storage.
מתרגם ה-SQL האינטראקטיבי של BigQuery תומך בקבצי ZIP של מטא-דאטה המכילים מטא-דאטה של תרגום ו-מיפוי שמות אובייקטים. מידע על העלאת קבצים ל-Cloud Storage זמין במאמר העלאת אובייקטים ממערכת קבצים.
לוחצים על Save.
מגבלות על גודל קובץ התצורה
כשמשתמשים בקובץ הגדרות תרגום עם כלי התרגום האינטראקטיבי של SQL ב-BigQuery, קובץ המטא-נתונים הדחוס או קובץ ההגדרות בפורמט YAML צריכים להיות קטנים מ-50MB. אם גודל הקובץ עולה על 50 מגה-בייט, המתרגם האינטראקטיבי מדלג על קובץ התצורה במהלך התרגום ומפיק הודעת שגיאה הדומה להודעה הבאה:
CONFIG ERROR: Skip reading file "gs://metadata-file.zip". File size (150,000,000 bytes)
exceeds limit (50 MB).
שיטה אחת להקטנת הגודל של קובץ המטא-נתונים היא להשתמש בדגלים --database או --schema כדי לחלץ רק מטא-נתונים של מסדי נתונים או סכימות שרלוונטיים לשאילתות הקלט של התרגום. למידע נוסף על השימוש בדגלים אלה בעת יצירת קבצי מטא-נתונים, ראה דגלים גלובליים.
פתרון בעיות שגיאות תרגום
בטבלה הבאה ריכזנו כמה מהשגיאות הנפוצות ביותר שמתרחשות במהלך השימוש בכלי האינטראקטיבי לתרגום SQL.
בעיות תרגום של RelationNotFound או AttributeNotFound
לאחר תרגום שאילתה באמצעות מתרגם SQL אינטראקטיבי, ייתכן שתיתקל בתרגום כושל עם השגיאה RelationNotFound או AttributeNotFound.
כדי למצוא תרגומים שנכשלו, עוברים לדף פרטי התרגום ופותחים את הכרטיסייה הודעות יומן.
כדי לוודא שהתרגום מדויק ככל האפשר, אפשר להזין את הצהרות שפת הגדרת הנתונים (DDL) של כל הטבלאות שמשמשות בשאילתה לפני השאילתה עצמה. לדוגמה, אם ברצונך לתרגם את שאילתת Amazon Redshift select table1.field1, table2.field1
from table1, table2 where table1.id = table2.id;, עליך להזין את משפטי ה-SQL הבאים לתוך מתרגם ה-SQL האינטראקטיבי:
create table schema1.table1 (id int, field1 int, field2 varchar(16));
create table schema1.table2 (id int, field1 varchar(30), field2 date);
select table1.field1, table2.field1
from table1, table2
where table1.id = table2.id;
תיקון בעיות בתרגום באמצעות Gemini
כדי לתקן תרגומים שנכשלו עם השגיאות RelationNotFound או AttributeNotFound, אפשר גם להשתמש ב-Gemini כדי לנסות לפתור את הבעיות האלה באמצעות השלבים הבאים.
עוברים לדף פרטי התרגום ופותחים את הכרטיסייה הודעות יומן.
לוחצים על השאילתה שבה מופיעה ההודעה
RelationNotFoundאוAttributeNotFoundבעמודה Category (קטגוריה).לחץ על תיקון מוצע.
לוחצים על אישור.
לוחצים על תרגום כדי לתרגם מחדש את השאילתה.
תמחור
השימוש בכלי האינטראקטיבי לתרגום SQL לא כרוך בתשלום. עם זאת, האחסון שמשמש לאחסון קבצי קלט ופלט כרוך בעמלות רגילות. מידע נוסף מופיע במאמר בנושא תמחור אחסון.
המאמרים הבאים
מידע נוסף על השלבים הבאים בהעברת מחסן נתונים:
- סקירה כללית על מיגרציה
- הערכת הגירה
- סקירה כללית של סכמה והעברת נתונים
- תרגום SQL קבוצתי
- צינורות להעברת נתונים
- אבטחה ומשילות מידע
- כלי לאימות נתונים