Redshift
מחבר Redshift מאפשר לכם לבצע פעולות של הוספה, מחיקה, עדכון וקריאה במסד נתונים של Redshift. אפשר גם להריץ שאילתות SQL מותאמות אישית על נתונים ב-Redshift.
לפני שמתחילים
לפני שמשתמשים במחבר Redshift, צריך לבצע את המשימות הבאות:
- בפרויקט שלכם ב-Google Cloud:
- מוודאים שהגדרתם חיבור לרשת. מידע על תבניות רשת זמין במאמר קישוריות לרשת.
- נותנים למשתמש שמגדיר את המחבר את תפקיד ה-IAM roles/connectors.admin.
- מקצים לחשבון השירות שרוצים להשתמש בו עבור המחבר את תפקידי ה-IAM הבאים:
roles/secretmanager.viewerroles/secretmanager.secretAccessor
חשבון שירות הוא סוג מיוחד של חשבון Google שמייצג משתמש לא אנושי, שצריך לאמת ולאשר כדי לתת לו גישה לנתונים ב-Google APIs. אם אין לכם חשבון שירות, אתם צריכים ליצור חשבון שירות. המחבר וחשבון השירות צריכים להיות שייכים לאותו פרויקט. מידע נוסף זמין במאמר בנושא יצירת חשבון שירות.
- מפעילים את השירותים הבאים:
-
secretmanager.googleapis.com(Secret Manager API) -
connectors.googleapis.com(Connectors API)
במאמר הפעלת שירותים מוסבר איך להפעיל שירותים.
-
אם השירותים או ההרשאות האלה לא הופעלו בפרויקט שלכם בעבר, תתבקשו להפעיל אותם כשאתם מגדירים את המחבר.
- כדי ליצור אשכול Redshift, אפשר לעיין במאמרים Quickstart with Redshift ו-Amazon Redshift cluster creation. מידע נוסף על יצירת מסד נתונים של Redshift זמין במאמר יצירת מסד נתונים של Redshift.
- כדי להגדיר מופע של Redshift, אפשר לעיין במאמר הגדרת Redshift. מידע נוסף על Redshift זמין במאמר סקירה כללית על פלטפורמת Redshift.
הגדרת המחבר
החיבור הוא ספציפי למקור נתונים. אם יש לכם הרבה מקורות נתונים, תצטרכו ליצור חיבור נפרד לכל אחד מהם. כדי ליצור קישור:
- במסוף Cloud, עוברים לדף Integration Connectors > Connections ובוחרים או יוצרים פרויקט בענן.
- לוחצים על + יצירת חיבור חדש כדי לפתוח את הדף יצירת חיבור.
- בקטע מיקום, בוחרים את המיקום של החיבור.
- אזור: בוחרים מיקום מהרשימה הנפתחת.
רשימה של כל האזורים הנתמכים מופיעה במאמר מיקומים.
- לוחצים על הבא.
- אזור: בוחרים מיקום מהרשימה הנפתחת.
- בקטע פרטי החיבור, ממלאים את הפרטים הבאים:
- מחבר: בוחרים באפשרות Redshift מהרשימה הנפתחת של המחברים הזמינים.
- גרסת כלי החיבור: בוחרים את גרסת כלי החיבור מהרשימה הנפתחת של הגרסאות הזמינות.
- בשדה Connection Name (שם החיבור), מזינים שם למופע החיבור.
השמות של החיבורים צריכים לעמוד בקריטריונים הבאים:
- שמות החיבורים יכולים לכלול אותיות, מספרים או מקפים.
- האותיות צריכות להיות קטנות.
- שמות החיבורים צריכים להתחיל באות ולהסתיים באות או במספר.
- שמות החיבורים לא יכולים לכלול יותר מ-49 תווים.
- אופציונלי: מזינים תיאור למופע החיבור.
- אופציונלי: מפעילים את Cloud Logging ואז בוחרים רמת יומן. כברירת מחדל, רמת היומן מוגדרת כ-
Error. - חשבון שירות: בוחרים חשבון שירות שיש לו את התפקידים הנדרשים.
- אופציונלי: מגדירים את ההגדרות של צומת החיבור:
- מספר מינימלי של צמתים: מזינים את המספר המינימלי של צמתי חיבור.
- מספר הצמתים המקסימלי: מזינים את מספר צמתי החיבור המקסימלי.
צומת הוא יחידה (או עותק) של חיבור שמבצעת עיבוד של עסקאות. כדי לעבד יותר עסקאות לחיבור נדרשים יותר צמתים, ולהפך: כדי לעבד פחות עסקאות נדרשים פחות צמתים. כדי להבין איך הצמתים משפיעים על התמחור של המחבר, אפשר לעיין במאמר בנושא תמחור של צמתי חיבור. אם לא מזינים ערכים, כברירת מחדל, מספר הצמתים המינימלי מוגדר כ-2 (לזמינות טובה יותר) ומספר הצמתים המקסימלי מוגדר כ-50.
- מסד נתונים: השם של מסד הנתונים ב-Amazon Redshift.
- Auto Create: מציינים true כדי ליצור משתמש במסד הנתונים עם השם שצוין עבור User אם משתמש כזה לא קיים בזמן ההתחברות עם פרטי כניסה של IAM. מידע נוסף מפורט ב-AuthScheme .
- Db Groups: רשימה מופרדת בפסיקים של השמות של קבוצות קיימות במסד הנתונים שאליהן משתמש מסד הנתונים מצטרף בסשן הנוכחי כשהוא מתחבר באמצעות אישורי IAM. מידע נוסף מפורט ב-AuthScheme .
- BrowsableSchemas: המאפיין הזה מגביל את הסכימות שמדווחות לקבוצת משנה של הסכימות הזמינות. לדוגמה, BrowsableSchemas=SchemaA,SchemaB,SchemaC.
- סכימות שהמערכת מתעלמת מהן: מסנן הגבלת חשיפה שמשמש להסתרת רשימת הסכימות באמצעות שאילתות מטא-נתונים. לדוגמה, 'information_schema, pg_catalog'. שמות הסכימות הם תלויי אותיות רישיות.
- Include Table Types: אם הערך מוגדר כ-true, הספק יבצע שאילתה לגבי הסוגים של טבלאות ותצוגות נפרדות.
- הסרת ערכי Null: אם ההגדרה הזו מופעלת, ערכי Null מוסרים מערכי תווים בפעולות בכמות גדולה.
- חשיפה: הגבלות חשיפה שמשמשות לסינון מטא-נתונים שנחשפים לטבלאות עם הרשאות שניתנו למשתמש הנוכחי. לדוגמה, המסנן 'SELECT,INSERT' מגביל את הנראות של המטא-נתונים רק לטבלאות שהמשתמש הנוכחי יכול לגשת אליהן לפעולות SELECT ו-INSERT. ערכי ההרשאות הנתמכים הם SELECT, INSERT, UPDATE, DELETE, REFERENCES.
- (אופציונלי) בקטע הגדרות מתקדמות, מסמנים את התיבה שימוש ב-proxy כדי להגדיר שרת proxy לחיבור, ומגדירים את הערכים הבאים:
-
סכימת אימות של שרת proxy: בוחרים את סוג האימות לאימות מול שרת ה-proxy. אלה סוגי האימות שנתמכים:
- בסיסי: אימות HTTP בסיסי.
- Digest: אימות HTTP מסוג Digest.
- משתמש proxy: שם משתמש שישמש לאימות בשרת ה-proxy.
- סיסמת ה-Proxy: הסוד במנהל הסודות של סיסמת המשתמש.
-
סוג ה-SSL של ה-Proxy: סוג ה-SSL שבו יש להשתמש כשמתחברים לשרת ה-Proxy. אלה סוגי האימות שנתמכים:
- אוטומטי: הגדרת ברירת המחדל. אם כתובת ה-URL היא כתובת HTTPS, נעשה שימוש באפשרות Tunnel. אם כתובת ה-URL היא כתובת HTTP, נעשה שימוש באפשרות NEVER.
- תמיד: החיבור תמיד מופעל באמצעות SSL.
- לעולם לא: החיבור לא מופעל באמצעות SSL.
- מנהור: החיבור הוא דרך שרת proxy למנהור. שרת ה-proxy פותח חיבור למארח המרוחק, והתנועה זורמת הלוך ושוב דרך ה-proxy.
- בקטע שרת Proxy, מזינים את פרטי שרת ה-Proxy.
- לוחצים על + הוספת יעד.
- בוחרים סוג יעד.
- כתובת המארח: מציינים את שם המארח או את כתובת ה-IP של היעד.
כדי ליצור חיבור פרטי למערכת העורפית, פועלים לפי השלבים הבאים:
- יוצרים קובץ מצורף לשירות PSC.
- יוצרים endpoint attachment ואז מזינים את הפרטים שלו בשדה Host address.
- כתובת המארח: מציינים את שם המארח או את כתובת ה-IP של היעד.
- אופציונלי: לוחצים על + הוספת תווית כדי להוסיף תווית לקישור בצורה של צמד מפתח/ערך.
- לוחצים על הבא.
- בקטע יעדים, מזינים את הפרטים של המארח המרוחק (מערכת העורף) שאליו רוצים להתחבר.
- סוג היעד: בוחרים סוג יעד.
- כדי לציין את שם המארח או את כתובת ה-IP של היעד, בוחרים באפשרות כתובת המארח ומזינים את הכתובת בשדה מארח 1.
- כדי ליצור חיבור פרטי, בוחרים באפשרות Endpoint attachment (צירוף נקודת קצה). ברשימה Endpoint Attachment, בוחרים את קובץ ה-Endpoint Attachment שנוצר עבור מערכת ה-Backend.
אם רוצים ליצור חיבור ציבורי למערכות העורפיות עם אבטחה נוספת, אפשר להגדיר כתובות IP סטטיות יוצאות לחיבורים, ואז להגדיר את כללי חומת האש כך שרק כתובות ה-IP הסטטיות הספציפיות יופיעו ברשימת ההיתרים.
כדי להזין יעדים נוספים, לוחצים על +הוספת יעד.
- לוחצים על הבא.
- סוג היעד: בוחרים סוג יעד.
-
בקטע אימות, מזינים את פרטי האימות.
- בוחרים סוג אימות ומזינים את הפרטים הרלוונטיים.
החיבור ל-Redshift תומך בסוגי האימות הבאים:
- שם משתמש וסיסמה
- לוחצים על הבא.
כדי להבין איך להגדיר את סוגי האימות האלה, אפשר לעיין במאמר בנושא הגדרת אימות.
- בוחרים סוג אימות ומזינים את הפרטים הרלוונטיים.
- בדיקה: בודקים את פרטי החיבור והאימות.
- לוחצים על יצירה.
הגדרת אימות
מזינים את הפרטים בהתאם לאימות שבו רוצים להשתמש.
-
שם משתמש וסיסמה
- שם משתמש: שם המשתמש של המחבר
- סיסמה: סוד ב-Secret Manager שמכיל את הסיסמה שמשויכת למחבר.
דוגמאות להגדרת חיבור
בקטע הזה מפורטים ערכי הדוגמה של השדות השונים שאתם מגדירים כשאתם יוצרים את החיבור ל-Redshift.
סוג החיבור לאימות בסיסי
בטבלה הבאה מפורטים ערכי הדוגמה של השדות השונים שאתם מגדירים כשאתם יוצרים את החיבור ל-Redshift.
| שדה | ערך לדוגמה |
|---|---|
| אזור | us-central1 |
| מחבר | Redshift Connector |
| גרסת המחבר | 1 |
| שם מחבר | google-cloud-redshiftdb-basicauth-conn |
| חשבון השירות | SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com |
| מסד נתונים | dev |
| BrowsableSchemas | public,test |
| קבוצות Db | לא זמין |
| הסרת ערכי Null | כן |
| הרשאות גישה | SELECT,INSERT |
| מספר הצמתים המינימלי | 02 |
| מספר הצמתים המקסימלי | 50 |
| כתובת המארח | redshift-cluster-xxx-integration.HOST_NAME.us-east-1.redshift.amazonaws.com |
| אימות | סיסמת משתמש |
| שם משתמש | שם משתמש |
| סיסמה | PASSWORD |
| גרסה | 1 |
ישויות, פעולות ופעולות
כל Integration Connectors מספקים שכבת הפשטה לאובייקטים של האפליקציה המחוברת. אפשר לגשת לאובייקטים של אפליקציה רק דרך ההפשטה הזו. ההפשטה מוצגת לכם כישויות, פעולות ופעולות.
- ישות: ישות היא אובייקט או אוסף של מאפיינים באפליקציה או בשירות המקושרים. ההגדרה של ישות משתנה ממחבר למחבר. לדוגמה, במחבר של מסד נתונים, הטבלאות הן הישויות, במחבר של שרת קבצים, התיקיות הן הישויות, ובמחבר של מערכת הודעות, התורים הם הישויות.
עם זאת, יכול להיות שמחבר לא תומך בישויות או שאין לו ישויות, ובמקרה כזה הרשימה
Entitiesתהיה ריקה. - פעולה: פעולה היא הפעילות שאפשר לבצע בישות. אפשר לבצע כל אחת מהפעולות הבאות בישות:
בחירה של ישות מתוך הרשימה הזמינה יוצרת רשימה של פעולות שזמינות לישות. תיאור מפורט של הפעולות זמין במאמר פעולות על ישויות של משימת המחברים. עם זאת, אם מחבר לא תומך באף אחת מהפעולות על ישויות, הפעולות הלא נתמכות האלה לא יופיעו ברשימה
Operations. - פעולה: פעולה היא פונקציה מסוג first class שזמינה לשילוב דרך ממשק המחבר. פעולה מאפשרת לבצע שינויים בישות אחת או בכמה ישויות, והיא משתנה ממתחם למתחם. בדרך כלל, לפעולה יהיו כמה פרמטרים של קלט ופרמטר של פלט. עם זאת, יכול להיות שמחבר לא תומך באף פעולה, ובמקרה כזה הרשימה
Actionsתהיה ריקה.
מגבלות המערכת
מחבר Redshift יכול לעבד 3 טרנזקציות בשנייה, לכל צומת, ומגביל את כל הטרנזקציות מעבר למגבלה הזו. כברירת מחדל, Integration Connectors מקצה 2 צמתים (לזמינות טובה יותר) לחיבור.
מידע על המגבלות שחלות על Integration Connectors זמין במאמר מגבלות.
דוגמאות לפעולות
דוגמה – חיפוש הערך הגדול יותר
בדוגמה הזו מוסבר איך להפעיל פונקציה בהגדרת המשתמש. הפונקציה find_greater
בדוגמה הזו משווה בין שני מספרים שלמים ומחזירה את המספר השלם הגדול יותר.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלActions. - בוחרים את הפעולה
find_greaterולוחצים על סיום. - בקטע Task Input (קלט המשימה) של המשימה Connectors (מחברים), לוחצים על
connectorInputPayloadואז מזינים ערך דומה לערך הבא בשדהDefault Value:{ "$1": 1.0, "$2": 5.0 }
אם הפעלת הפעולה תסתיים בהצלחה, הערך של השדה connectorOutputPayload במשימת המחבר יהיה דומה לערך הבא:
[{ "bignum": 5.0 }]
דוגמאות לפעולות על ישויות
דוגמה – רשימת רשומות של ישות
בדוגמה הזו מוצגת רשימת הרשומות של הישות Users.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלEntities. - בוחרים באפשרות
UsersמהרשימהEntity. - בוחרים את הפעולה
Listולוחצים על סיום. - בקטע Task Input (קלט למשימה) של המשימה Connectors (מחברים), אפשר להגדיר את filterClause (סעיף מסנן) בהתאם לדרישות.
לדוגמה, אם מגדירים את סעיף המסנן ל-
employeeCode='5100' and startDate='2010-01-01 00:00:00', מוצגים רק הרשומות שבהן employeeCode הוא 5100 ו-startDate הוא 2010-01-01 00:00:00.
דוגמה – שליפת רשומה אחת מישות
בדוגמה הזו מאחזרים רשומה מהישות Users.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלEntities. - בוחרים באפשרות
UserמהרשימהEntity. - בוחרים את הפעולה
Getולוחצים על סיום. - בקטע Task Input (קלט של משימה) במשימה Connectors (מחברים), לוחצים על entityId ואז מזינים
103032בשדה Default Value (ערך ברירת מחדל).כאן,
103032הוא ערך המפתח הראשי של הישותUsers.
דוגמה – מחיקת רשומה מישות
בדוגמה הזו נמחקת רשומה מהישות Users.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלEntities. - בוחרים באפשרות
UsersמהרשימהEntity. - בוחרים את הפעולה
Deleteולוחצים על סיום. - בקטע Task Input (קלט של משימה) במשימה Connectors (מחברים), לוחצים על entityId ואז מזינים
113132בשדה Default Value (ערך ברירת מחדל).לחלופין, אם לישות יש מפתחות ראשיים מורכבים, במקום לציין את entityId, אפשר להגדיר את filterClause. לדוגמה,
employeeCode='5100' and startDate='2010-01-01 00:00:00'.
דוגמה – יצירת רשומה בישות
בדוגמה הזו נוצרת רשומה בישות Users.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלEntities. - בוחרים באפשרות
UsersמהרשימהEntity. - בוחרים את הפעולה
Createולוחצים על סיום. - בקטע Task Input (קלט המשימה) של המשימה Connectors (מחברים), לוחצים על
connectorInputPayloadומזינים ערך דומה לערך הבא בשדהDefault Value:{ "employeeCode": "5100", "startDate": "2010-01-01 00:00:00.0", "country": "US" }
אם השילוב יצליח, השדה connectorOutputPayload של משימת המחבר יכיל את התגובה של פעולת היצירה.
דוגמה – עדכון רשומה בישות
בדוגמה הזו מעדכנים רשומה בישות Users.
- בתיבת הדו-שיח
Configure connector task, לוחצים עלEntities. - בוחרים באפשרות
UsersמהרשימהEntity. - בוחרים את הפעולה
Updateולוחצים על סיום. - בקטע Task Input (קלט המשימה) של המשימה Connectors (מחברים), לוחצים על
connectorInputPayloadומזינים ערך דומה לערך הבא בשדהDefault Value:{ "country": "IN" }
- בקטע Task Input (קלט של משימה) במשימה Connectors (מחברים), לוחצים על entityId ואז מזינים
113132בשדה Default Value (ערך ברירת מחדל).לחלופין, אם לישות יש מפתחות ראשיים מורכבים, במקום לציין את entityId, אפשר להגדיר את filterClause. לדוגמה,
employeeCode='5100' and startDate='2010-01-01 00:00:00'.
אם השילוב יצליח, בשדה connectorOutputPayload של משימת המחבר תופיע התגובה של פעולת העדכון.
יצירת חיבורים באמצעות Terraform
אפשר להשתמש במשאב של Terraform כדי ליצור חיבור חדש.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
כדי לראות תבנית לדוגמה של Terraform ליצירת חיבור, אפשר לעיין בתבנית לדוגמה.
כשיוצרים את החיבור הזה באמצעות Terraform, צריך להגדיר את המשתנים הבאים בקובץ ההגדרות של Terraform:
| שם הפרמטר | סוג נתונים | חובה | תיאור |
|---|---|---|---|
| מסד נתונים | מחרוזת | נכון | השם של מסד הנתונים ב-Amazon Redshift. |
| browsable_schemas | מחרוזת | לא נכון | המאפיין הזה מגביל את הסכימות שמדווחות לקבוצת משנה של הסכימות הזמינות. לדוגמה, BrowsableSchemas=SchemaA,SchemaB,SchemaC. |
| db_groups | מחרוזת | לא נכון | רשימה מופרדת בפסיקים של השמות של קבוצה אחת או יותר של מסדי נתונים קיימים שהמשתמש במסד הנתונים מצטרף אליהם בסשן הנוכחי כשהוא מתחבר באמצעות פרטי כניסה ל-IAM. מידע נוסף מפורט ב-AuthScheme . |
| ignored_schemas | מחרוזת | לא נכון | מסנן הגבלת חשיפה שמשמש להסתרת רשימת הסכימות באמצעות שאילתות מטא-נתונים. לדוגמה, 'information_schema, pg_catalog'. שמות הסכימות הם תלויי אותיות רישיות. |
| include_table_types | בוליאני | לא נכון | אם המדיניות מוגדרת כ-true, הספק יבצע שאילתה לגבי הסוגים של טבלאות ותצוגות בודדות. |
| strip_out_nulls | בוליאני | לא נכון | כשמגדירים את התווים האלה, הם מוסרים מערכי התווים בפעולות גורפות. |
| visibility | מחרוזת | לא נכון | הגבלות הגישה משמשות לסינון המטא-נתונים שנחשפים לגבי טבלאות שהוענקו להן הרשאות עבור המשתמש הנוכחי. לדוגמה, המסנן 'SELECT,INSERT' מגביל את הנראות של המטא-נתונים רק לטבלאות שהמשתמש הנוכחי יכול לגשת אליהן לפעולות SELECT ו-INSERT. ערכי ההרשאות הנתמכים הם SELECT, INSERT, UPDATE, DELETE, REFERENCES. |
שימוש בחיבור Redshift בשילוב
אחרי שיוצרים את החיבור, הוא זמין גם ב-Apigee Integration וגם ב-Application Integration. אפשר להשתמש בחיבור בשילוב באמצעות המשימה Connectors.
- כדי להבין איך ליצור ולהשתמש במשימה Connectors ב-Apigee Integration, אפשר לעיין במאמר משימת Connectors.
- מידע על יצירה ושימוש במשימת מחברים ב-Application Integration זמין במאמר משימת מחברים.