העברת נתונים מ-Amazon Redshift באמצעות רשת VPC
במאמר הזה נסביר איך להעביר נתונים מ-Amazon Redshift ל-BigQuery באמצעות VPC.
אם יש לכם מופע פרטי של Amazon Redshift ב-AWS, אתם יכולים להעביר את הנתונים האלה ל-BigQuery על ידי יצירה של רשת ענן וירטואלי פרטי (VPC) וקישור שלה לרשת ה-VPC של Amazon Redshift. תהליך העברת הנתונים פועל באופן הבא:
- יוצרים רשת VPC בפרויקט שרוצים להשתמש בו להעברה. רשת ה-VPC לא יכולה להיות רשת VPC משותפת.
- מגדירים רשת וירטואלית פרטית (VPN) ומקשרים בין רשת ה-VPC של הפרויקט לבין רשת ה-VPC של Amazon Redshift.
- כשמגדירים את ההעברה, מציינים את רשת ה-VPC של הפרויקט ואת טווח כתובות ה-IP השמורות.
- שירות העברת הנתונים ל-BigQuery יוצר פרויקט דייר ומצרף אותו לפרויקט שבו אתם משתמשים להעברה.
- שירות העברת הנתונים ל-BigQuery יוצר רשת VPC עם רשת משנה אחת בפרויקט הדייר, באמצעות טווח כתובות ה-IP השמור שציינתם.
- שירות העברת הנתונים ל-BigQuery יוצר קישור בין רשתות VPC שכנות (peering) בין רשת ה-VPC של הפרויקט לבין רשת ה-VPC של פרויקט הדייר.
- המיגרציה של שירות העברת הנתונים ל-BigQuery מתבצעת בפרויקט הדייר. הוא מפעיל פעולת פריקה מ-Amazon Redshift לאזור זמני בקטגוריה ב-Amazon S3. מהירות ההעלאה נקבעת לפי הגדרות האשכול.
- המיגרציה באמצעות שירות העברת הנתונים ל-BigQuery מעבירה את הנתונים מ-Amazon S3 bucket ל-BigQuery.
אם רוצים להעביר נתונים ממופע Amazon Redshift באמצעות כתובות IP ציבוריות, אפשר להעביר את נתוני Amazon Redshift ל-BigQuery באמצעות ההוראות האלה.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and BigQuery Data Transfer Service APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the BigQuery and BigQuery Data Transfer Service APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
הגדרת ההרשאות הנדרשות
לפני שיוצרים העברה של Amazon Redshift, צריך לבצע את השלבים הבאים:
צריך לוודא שלמשתמש שיוצר את ההעברה יש את ההרשאות הנדרשות הבאות לניהול זהויות והרשאות גישה (IAM) ב-BigQuery:
bigquery.transfers.updateהרשאות ליצירת ההעברה- הרשאות
bigquery.datasets.updateבמערך הנתונים של היעד
התפקיד המוגדר מראש
role/bigquery.adminב-IAM כולל את ההרשאותbigquery.transfers.updateו-bigquery.datasets.update. מידע נוסף על תפקידי IAM בשירות העברת נתונים ל-BigQuery זמין במאמר בקרת גישה.כדאי לעיין במסמכי התיעוד של Amazon S3 כדי לוודא שהגדרתם את כל ההרשאות שנדרשות להפעלת ההעברה. לפחות, צריך להחיל על נתוני המקור ב-Amazon S3 את המדיניות המנוהלת של AWS
AmazonS3ReadOnlyAccess.מעניקים את הרשאות ה-IAM המתאימות ליצירה ולמחיקה של קישור בין רשתות שכנות ב-VPC לאדם שמגדיר את ההעברה. השירות משתמש בפרטי הכניסה של המשתמש Google Cloud כדי ליצור את חיבור ה-VPC Peering.
- הרשאות ליצירת שיוך בין רשתות VPC:
compute.networks.addPeering - הרשאות למחיקת VPC Peering:
compute.networks.removePeering
תפקידי ה-IAM המוגדרים מראש
roles/project.owner, roles/project.editorו-roles/compute.networkAdminכוללים כברירת מחדל את ההרשאותcompute.networks.addPeeringו-compute.networks.removePeering.- הרשאות ליצירת שיוך בין רשתות VPC:
יצירת מערך נתונים
יוצרים מערך נתונים ב-BigQuery לאחסון הנתונים. אין צורך ליצור טבלאות.
הענקת גישה לאשכול Amazon Redshift
מוסיפים לרשימת ההיתרים את טווחי כתובות ה-IP הבאים של אשכול Amazon Redshift הפרטי על ידי הגדרת הכללים של קבוצת האבטחה. בשלב מאוחר יותר, מגדירים את טווח כתובות ה-IP הפרטי ברשת ה-VPC הזו כשמגדירים את ההעברה.
הענקת גישה לקטגוריית Amazon S3
כדי להעביר את הנתונים מ-Amazon Redshift ל-BigQuery, צריך להשתמש בקטגוריית Amazon S3 כשטח אחסון זמני. הוראות מפורטות זמינות במסמכי התיעוד של Amazon.
מומלץ ליצור משתמש ייעודי ב-Amazon IAM ולהעניק למשתמש הזה הרשאת קריאה בלבד ל-Amazon Redshift והרשאת קריאה וכתיבה ל-Amazon S3. כדי לבצע את השלב הזה, אפשר להחיל את המדיניות הבאה:

יוצרים זוג מפתחות גישה למשתמש IAM ב-Amazon.
הגדרת בקרת עומס עבודה עם תור העברה נפרד
אופציונלי, אתם יכולים להגדיר תור של Amazon Redshift למטרות מיגרציה כדי להגביל את המשאבים שמשמשים למיגרציה ולהפריד ביניהם. אתם יכולים להגדיר את תור ההעברה הזה עם מספר מקסימלי של שאילתות מקבילות. לאחר מכן תוכלו לשייך קבוצת משתמשים מסוימת להעברה לתור ולהשתמש בפרטי הכניסה האלה כשמגדירים את ההעברה כדי להעביר נתונים ל-BigQuery. לשירות ההעברה יש גישה רק לתור ההעברה.
איסוף פרטי ההעברה
כדי להגדיר את ההעברה באמצעות שירות העברת הנתונים ל-BigQuery, צריך לאסוף את המידע הבא:
- מקבלים את ה-VPC ואת טווח כתובות ה-IP השמור ב-Amazon Redshift.
- כדי לקבל את כתובת ה-URL של JDBC, פועלים לפי ההוראות האלה .
- מקבלים את שם המשתמש והסיסמה של משתמש עם הרשאות מתאימות למסד הנתונים שלכם ב-Amazon Redshift.
- פועלים לפי ההוראות במאמר Grant access to your Amazon S3 bucket (מתן גישה לקטגוריית Amazon S3) כדי לקבל צמד מפתחות גישה של AWS.
- מקבלים את ה-URI של קטגוריית Amazon S3 שרוצים להשתמש בה להעברה. כדי להימנע מחיובים מיותרים, מומלץ להגדיר מדיניות מחזור חיים לדלי הזה. זמן התפוגה המומלץ הוא 24 שעות, כדי לאפשר מספיק זמן להעברת כל הנתונים ל-BigQuery.
בדיקת הנתונים
במסגרת העברת הנתונים, שירות העברת הנתונים ל-BigQuery כותב נתונים מ-Amazon Redshift ל-Cloud Storage כקובצי CSV. אם הקבצים האלה מכילים את התו ASCII 0, אי אפשר לטעון אותם ל-BigQuery. מומלץ לבדוק את הנתונים כדי להבין אם הבעיה הזו רלוונטית לכם. אם כן, אפשר לעקוף את הבעיה על ידי ייצוא הנתונים ל-Amazon S3 כקובצי Parquet, ואז לייבא את הקבצים האלה באמצעות שירות העברת הנתונים ל-BigQuery. מידע נוסף זמין במאמר סקירה כללית של העברות מ-Amazon S3.
הגדרה של רשת ה-VPC וה-VPN
מוודאים שיש לכם הרשאות להפעלת VPC peering. מידע נוסף זמין במאמר בנושא הגדרת הרשאות נדרשות.
פועלים לפי ההוראות במדריך הזה כדי להגדיר רשת VPC, להגדיר VPN בין רשת ה-VPC שלGoogle Cloud הפרויקט שלכם לבין רשת ה-VPC של Amazon Redshift, ולהפעיל קישור בין רשתות VPC שכנות (peering). Google Cloud
מגדירים את Amazon Redshift כך שתהיה אפשרות להתחבר ל-VPN. מידע נוסף זמין במאמר קבוצות אבטחה של אשכול Amazon Redshift.
ב Google Cloud מסוף, עוברים לדף VPC networks כדי לוודא שרשת ה-Google Cloud VPC קיימת ב Google Cloud פרויקט ומחוברת ל-Amazon Redshift דרך ה-VPN.
בדף המסוף מפורטות כל רשתות ה-VPC.
פרסום כתובות IP שמורות כנתיבים מותאמים אישית
כשמספקים את טווח כתובות ה-IP השמורות בהגדרת ההעברה, צריך קודם להוסיף את טווח כתובות ה-IP כנתיב מותאם אישית לפרסום של Cloud Router או של סשן BGP קיים.
הגדרת העברה של Amazon Redshift
כדי להגדיר העברה של Amazon Redshift:
במסוף Google Cloud , עוברים לדף BigQuery.
לוחצים על העברות נתונים.
לוחצים על יצירת העברה.
בקטע סוג המקור, בוחרים באפשרות העברה: Amazon Redshift מהרשימה מקור.
בקטע Transfer config name (שם הגדרת ההעברה), מזינים שם להעברה, כמו
My migration, בשדה Display name (שם מוצג). השם המוצג יכול להיות כל ערך שיעזור לכם לזהות בקלות את ההעברה אם תצטרכו לשנות אותה בהמשך.בקטע הגדרות יעד, בוחרים את מערך הנתונים שיצרתם מתוך הרשימה מערך נתונים.
בקטע Data source details (פרטים של מקור הנתונים), מבצעים את הפעולות הבאות:
- בקטע JDBC connection url for Amazon Redshift (כתובת אתר של חיבור JDBC ל-Amazon Redshift), מציינים את כתובת ה-JDBC כדי לגשת לאשכול Amazon Redshift.
- בשדה שם המשתמש של מסד הנתונים, מזינים את שם המשתמש של מסד הנתונים ב-Amazon Redshift שרוצים להעביר.
בשדה סיסמה של מסד הנתונים, מזינים את הסיסמה של מסד הנתונים.
בקטעים מזהה מפתח גישה ומפתח גישה סודי, מזינים את זוג מפתחות הגישה שקיבלתם מתוך מתן גישה לקטגוריית S3.
בשדה Amazon S3 URI, מזינים את ה-URI של קטגוריית S3 שבה רוצים להשתמש כאזור זמני.
בשדה Amazon Redshift Schema (סכימת Amazon Redshift), מזינים את סכימת Amazon Redshift שרוצים להעביר.
בקטע Table name patterns (תבניות של שמות טבלאות), מציינים שם או תבנית להתאמה של שמות הטבלאות בסכימה. אפשר להשתמש בביטויים רגולריים כדי לציין את התבנית בפורמט:
<table1Regex>;<table2Regex>. הדפוס צריך להתאים לתחביר של ביטויים רגולריים ב-Java. לדוגמה:-
lineitem;ordertbתואם לטבלאות שנקראותlineitemו-ordertb. -
.*matches all tables.
כדי להעביר את כל הטבלאות מהסכימה שצוינה, צריך להשאיר את השדה הזה ריק.
-
בקטע VPC וטווח כתובות ה-IP השמורות, מציינים את השם של רשת ה-VPC ואת טווח כתובות ה-IP הפרטיות שבהן רוצים להשתמש ברשת ה-VPC של פרויקט הדייר. מציינים את טווח כתובות ה-IP כבלוק CIDR.
- קודם צריך לפרסם את כתובות ה-IP כנתיב מותאם אישית. מידע נוסף מופיע במאמר בנושא פרסום של כתובות IP שמורות כנתיבים מותאמים אישית.
- הטופס הוא
VPC_network_name:CIDR, לדוגמה:my_vpc:10.251.1.0/24. - משתמשים בטווחי כתובות רגילים של רשת VPC פרטית בסימון CIDR, החל מ-
10.x.x.x. - טווח כתובות ה-IP צריך לכלול יותר מ-10 כתובות IP.
- טווח כתובות ה-IP לא יכול לחפוף לאף רשת משנה ברשת ה-VPC של הפרויקט או ברשת ה-VPC של Amazon Redshift.
- אם הגדרתם כמה העברות לאותו מופע של Amazon Redshift, הקפידו להשתמש באותו ערך
VPC_network_name:CIDRבכל אחת מהן, כדי שכמה העברות יוכלו להשתמש מחדש באותה תשתית של העברה.
אופציונלי: בקטע אפשרויות התראות, מבצעים את הפעולות הבאות:
לוחצים על Save.
במסוף מוצגים כל פרטי ההגדרה של ההעברה, כולל שם המשאב של ההעברה. Google Cloud
מכסות ומגבלות
העברה של מכונה פרטית של Amazon Redshift עם רשת VPC מריצה את סוכן ההעברה בתשתית של דייר יחיד. בגלל מגבלות על משאבי מחשוב, מותר להפעיל לכל היותר 5 העברות בו-זמנית.
ב-BigQuery יש מכסת טעינה של 15TB לכל משימת טעינה לכל טבלה. מערכת Amazon Redshift דוחסת את נתוני הטבלה באופן פנימי, ולכן גודל הטבלה המיוצאת יהיה גדול יותר מגודל הטבלה שמדווח על ידי Amazon Redshift. אם אתם מתכננים לבצע מיגרציה של טבלה בגודל של יותר מ-15TB, עליכם לפנות קודם אל Cloud Customer Care.
השימוש בשירות הזה עלול לגרום לחיובים מחוץ ל-Google. פרטים נוספים מופיעים בדפי התמחור של Amazon Redshift ושל Amazon S3.
בגלל מודל העקביות של Amazon S3, יכול להיות שחלק מהקבצים לא ייכללו בהעברה ל-BigQuery.
המאמרים הבאים
- מידע על העברות רגילות של Amazon Redshift
- מידע נוסף על שירות העברת נתונים ל-BigQuery
- העברת קוד SQL באמצעות תרגום SQL באצווה.