העברה מ-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.

תכונות האבטחה של BigQuery

כשמבצעים מיגרציה מ-Snowflake ל-BigQuery, חשוב להבין איךGoogle Cloud מטפל באבטחה באופן שונה מ-Snowflake.

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

  • אבטחה משולבת: BigQuery משתמש בתכונות האבטחה של Google Cloud. השילוב כולל IAM לבקרת גישה פרטנית, כדי להבטיח שילוב אבטחה חזק וחלק.
  • אבטחה ברמת המשאב: ה-IAM מתמקד בבקרת גישה ברמת המשאב, ומעניק הרשאות למשתמשים ולקבוצות למשאבים ולשירותים שונים של BigQuery. הגישה הזו מאפשרת לנהל את הרשאות הגישה בצורה יעילה, כך שלמשתמשים יהיו רק ההרשאות שדרושות להם כדי לבצע את המשימות שלהם.
  • אבטחת רשת: ‏BigQuery נהנה מתכונות אבטחת הרשת החזקות של Google Cloud, כמו ענן וירטואלי פרטי וחיבורים פרטיים.

כשמבצעים מיגרציה מ-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 יש שלושה סוגי תפקידים:

  • תפקידים בסיסיים: התפקידים האלה כוללים את התפקידים 'בעלים', 'עריכה' ו'צפייה'. אפשר להקצות את התפקידים האלה ברמת הפרויקט או ברמת משאב השירות באמצעותGoogle Cloud המסוף, Identity and Access Management API או gcloud CLI. באופן כללי, כדי להשיג את רמת האבטחה הגבוהה ביותר, מומלץ להשתמש בתפקידים מוגדרים מראש כדי לפעול לפי העיקרון של הרשאות מינימליות.
  • תפקידים מוגדרים מראש: התפקידים האלה מספקים גישה פרטנית יותר לתכונות במוצר (כמו BigQuery) ומיועדים לתמוך בתרחישי שימוש נפוצים ובדפוסי בקרת גישה.
  • תפקידים בהתאמה אישית: התפקידים האלה מורכבים מהרשאות שהמשתמשים מגדירים.

בקרת גישה

ב-Snowflake אפשר להעניק תפקידים לתפקידים אחרים, וכך ליצור היררכיה של תפקידים. ב-IAM אין תמיכה בהיררכיית תפקידים, אבל יש תמיכה בהיררכיית משאבים. היררכיית ה-IAM כוללת את הרמות הבאות: ארגון, תיקייה, פרויקט ומשאב. אפשר להגדיר תפקידי IAM בכל רמה בהיררכיה, והמשאבים יורשים את כל כללי המדיניות של משאבי האב שלהם.

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

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

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

העברה של תכונות אחרות של Snowflake

כדאי להביא בחשבון את התכונות הבאות של Snowflake כשמתכננים את המעבר ל-BigQuery. במקרים מסוימים, אפשר להשתמש בשירותים אחרים של Google Cloud כדי להשלים את ההעברה.

סוגי נתונים, מאפיינים ופורמטים של קבצים נתמכים

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

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

אפשר לייצא נתונים מ-Snowflake בפורמטים הבאים של קבצים. אפשר לטעון את הפורמטים הבאים ישירות ל-BigQuery:

כלים למיגרציה

ברשימה הבאה מתוארים הכלים שבהם אפשר להשתמש כדי להעביר נתונים מ-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 פועל בסביבת Dataproc.
  • Snowflake JDBC: אפשר להשתמש בדрайвер הזה עם רוב כלי הלקוח או האפליקציות שתומכים ב-JDBC.

אפשר להשתמש בכלים הגנריים הבאים כדי להעביר נתונים מ-Snowflake ל-BigQuery:

  • מחבר שירות העברת הנתונים ל-BigQuery ל-Snowflake (גרסת Preview): ביצוע העברה אוטומטית של נתונים מ-Cloud Storage ל-BigQuery.
  • Google Cloud CLI: אפשר להשתמש בכלי שורת הפקודה הזה כדי להעתיק קבצים שהורדו מ-Snowflake אל Cloud Storage.
  • כלי שורת הפקודה של BigQuery: כלי שורת הפקודה הזה מאפשר לקיים אינטראקציה עם BigQuery. תרחישי שימוש נפוצים כוללים יצירת סכימות של טבלאות ב-BigQuery, טעינת נתונים מ-Cloud Storage לטבלאות והרצת שאילתות.
  • ספריות הלקוח של Cloud Storage: העתקת קבצים שהורדו מ-Snowflake אל Cloud Storage באמצעות כלי בהתאמה אישית שמשתמש בספריות הלקוח של Cloud Storage.
  • ספריות לקוח של BigQuery: אינטראקציה עם BigQuery באמצעות כלי בהתאמה אישית שנבנה על בסיס ספריית הלקוח של BigQuery.
  • מתזמן השאילתות של BigQuery: אפשר לתזמן שאילתות SQL חוזרות באמצעות התכונה המובנית הזו של BigQuery.
  • Cloud Composer: סביבת 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.

מידע נוסף על תוצאות ההערכה של ההעברה זמין במאמר בדיקת הדוח ב-Looker Studio.

אימות ההעברה

אחרי שמבצעים מיגרציה של הנתונים מ-Snowflake ל-BigQuery, מריצים את כלי אימות הנתונים (DVT) כדי לבצע אימות נתונים בנתונים החדשים שעברו מיגרציה ל-BigQuery. הכלי DVT מאמת פונקציות שונות, מרמת הטבלה ועד רמת השורה, כדי לוודא שהנתונים שהועברו פועלים כמצופה.