באמצעות Datastream API אפשר ליצור ולנהל באופן פרוגרמטי פרופילי חיבור שמאחסנים את פרטי האימות והקישוריות של המקורות והיעדים. אפשר לבצע קריאות ל-API בארכיטקטורת REST או להשתמש ב-Google Cloud CLI. לדוגמה, אתם יכולים ליצור פרופילים למקורות של Oracle, MySQL, PostgreSQL, SQL Server, Salesforce ו-MongoDB, וליעדים של BigQuery ו-Cloud Storage.
אפשר גם לאחזר, להציג, לעדכן או למחוק פרופילי חיבור, ולגלות את המבנה של מסד נתונים במקור. לפרטים על הפקודות, ראו gcloud datastream
connection-profiles.
במאמר שימוש בממשקי Datastream API מופיע מדריך מפורט.
יצירת פרופיל חיבור למסד נתונים של Oracle במקור
הקוד הבא מראה בקשה ליצירת פרופיל חיבור למסד נתונים של Oracle באמצעות סוד ושיטת הקישוריות של רשימת היתרים של כתובות IP.
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "[connection-profile-display-name]", "oracleProfile": { "hostname": "HOST_ID_ADDRESS", "port": PORT, "username": "USERNAME", "databaseService": "DATABASE", "secretManagerStoredPassword": "SECRET_MANAGER_RESOURCE" }, "staticServiceIpConnectivity": {} }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=myOracleCP { "displayName": "my Oracle database", "oracleProfile": { "hostname": "1.2.3.4", "port": 1521, "username": "admin", "databaseService": "ORCL", "secretManagerStoredPassword": "projects/myProjectId/secrets/mySecret/versions/latest" }, "staticServiceIpConnectivity": {} }
הקוד הבא מציג בקשה ליצירת פרופיל חיבור למסד נתונים של Oracle, ומציין את שיטת הקישוריות כקישוריות פרטית (VPC peering).
השיטה הזו יוצרת קישוריות מאובטחת בין Datastream לבין מסד הנתונים של המקור (באופן פנימי ב- Google Cloud, או עם מקורות חיצוניים שמחוברים דרך VPN או Interconnect). התקשורת הזו מתבצעת דרך חיבור VPC Peering.
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "[connection-profile-display-name]", "oracleProfile": { "hostname": "HOST_ID_ADDRESS", "port": PORT, "username": "USERNAME", "password": "PASSWORD", "databaseService": "DATABASE" }, "privateConnectivity": { "privateConnection": "projects/PROJECT_ID/locations/ LOCATION/privateConnections/[private-connectivity-configuration-id]" } }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=myOracleVPCPeeringCP { "displayName": "my Oracle database", "oracleProfile": { "hostname": "1.2.3.4", "port": 1521, "username": "admin", "password": "12345", "databaseService": "ORCL", }, "privateConnectivity": { "privateConnection": "projects/myProjectId/locations/us-central1/ privateConnections/myPrivateConnection" } }
אחרי שיוצרים את פרופיל החיבור, אפשר להציג מידע עליו באמצעות קריאה ל-method connectionProfiles/get. הפלט שמופיע אמור להיראות כך:
{ "name": "projects/projectId/location/us-central1/connectionProfiles/myOracleVPCPeeringCP", "createTime": "2019-12-22T16:17:37.159786963Z", "updateTime": "2019-12-22T16:17:37.159786963Z", "displayName": "my Oracle database", "oracleProfile": { "hostname": "1.2.3.4", "port": 1521, "databaseService": "ORCL", "username": "admin" }, "privateConnectivity": { "privateConnection": "projects/myProjectId/locations/us-central1/ privateConnections/myPrivateConnection" } }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופיל חיבור למסד נתונים של Oracle, זמין במסמכי התיעוד של Google Cloud SDK.
יצירת פרופיל חיבור למסד נתונים של MySQL במקור
הקוד הבא מציג בקשה ליצירת פרופיל חיבור למסד נתונים של MySQL, ומציין את שיטת הקישוריות כשימוש בכתובות IP סטטיות (רשימת היתרים של כתובות IP).
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "[connection-profile-display-name]", "mysqlProfile": { "hostname": "HOST_ID_ADDRESS", "port": PORT, "username": "USERNAME", "password": "PASSWORD" }, "staticServiceIpConnectivity": {} }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=mysql-cp { "displayName": "my MySQL database", "mysqlProfile": { "hostname": "1.2.3.4", "port": 3306, "username": "root", "password": "12345" }, "staticServiceIpConnectivity": {} }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופיל חיבור למסד נתונים של MySQL כמקור זמין במסמכי התיעוד של Google Cloud SDK.
יצירת פרופיל חיבור למסד נתונים של PostgreSQL במקור
הקוד הבא מציג בקשה ליצירת פרופיל חיבור למסד נתונים של PostgreSQL.
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "[connection-profile-display-name]", "postgresqlProfile": { "hostname": "HOST_ID_ADDRESS", "port": PORT, "username": "USERNAME", "password": "PASSWORD", "database": "DATABASE" }, "staticServiceIpConnectivity": {} }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=postgres-cp { "displayName": "my PostgreSQL database", "postgresqlProfile": { "hostname": "1.2.3.4", "database": "postgres", "port": 5432, "username": "root", "password": "12345" }, "staticServiceIpConnectivity": {} }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופילי חיבור זמין במסמכי התיעוד של Google Cloud SDK.
יצירת פרופיל חיבור למסד נתונים של SQL Server במקור
הקוד הבא מציג בקשה ליצירת פרופיל קישוריות למסד נתונים של SQL Server, ומציין את שיטת הקישוריות באמצעות כתובות IP סטטיות (רשימת היתרים של כתובות IP).
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "[connection-profile-display-name]", "sqlserverProfile": { "hostname": "HOST_ID_ADDRESS", "port": PORT, "username": "USERNAME", "password": "PASSWORD", "database": "DATABASE" }, "staticServiceIpConnectivity": {} }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=sqlserver-cp { "displayName": "my SQL Server database", "sqlserverProfile": { "hostname": "1.2.3.4", "port": 1433, "username": "root", "password": "12345" "database": "database1" }, "staticServiceIpConnectivity": {} }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופילי חיבור זמין במסמכי התיעוד של Google Cloud SDK.
יצירת פרופיל חיבור למקור ב-Salesforce
הקוד הבא מציג בקשה ליצירת פרופיל חיבור למכונה של Salesforce במקור, באמצעות שם משתמש וסיסמה כשיטת האימות.
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "CONNECTION_PROFILE_NAME", "salesforceProfile": { "domain": "DOMAIN_NAME", "userCredentials": { "username": "USERNAME", "password": "PASSWORD", "securitytoken": "SECURITY_TOKEN" } } }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=saleforce-cp { "displayName": "My Salesforce connection profile", "salesforceProfile": { "domain": "domain.my.salesforce.com", "userCredentials": { "username": "mySalesforceUser", "password": "12345", "securitytoken": "C08120F510542FFB1C3640F57AF19E2D5D700556A25F7D665C3B428407709D8C" } } }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופילי חיבור זמין במסמכי התיעוד של Google Cloud SDK.
הקוד הבא מציג בקשה ליצירת פרופיל חיבור למכונה של Salesforce במקור, באמצעות פרטי כניסה של לקוח OAuth 2.0 כשיטת האימות.
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "CONNECTION_PROFILE_NAME", "salesforceProfile": { "domain": "DOMAIN_NAME", "oauth2ClientCredentials": { "clientId": "CLIENT_ID", "clientSecret": "CLIENT_SECRET" } } }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=saleforce-cp { "displayName": "My Salesforce connection profile", "salesforceProfile": { "domain": "domain.my.salesforce.com", "oauth2ClientCredentials": { "clientId": "myClientId", "clientSecret": "projects/myProject/secrets/sf-client-secret" } } }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופילי חיבור זמין במסמכי התיעוד של Google Cloud SDK.
יצירת פרופיל חיבור למקור MongoDB
הקוד הבא מציג בקשה ליצירת פרופיל חיבור למכונה של MongoDB במקור, באמצעות פורמט של מחרוזת חיבור SRV.
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "CONNECTION_PROFILE_NAME", "mongodbProfile": { "hostAddresses": [ { "hostname": "HOST_URI" } ], "username": "USERNAME", "password": "PASSWORD", "srvConnectionFormat": {} }, "staticServiceIpConnectivity": {} }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=mongodb-cp { "displayName": "mongodb-cp", "mongodbProfile": { "hostAddresses": [ { "hostname": "cluster85828.ebeek.mongodb.net" } ], "username": "Cluster85828", "password": "password", "srvConnectionFormat": {} }, "staticServiceIpConnectivity": {} }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופילי חיבור זמין במסמכי התיעוד של Google Cloud SDK.
הקוד הבא מציג בקשה ליצירת פרופיל חיבור למכונה של MongoDB במקור, באמצעות פורמט סטנדרטי של מחרוזת חיבור.
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "CONNECTION_PROFILE_NAME", "mongodbProfile": { "hostAddresses": [ { "hostname": "HOST_IP", "port": "PORT_NUMBER" } ], "replica_set": "SET_ID", "username": "USERNAME", "password": "PASSWORD", "standardConnectionFormat": { "directConnection": false } }, "staticServiceIpConnectivity": {} }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=mongodb-cp { "displayName": "mongodb-cp", "mongodbProfile": { "hostAddresses": [ { "hostname": "34.19.10.194", "port": "27017" } ], "replicaset": "rs0", "username": "root", "password": "password", "standardConnectionFormat": { "directConnection": false } }, "staticServiceIpConnectivity": {} }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופילי חיבור זמין במסמכי התיעוד של Google Cloud SDK.
יצירת פרופיל חיבור ליעד ב-BigQuery
הקוד הבא מציג בקשה ליצירת פרופיל חיבור ליעד ב-BigQuery.
REST
POST https://datastream.googleapis.com/v1/projects/[project-id/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "connection-profile-display-name", "bigqueryProfile": {} }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=myBigqueryCP { "displayName": "my BigQuery destination", "bigqueryProfile": {} }
gcloud
למידע נוסף על השימוש ב-gcloud ליצירת פרופילי חיבור, קראו את המסמכים של Google Cloud SDK.
יצירת פרופיל חיבור ליעד ב-Cloud Storage
הקוד הבא מציג בקשה ליצירת פרופיל חיבור לקטגוריה של Cloud Storage. מכיוון ש-Cloud Storage נמצא באותה רשת כמו Datastream, לא נדרש קישוריות מיוחדת. לכן, לא צוינה שיטת קישוריות.
REST
POST https://datastream.googleapis.com/v1/projects/[project-id/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "connection-profile-display-name", "gcsProfile": { "bucket": "bucket-name", "rootPath": "prefix-inside-bucket" } }
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=myGcsCP { "displayName": "my Cloud Storage bucket", "gcsProfile": { "bucket": "myBucket", "rootPath": "prefix-inside-bucket" } }
gcloud
מידע נוסף על השימוש ב-gcloud ליצירת פרופיל חיבור ל-Cloud Storage זמין במסמכי התיעוד של Cloud SDK.
קבלת מידע על פרופיל חיבור
הקוד הבא מציג בקשה לאחזור מידע על פרופיל חיבור שנוצר למסד נתונים של Oracle במקור, למסד נתונים של MySQL במקור, ליעד ב-BigQuery או ליעד ב-Cloud Storage.
REST
GET https://datastream.googleapis.com/v1/projects/project-id/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
לדוגמה:
GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
למידע נוסף על השימוש ב-gcloud כדי לאחזר מידע על פרופיל החיבור, קראו את המסמכים של Google Cloud SDK.
הצגת רשימה של פרופילי חיבורים
הקוד הבא מציג בקשה לאחזור מידע על כל פרופילי החיבורים שלכם.
REST
GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles
gcloud
למידע נוסף על השימוש ב-gcloud כדי לאחזר מידע על כל פרופילי החיבור, קראו את המסמכים של Google Cloud SDK.
עדכון של פרופיל חיבור
הקוד הבא מציג בקשה לשינוי שם המשתמש והסיסמה של פרופיל חיבור קיים למסד נתונים של מקור.
כשמשתמשים בפרמטר updateMask בבקשה, רק השדות שציינתם צריכים להיכלל בגוף הבקשה (בדוגמה הזו, השדות username ו-password, שמיוצגים על ידי הדגלים oracle_profile.username ו-oracle_profile.password, בהתאמה).
REST
PATCH https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID? updateMask=oracle_profile.username,oracle_profile.password { "oracleProfile": { "username": "USERNAME", "password": "PASSWORD" } }
לדוגמה:
PATCH https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP? updateMask=oracle_profile.username,oracle_profile.password { "oracleProfile": { "username": "username", "password": "password" } }
הקוד הבא מציג בקשה לשינוי הגדרת הקישוריות הפרטית שמוקצית לפרופיל חיבור. פרופיל החיבור הזה משתמש בשיטת הקישוריות לרשת VPC Peering.
בדוגמה הזו, אתם מקצים את ההגדרה new_private_connection לפרופיל החיבור.
PATCH -d {\"private_connectivity\":{\"private_connection\":\ "projects/PROJECT_ID/locations/LOCATION/privateConnections/ new_private_connection\"}}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/v1/ projects/PROJECT_ID/locations/LOCATION/connectionProfiles/ CONNECTION_PROFILE_ID?update_mask=private_connectivity.private_connection
לדוגמה:
PATCH -d {\"private_connectivity\":{\"private_connection\":\ "projects/myProjectId/locations/us-central1/privateConnections/ new_private_connection\"}}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" https://datastream.googleapis.com/v1/projects/ myProjectId/locations/us-central1/connectionProfiles/ myOracleVPCPeeringCP?update_mask=private_connectivity.private_connection
gcloud
למידע נוסף על השימוש ב-gcloud כדי לעדכן את פרופיל החיבור, קראו את המסמכים של Google Cloud SDK.
מחיקה של פרופיל חיבור
הקוד הבא מציג בקשה למחיקת פרופיל חיבור. אחרי שמוחקים את פרופיל החיבור, כל הסטרימינג שמשתמש בו ייכשל.
REST
DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
לדוגמה:
DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
למידע נוסף על השימוש ב-gcloud כדי למחוק את פרופיל החיבור, קראו את המסמכים של Google Cloud SDK.
גילוי המבנה של מסד נתונים במקור
משתמשים ב-API של discoverConnectionProfile כדי לאחזר את רשימת הישויות (לדוגמה, סכימות וטבלאות) ממקור, ואת המטא-נתונים שמשויכים לישויות.
ה-API יכול לקבל כפרמטר מזהה של פרופיל חיבור קיים או הגדרה מלאה של אובייקט פרופיל חיבור. הפונקציה יכולה להחזיר רמה אחת (לדוגמה, כל הסכימות במסד נתונים או כל הטבלאות בסכימה), או את כל הישויות באופן רקורסיבי (לדוגמה, סכימות, טבלאות ועמודות).
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles:discoverConnectionProfile?CONNECTION_PROFILE_ID
לדוגמה:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles:discoverConnectionProfile?myOracleCP
gcloud
למידע נוסף על השימוש ב-gcloud כדי לגלות את המבנה של מסד הנתונים של המקור, עיינו במסמכי התיעוד של Google Cloud SDK.
המאמרים הבאים
- איך משתמשים ב-Datastream API כדי לנהל את הסטרימינג
- איך משתמשים ב-Datastream API כדי לנהל הגדרות של חיבור מבודד
- למידע נוסף על השימוש ב-Datastream API, קראו את מאמרי העזרה.