העברה מ-Snowflake ל-BigQuery
במאמר הזה מוסבר איך אפשר לבצע מיגרציה מ-Snowflake ל-BigQuery. בקטעים הבאים מוצגים כלי ההעברה שיעזרו לכם לבצע העברה ל-BigQuery, ומתוארים כמה הבדלים בין Snowflake לבין BigQuery שיעזרו לכם לתכנן את ההעברה.
העברת תהליכי עבודה מ-Snowflake ל-BigQuery
כשמתכננים העברה ל-BigQuery, כדאי לחשוב על תהליכי העבודה השונים שיש לכם ב-Snowflake ואיך אפשר להעביר אותם בנפרד. כדי למזער את ההשפעה על הפעולות הקיימות, מומלץ להעביר את שאילתות ה-SQL ל-BigQuery, ואז להעביר את הסכימה והקוד.
העברה של שאילתות SQL
כדי להעביר את שאילתות ה-SQL, שירות ההעברה של BigQuery מציע תכונות שונות לתרגום SQL כדי להפוך באופן אוטומטי את שאילתות ה-SQL של Snowflake ל-SQL של GoogleSQL, כמו כלי התרגום של SQL באצווה לתרגום שאילתות בכמות גדולה, כלי התרגום האינטראקטיבי של SQL לתרגום שאילתות בודדות וה-API לתרגום SQL. שירותי התרגום האלה כוללים גם פונקציונליות משופרת של Gemini, כדי לפשט עוד יותר את תהליך ההעברה של שאילתות SQL.
במהלך התרגום של שאילתות ה-SQL, חשוב לבדוק בקפידה את השאילתות המתורגמות כדי לוודא שסוגי הנתונים ומבני הטבלאות מטופלים בצורה נכונה. לכן, מומלץ ליצור מגוון רחב של תרחישי בדיקה עם נתונים שונים. לאחר מכן מריצים את תרחישי הבדיקה האלה ב-BigQuery כדי להשוות את התוצאות לתוצאות המקוריות ב-Snowflake. אם יש הבדלים, צריך לנתח את השאילתות שהומרו ולתקן אותן.
העברת סכימה וקוד
כדי להעביר סכימה ונתונים מ-Snowflake, משתמשים במחבר Snowflake בשירות העברת הנתונים ל-BigQuery כדי להגדיר העברת נתונים. כשמגדירים את העברת הנתונים, אפשר לציין טבלאות ספציפיות של Snowflake שייכללו בהעברה, וגם להגדיר שהמחבר יזהה באופן אוטומטי את סכימת הטבלה ואת סוגי הנתונים במהלך ההעברה.
מידע נוסף על הגדרת העברת נתונים מ-Snowflake זמין במאמר בנושא תזמון העברה מ-Snowflake.
העברה מצטברת
כשמעבירים נתונים מ-Snowflake באמצעות המחבר של Snowflake, אפשר להגדיר העברה מצטברת שמעבירה רק את הנתונים שהשתנו מאז העברת הנתונים האחרונה, במקום לטעון את מערך הנתונים כולו בכל העברת נתונים. מידע נוסף זמין במאמר בנושא תזמון העברה ב-Snowflake.
העברה של תכונות אחרות ב-Snowflake
כדאי להביא בחשבון את התכונות הבאות של Snowflake כשמתכננים את המעבר ל-BigQuery.
| תרחיש שימוש | תכונה של Snowflake | תכונה של BigQuery |
|---|---|---|
| הכנת קובצי נתונים גולמיים לטעינה ולייצוא | אפשר להעלות ולהוריד נתונים לסביבת פיתוח באמצעות הפקודות GET ו-PUT. שאילתות ופקודות `COPY` יכולות לקרוא ולכתוב נתונים בשלבים. | BigQuery מסתמך על Cloud Storage לצורך העברת נתונים זמנית של קבצים, ותומך בקריאה מכמה מקורות ושירותים אחרים ובכתיבה אליהם. Cloud de Confiance by S3NS אפשר להשתמש ב-Cloud Storage כדי להעלות ולהוריד קובצי נתונים גולמיים. במאמר מבוא לטעינת נתונים מוסבר על מגוון דרכים לטעינת נתונים מ-Cloud Storage וממקורות אחרים, ובמאמר מבוא לייצוא נתונים מוסבר על ייצוא ל-Cloud Storage ולמקורות אחרים. |
| חישוב מראש של תוצאות נפוצות של שאילתות | אפשר להגדיר טבלאות דינמיות באמצעות שאילתה ולרענן אותן לפי לוח זמנים. | אפשר להגדיר תצוגות חומריות כך שהן יישמרו ויתרעננו אוטומטית בחישוב של שאילתת SQL. |
| פעולות DML קטנות | טבלאות היברידיות ב-Snowflake מאפשרות כתיבה של DML בכמויות קטנות. | אפשר להשתמש ב-DML ברמת דיוק גבוהה ב-BigQuery כדי לשפר את זמן האחזור ואת קצב העברת הנתונים של פעולות כתיבה קטנות. לתרחישי שימוש מתקדמים של עיבוד היברידי של טרנזקציות וניתוחים (HTAP), מומלץ להשתמש במערכי נתונים חיצוניים של Spanner. |
| מחברות והמחשה | אפליקציות של Snowflake Streamlit יכולות להמחיש נתונים באמצעות קוד Python. | אפשר להשתמש במחברות של BigQuery ובספריית Python BigFrames כדי לחקור נתונים ולהציג אותם באופן חזותי ב-Python. מידע על שילובים עם Looker ועם כלי ניתוח והדמיה אחרים זמין במאמר מבוא לכלי ניתוח ובינה עסקית. |
| פריסת נתונים פיזית | Snowflake תומך באשכולות ובחלוקה למיקרו-מחיצות כדי לארגן את הנתונים בדיסק. | BigQuery תומך בחלוקה למחיצות ובסידור באשכולות כדי לתת למשתמשים שליטה מדויקת באופן שבו הנתונים מופצים ומאורגנים, וכך לשפר את העלות ואת ביצועי זמן הריצה. שירות התרגום של SQL מטפל אוטומטית בתרגום של אשכולות טבלאות, וניתן להגדיר אותו כדי להתאים אישית את החלוקה למחיצות ואת האשכולות כשמעבירים DDL. |
| פונקציות ונהלים חיצוניים | Snowflake תומך בפונקציות ובפרוצדורות מאוחסנות שמוטמעות בכמה שפות חיצוניות. | BigQuery תומך בקריאות לפונקציות חיצוניות דרך פונקציות Cloud Run. אפשר גם להשתמש ב[פונקציות בהגדרת המשתמש](/bigquery/docs/user-defined-functions) (UDF) כמו SQL UDF, שמופעלות ב-BigQuery. BigQuery תומך ב-SQL עבור פרוצדורות מאוחסנות. בשפות אחרות, מומלץ להשתמש בפונקציות חיצוניות או בלוגיקה של אפליקציות בצד הלקוח. |
תכונות האבטחה של BigQuery
כשמבצעים מיגרציה מ-Snowflake ל-BigQuery, חשוב להבין איךCloud de Confiance by S3NS מטפל באבטחה באופן שונה מ-Snowflake.
האבטחה ב-BigQuery קשורה באופן מהותי לניהול זהויות והרשאות גישה (IAM) ב- Cloud de Confiance by S3NS. הרשאות ב-IAM מגדירות את הפעולות שמותרות במשאב מסוים, והן נאכפות ברמה Cloud de Confiance by S3NS , ומספקות גישה מרכזית ועקבית לניהול אבטחה. אלה כמה מתכונות האבטחה העיקריות של Cloud de Confiance by S3NS:
- אבטחה משולבת: BigQuery משתמש בתכונות האבטחה של Cloud de Confiance by S3NS. היא כוללת IAM לבקרת גישה פרטנית, לשילוב אבטחה חזק וחלק.
- אבטחה ברמת המשאב: ה-IAM מתמקד בבקרת גישה ברמת המשאב, ומעניק הרשאות למשתמשים ולקבוצות למשאבים ולשירותים שונים של BigQuery. הגישה הזו מאפשרת ניהול יעיל של הרשאות הגישה, כך שלמשתמשים יהיו רק ההרשאות הנדרשות לביצוע המשימות שלהם.
- אבטחת רשת: BigQuery נהנה מתכונות אבטחת הרשת החזקות של Cloud de Confiance by S3NS, כמו ענן וירטואלי פרטי וחיבורים פרטיים.
כשמבצעים העברה מ-Snowflake ל-BigQuery, צריך לשים לב לדרישות ההעברה הבאות שקשורות לאבטחה:
- הגדרת IAM: אתם צריכים להגדיר תפקידים והרשאות ב-IAM ב-BigQuery כך שיתאימו למדיניות בקרת הגישה הקיימת ב-Snowflake. התהליך כולל מיפוי של תפקידים ב-Snowflake לתפקידים והרשאות מתאימים של IAM ב-BigQuery.
- בקרת גישה מדויקת: אם אתם משתמשים באבטחה ברמת השורה או ברמת העמודה ב-Snowflake, תצטרכו להטמיע אמצעי בקרה מקבילים ב-BigQuery באמצעות תצוגות מורשות או תגי מדיניות.
- העברה של תצוגות ופונקציות UDF: כשמעבירים תצוגות ופונקציות UDF, צריך לוודא שאמצעי הבקרה המשויכים לאבטחה מתורגמים בצורה נכונה לתצוגות מורשות ולפונקציות UDF מורשות ב-BigQuery.
הצפנה
כברירת מחדל, BigQuery מצפין את הנתונים שלכם במצב מנוחה ובזמן העברה. אם אתם צריכים יותר שליטה במפתחות ההצפנה, BigQuery תומך במפתחות הצפנה בניהול הלקוח ב-Cloud Key Management Service. אפשר גם להשתמש בהצפנה ברמת העמודה.
כדי לשמור על אבטחת מידע במהלך מיגרציה ל-BigQuery ואחריה, כדאי לשים לב לנקודות הבאות:
- ניהול מפתחות: אם אתם צריכים מפתחות בניהול הלקוח, אתם צריכים ליצור אסטרטגיה לניהול מפתחות ב-Cloud Key Management Service ולהגדיר את BigQuery לשימוש במפתחות האלה.
- הסתרת נתונים או שימוש באסימונים: אם מדובר במידע אישי רגיש, צריך להעריך אם נדרשת הסתרת נתונים או שימוש באסימונים כדי להגן עליו.
- אבטחה ברמת השורה: הטמעת אבטחה ברמת השורה באמצעות תצוגות מורשות, מסנני אבטחה ברמת השורה או שיטות מתאימות אחרות.
- סריקת פגיעויות ובדיקות חדירה: מבצעים סריקות פגיעויות ובדיקות חדירה באופן קבוע כדי לבדוק את מצב האבטחה של סביבת BigQuery.
תפקידים
תפקידים הם הישויות שאפשר להעניק להן הרשאות לאובייקטים שניתן להגן עליהם, ואפשר גם לבטל את ההרשאות האלה.
ב-IAM, ההרשאות מקובצות לתפקידים. ב-IAM יש שלושה סוגי תפקידים:
- תפקידים בסיסיים: התפקידים האלה כוללים את התפקידים 'בעלים', 'עריכה' ו'צפייה'. אפשר להקצות את התפקידים האלה ברמת הפרויקט או ברמת משאב השירות באמצעותCloud de Confiance המסוף, Identity and Access Management API או
gcloud CLI. באופן כללי, כדי להשיג את רמת האבטחה הגבוהה ביותר, מומלץ להשתמש בתפקידים מוגדרים מראש כדי לפעול לפי העיקרון של הרשאות מינימליות. - תפקידים מוגדרים מראש: התפקידים האלה מספקים גישה פרטנית יותר לתכונות במוצר (כמו BigQuery) ומיועדים לתמוך בתרחישי שימוש נפוצים ובדפוסי בקרת גישה.
- תפקידים בהתאמה אישית: התפקידים האלה מורכבים מהרשאות שהמשתמשים מגדירים.
בקרת גישה
ב-Snowflake אפשר להקצות תפקידים לתפקידים אחרים, וכך ליצור היררכיה של תפקידים. מערכת IAM לא תומכת בהיררכיית תפקידים, אבל היא כן מיישמת היררכיית משאבים. היררכיית IAM כוללת את הרמה של הארגון, התיקייה, הפרויקט והמשאב. אפשר להגדיר תפקידי IAM בכל רמה בהיררכיה, והמשאבים יורשים את כל כללי המדיניות של משאבי ההורה שלהם.
BigQuery תומך בבקרת גישה ברמת הטבלה. ההרשאות ברמת הטבלה קובעות אילו משתמשים, קבוצות וחשבונות שירות יכולים לגשת לטבלה או לתצוגה. אתם יכולים לתת למשתמש גישה לטבלאות או לתצוגות ספציפיות בלי לתת לו גישה למערך הנתונים המלא.
כדי להגדיר גישה מפורטת יותר, אפשר גם להשתמש בבקרת גישה ברמת העמודה או באבטחה ברמת השורה. סוג הבקרה הזה מספק גישה פרטנית לעמודות עם נתונים רגישים באמצעות תגי מדיניות או סיווג נתונים מבוסס-סוג.
אפשר גם ליצור תצוגות מורשות כדי להגביל את הגישה לנתונים ולשלוט בגישה בצורה מדויקת יותר. כך משתמשים ספציפיים יכולים לשלוח שאילתות לתצוגה בלי שתהיה להם גישת קריאה לטבלאות הבסיסיות.
סוגי נתונים, מאפיינים ופורמטים של קבצים נתמכים
Snowflake ו-BigQuery תומכים ברוב אותם סוגי נתונים, אבל לפעמים הם משתמשים בשמות שונים. רשימה מלאה של סוגי הנתונים הנתמכים ב-Snowflake וב-BigQuery זמינה במאמר בנושא סוגי נתונים. אפשר גם להשתמש בכלי תרגום של SQL, כמו כלי SQL אינטראקטיבי לתרגום, SQL Translation API או כלי SQL לתרגום באצווה, כדי לתרגם ניבים שונים של SQL ל-GoogleSQL.
מידע נוסף על סוגי הנתונים הנתמכים ב-BigQuery זמין במאמר בנושא סוגי נתונים ב-GoogleSQL.
אפשר לייצא נתונים מ-Snowflake בפורמטים הבאים של קבצים. אפשר לטעון את הפורמטים הבאים ישירות ל-BigQuery:
- טעינת נתוני CSV מ-Cloud Storage.
- טעינת נתוני Parquet מ-Cloud Storage
- טעינת נתוני JSON מ-Cloud Storage
- שאילתת נתונים מ-Apache Iceberg.
כלים להעברה
בטבלה הבאה מפורטים הכלים שבהם אפשר להשתמש כדי להעביר נתונים מ-Snowflake ל-BigQuery. דוגמאות לאופן השימוש בכלים האלה יחד בצינור העברה של Snowflake מופיעות במאמר דוגמאות לצינור העברה של Snowflake.
- פקודת
COPY INTO <location>: משתמשים בפקודה הזו ב-Snowflake כדי לחלץ נתונים מטבלת Snowflake ישירות לקטגוריה של Cloud Storage ספציפית. דוגמה מקיפה זמינה במאמר Snowflake to BigQuery (snowflake2bq) ב-GitHub. - Apache Sqoop: כדי לחלץ נתונים מ-Snowflake ל-HDFS או ל-Cloud Storage, שולחים משימות Hadoop עם מנהל התקן JDBC מ-Sqoop ומ-Snowflake. Sqoop פועל בסביבה של Managed Service for Apache Spark.
- Snowflake JDBC: אפשר להשתמש במנהל ההתקן הזה עם רוב כלי הלקוח או האפליקציות שתומכים ב-JDBC.
אפשר להשתמש בכלים הגנריים הבאים כדי להעביר נתונים מ-Snowflake ל-BigQuery:
- מחבר שירות העברת הנתונים ל-BigQuery ל-Snowflake (גרסת Preview): ביצוע העברה אוטומטית של נתונים מ-Cloud Storage ל-BigQuery.
- Google Cloud CLI: כלי שורת הפקודה הזה מאפשר להעתיק קבצים שהורדו מ-Snowflake אל Cloud Storage.
- כלי שורת הפקודה bq: כלי שורת הפקודה הזה מאפשר לקיים אינטראקציה עם BigQuery. תרחישי שימוש נפוצים כוללים יצירת סכימות של טבלאות ב-BigQuery, טעינת נתונים מ-Cloud Storage לטבלאות והרצת שאילתות.
- ספריות הלקוח של Cloud Storage: העתקת קבצים שהורדו מ-Snowflake אל Cloud Storage באמצעות כלי בהתאמה אישית שמשתמש בספריות הלקוח של Cloud Storage.
- ספריות לקוח של BigQuery: אינטראקציה עם BigQuery באמצעות כלי בהתאמה אישית שנבנה על בסיס ספריית הלקוח של BigQuery.
- מתזמן השאילתות של BigQuery: אפשר לתזמן שאילתות SQL חוזרות באמצעות התכונה המובנית הזו של BigQuery.
- Managed Service for Apache Airflow: סביבת Apache Airflow מנוהלת במלואה ומאפשרת לתזמר משימות טעינה וטרנספורמציות ב-BigQuery.
מידע נוסף על טעינת נתונים ל-BigQuery זמין במאמר טעינת נתונים ל-BigQuery.
תמחור
כשמתכננים את המיגרציה מ-Snowflake, חשוב לקחת בחשבון את העלות של העברת נתונים, אחסון נתונים ושימוש בשירותים ב-BigQuery. מידע נוסף על תמחור
יכול להיות שיהיו עלויות על תעבורת נתונים יוצאת (egress) בהעברת נתונים מ-Snowflake או מ-AWS. יכול להיות שיהיו גם עלויות נוספות כשמעבירים נתונים בין אזורים או בין ספקי ענן שונים.
קדימה, מתחילים
בקטעים הבאים מפורט סיכום של תהליך ההעברה מ-Snowflake ל-BigQuery:
הפעלת הערכת העברה
בתהליך ההעברה מ-Snowflake ל-BigQuery, מומלץ להתחיל בהפעלת כלי ההערכה של BigQuery להעברה כדי להעריך את ההיתכנות והיתרונות הפוטנציאליים של העברת מחסן הנתונים מ-Snowflake ל-BigQuery. הכלי הזה מספק גישה מובנית להבנת סביבת Snowflake הנוכחית שלכם ולהערכת המאמץ הנדרש להשלמת ההעברה.
הפעלת כלי ההערכה של ההעברה ל-BigQuery יוצרת דוח הערכה שמכיל את הקטעים הבאים:
- דוח מערכת קיים: תמונת מצב של מערכת Snowflake הקיימת והשימוש בה, כולל מספר מסדי הנתונים, הסכימות, הטבלאות והגודל הכולל ב-TB. בנוסף, הוא מפרט את הסכימות לפי גודל ומצביע על ניצול משאבים לא אופטימלי, כמו טבלאות ללא פעולות כתיבה או עם מעט פעולות קריאה.
- הצעות לשינוי מצב יציב ב-BigQuery: מציגות איך המערכת תיראה ב-BigQuery אחרי ההעברה. הוא כולל הצעות לאופטימיזציה של עומסי עבודה ב-BigQuery ולמניעת בזבוז.
- תוכנית ההעברה: מספקת מידע על מאמץ ההעברה עצמו. לדוגמה, המעבר מהמערכת הקיימת למצב יציב ב-BigQuery. בקטע הזה מופיע מספר השאילתות שתורגמו באופן אוטומטי וזמן ההעברה הצפוי של כל טבלה ל-BigQuery.
מידע נוסף על תוצאות ההערכה של ההעברה זמין במאמר בדיקת הדוח ב-Data Studio.
אימות ההעברה
אחרי שמבצעים מיגרציה של הנתונים מ-Snowflake ל-BigQuery, מריצים את כלי אימות הנתונים (DVT) כדי לבצע אימות נתונים בנתונים החדשים שעברו מיגרציה ל-BigQuery. הכלי DVT מאמת פונקציות שונות, מרמת הטבלה ועד רמת השורה, כדי לוודא שהנתונים שהועברו פועלים כמצופה.