L'API Datastream ti consente di creare e gestire in modo programmatico i profili di connessione che memorizzano le informazioni di autenticazione e connettività per le origini e le destinazioni. Puoi effettuare chiamate API REST o utilizzare Google Cloud CLI. Ad esempio, puoi creare profili per le origini Oracle, MySQL, PostgreSQL, SQL Server, Salesforce e MongoDB e per le destinazioni BigQuery e Cloud Storage.
Puoi anche recuperare, elencare, aggiornare o eliminare i profili di connessione e scoprire la struttura di un database di origine. Per i dettagli di riferimento dei comandi, consulta gcloud datastream
connection-profiles.
Per una procedura dettagliata end-to-end, consulta Utilizza le API Datastream.
Crea un profilo di connessione per un database Oracle di origine
Il seguente codice mostra una richiesta per creare un profilo di connessione per un database Oracle utilizzando un secret e il metodo di connettività con lista consentita di 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": {} }
Ad esempio:
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": {} }
Il codice seguente mostra una richiesta per creare un profilo di connessione per un database Oracle e specifica il metodo di connettività come connettività privata (peering VPC).
Questo metodo stabilisce una connettività sicura tra Datastream e il database di origine (internamente all'interno di Google Cloudo con origini esterne connesse tramite VPN o Interconnect). Questa comunicazione avviene tramite una connessione in peering VPC.
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]" } }
Ad esempio:
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" } }
Dopo aver creato il profilo di connessione, puoi visualizzare le relative informazioni chiamando il metodo connectionProfiles/get. L'output visualizzato è simile al seguente:
{ "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
Per ulteriori informazioni sull'utilizzo di gcloud per creare un profilo di connessione per un database Oracle di origine, consulta la documentazione di Google Cloud SDK.
Crea un profilo di connessione per un database MySQL di origine
Il codice seguente mostra una richiesta di creazione di un profilo di connessione per un database MySQL e specifica il metodo di connettività come l'utilizzo di indirizzi IP statici (lista consentita 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": {} }
Ad esempio:
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
Per saperne di più sull'utilizzo di gcloud per creare un profilo di connessione per un database MySQL di origine, consulta la documentazione di Google Cloud SDK.
Crea un profilo di connessione per un database PostgreSQL di origine
Il codice seguente mostra una richiesta per creare un profilo di connessione per un database 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": {} }
Ad esempio:
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
Per ulteriori informazioni sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Crea un profilo di connessione per un database SQL Server di origine
Il seguente codice mostra una richiesta di creazione di un profilo di connessione per un database SQL Server e specifica il metodo di connettività utilizzando indirizzi IP statici (lista consentita 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": {} }
Ad esempio:
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
Per ulteriori informazioni sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Crea un profilo di connessione per un'origine Salesforce
Il codice seguente mostra una richiesta per creare un profilo di connessione per un'istanza Salesforce di origine utilizzando un nome utente e una password come metodo di autenticazione.
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" } } }
Ad esempio:
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
Per ulteriori informazioni sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Il seguente codice mostra una richiesta di creazione di un profilo di connessione per un'istanza Salesforce di origine utilizzando le credenziali client OAuth 2.0 come metodo di autenticazione.
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" } } }
Ad esempio:
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
Per ulteriori informazioni sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Crea un profilo di connessione per un'origine MongoDB
Il codice seguente mostra una richiesta per creare un profilo di connessione per un'istanza MongoDB di origine utilizzando un formato di stringa di connessione 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": {} }
Ad esempio:
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
Per ulteriori informazioni sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Il seguente codice mostra una richiesta di creazione di un profilo di connessione per un'istanza MongoDB di origine utilizzando un formato di stringa di connessione standard.
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": {} }
Ad esempio:
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
Per ulteriori informazioni sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Crea un profilo di connessione per una destinazione BigQuery
Il codice seguente mostra una richiesta per creare un profilo di connessione per una destinazione BigQuery.
REST
POST https://datastream.googleapis.com/v1/projects/[project-id/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "connection-profile-display-name", "bigqueryProfile": {} }
Ad esempio:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=myBigqueryCP { "displayName": "my BigQuery destination", "bigqueryProfile": {} }
gcloud
Per ulteriori informazioni sull'utilizzo di gcloud per creare un profilo di connessione, consulta la documentazione di Google Cloud SDK.
Crea un profilo di connessione per una destinazione Cloud Storage
Il codice seguente mostra una richiesta per creare un profilo di connessione per un bucket Cloud Storage. Poiché Cloud Storage si trova nella stessa rete di Datastream, non è richiesta alcuna connettività speciale. Pertanto, non viene specificato alcun metodo di connettività.
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" } }
Ad esempio:
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
Per saperne di più sull'utilizzo di gcloud per creare un profilo di connessione per Cloud Storage, consulta la documentazione di Cloud SDK.
Ottieni informazioni su un profilo di connessione
Il codice seguente mostra una richiesta per recuperare informazioni su un profilo di connessione per un database Oracle di origine, un database MySQL di origine, una destinazione BigQuery o una destinazione Cloud Storage creata.
REST
GET https://datastream.googleapis.com/v1/projects/project-id/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
Ad esempio:
GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
Per saperne di più sull'utilizzo di gcloud per recuperare informazioni sul tuo profilo di connessione, consulta la documentazione di Google Cloud SDK.
Elenca i profili di connessione
Il codice seguente mostra una richiesta per recuperare informazioni su tutti i tuoi profili di connessione.
REST
GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles
gcloud
Per saperne di più sull'utilizzo di gcloud per recuperare informazioni su tutti i profili di connessione, consulta la documentazione di Google Cloud SDK.
Aggiorna un profilo di connessione
Il codice seguente mostra una richiesta di modifica del nome utente e della password di un profilo di connessione esistente per un database di origine.
Se utilizzi il parametro updateMask nella richiesta, solo i campi specificati devono essere inclusi nel corpo della richiesta (in questo esempio, i campi username e password, rappresentati rispettivamente dai flag oracle_profile.username e 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" } }
Ad esempio:
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" } }
Il codice seguente mostra una richiesta di modifica della configurazione di connettività privata assegnata a un profilo di connessione. Questo profilo di connessione utilizza il metodo di connettività di rete con peering VPC.
Per questo esempio, assegnerai la configurazione new_private_connection al profilo di connessione.
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
Ad esempio:
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
Per saperne di più sull'utilizzo di gcloud per aggiornare il profilo di connessione, consulta la documentazione di Google Cloud SDK.
Eliminazione di un profilo di connessione
Il codice seguente mostra una richiesta di eliminazione di un profilo di connessione. Dopo l'eliminazione del profilo di connessione, tutti gli stream che lo utilizzano non andranno a buon fine.
REST
DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
Ad esempio:
DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
Per saperne di più sull'utilizzo di gcloud per eliminare il profilo di connessione, consulta la documentazione di Google Cloud SDK.
Scopri la struttura di un database di origine
Utilizza l'API discoverConnectionProfile per recuperare l'elenco di entità (ad esempio schemi e tabelle) da un'origine e i metadati associati alle entità.
L'API può ricevere come parametro l'ID di un profilo di connessione esistente o la definizione completa di un oggetto del profilo di connessione. La funzione può restituire un singolo livello (ad esempio, tutti gli schemi in un database o tutte le tabelle in uno schema) o tutte le entità in modo ricorsivo (ad esempio, schemi, tabelle e colonne).
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles:discoverConnectionProfile?CONNECTION_PROFILE_ID
Ad esempio:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles:discoverConnectionProfile?myOracleCP
gcloud
Per ulteriori informazioni sull'utilizzo di gcloud per scoprire la struttura del database di origine, consulta la documentazione di Google Cloud SDK.
Passaggi successivi
- Scopri come utilizzare l'API Datastream per gestire gli stream.
- Scopri come utilizzare l'API Datastream per gestire le configurazioni di connettività privata.
- Per ulteriori informazioni sull'utilizzo dell'API Datastream, consulta la documentazione di riferimento.