In questa pagina scoprirai come utilizzare l'API Datastream per:
- Crea profili di connessione per un database Oracle di origine, un database MySQL di origine, un database PostgreSQL di origine, un'organizzazione Salesforce di origine, una destinazione BigQuery e una destinazione Cloud Storage
- Recuperare informazioni sui profili di connessione, aggiornarli ed eliminarli
- Scopri la struttura dei profili di connessione di origine o di destinazione
Puoi utilizzare l'API Datastream in due modi. Puoi effettuare chiamate all'API REST o utilizzare Google Cloud CLI (interfaccia a riga di comando).
Per informazioni generali sull'utilizzo di gcloud
per gestire i profili di connessione di Datastream, fai clic sulla documentazione di Google Cloud SDK.
Creare un profilo di connessione per un database Oracle di origine
Il codice seguente mostra una richiesta di creazione di un profilo di connessione per un database Oracle e specifica il metodo di connettività come l'utilizzo di indirizzi IP statici (lista consentita IP).
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 " }, "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", "password": "12345" "databaseService": "ORCL", }, "staticServiceIpConnectivity": {} }
Il codice seguente mostra una richiesta di creazione di 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 (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": "https://datastream.googleapis.com/v1/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": "https://datastream.googleapis.com/v1/projects/ myProjectId/locations/us-central1/privateConnections/myPrivateConnection" } }
Una volta creato il profilo di connessione, puoi visualizzarne le informazioni chiamando il metodo connectionProfiles/get
. Viene visualizzato l'output, 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": "https://datastream.googleapis.com/v1/projects/ myProjectId/locations/us-central1/privateConnections/myPrivateConnection" } }
Per ulteriori informazioni sull'utilizzo di gcloud
per creare un profilo di connessione per un database Oracle di origine, fai clic qui.
Creare 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).
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": {} }
Per ulteriori informazioni sull'utilizzo di gcloud
per creare un profilo di connessione per un database MySQL di origine, fai clic qui.
Crea un profilo di connessione per un database PostgreSQL di origine
Il codice seguente mostra una richiesta di creazione di un profilo di connessione per un database PostgreSQL.
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": {} }
Per ulteriori informazioni sull'utilizzo di gcloud
per creare profili di connessione, fai clic qui.
Creare un profilo di connessione per un database SQL Server di origine
Il codice seguente mostra una richiesta di creazione di un profilo di connessione per un database SQL Server e specifica il metodo di connettività come l'utilizzo di indirizzi IP statici (lista consentita IP).
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", "mysqlProfile": { "hostname": "1.2.3.4", "port": 1433, "username": "root", "password": "12345" "database": "database1" }, "staticServiceIpConnectivity": {} }
Per ulteriori informazioni sull'utilizzo di gcloud
per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Creare un profilo di connessione per un'origine Salesforce
Il codice seguente mostra una richiesta di creazione di un profilo di connessione per un'istanza Salesforce di origine utilizzando un nome utente e una password come metodo di autenticazione.
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" } } }
Per ulteriori informazioni sull'utilizzo di gcloud
per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Il codice seguente mostra una richiesta di creazione di un profilo di connessione per un'istanza Salesforce di origine che utilizza le credenziali client OAuth 2.0 come metodo di autenticazione.
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" } } }
Per ulteriori informazioni sull'utilizzo di gcloud
per creare profili di connessione, consulta la documentazione di Google Cloud SDK.
Creare un profilo di connessione per una destinazione BigQuery
Il codice seguente mostra una richiesta di creazione di un profilo di connessione per una destinazione BigQuery.
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": {} }
Per ulteriori informazioni sull'utilizzo di gcloud
per creare profili di connessione, fai clic qui.
Creare un profilo di connessione per una destinazione Cloud Storage
Il codice seguente mostra una richiesta di creazione di un profilo di connessione per un bucket Cloud Storage. Poiché Cloud Storage si trova nella stessa rete di Datastream, non è richiesta alcuna connettività speciale. Di conseguenza, non viene specificato alcun metodo di connettività.
POST https://datastream.googleapis.com/v1/projects/[project-id /locations/LOCATION /connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "connection-profile-display-name", "gcsProfile": { "bucketName": "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": { "bucketName": "myBucket", "rootPath": "prefix-inside-bucket" } }
Per ulteriori informazioni sull'utilizzo di gcloud
per creare un profilo di connessione per Cloud Storage, consulta la documentazione di Cloud SDK.
Visualizzare le informazioni su un profilo di connessione
Il codice seguente mostra una richiesta di recupero delle 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 che è stata creata.
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
Per ulteriori informazioni sull'utilizzo di gcloud
per recuperare informazioni sul profilo di connessione, fai clic qui.
Elenca i profili di connessione
Il codice seguente mostra una richiesta per recuperare informazioni su tutti i tuoi profili di connessione.
GET https://datastream.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /connectionProfiles
Per ulteriori informazioni sull'utilizzo di gcloud
per recuperare informazioni su tutti i tuoi profili di connessione, fai clic qui.
Aggiornare 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, nel corpo della richiesta devono essere inclusi solo i campi specificati (in questo esempio, i campi username
e password
, rappresentati rispettivamente dai flag oracle_profile.username
e oracle_profile.password
).
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 VPC peering.
Per questo esempio, assegni la configurazione new_private_connection
al profilo di connessione.
PATCH -d {\"private_connectivity\":{\"private_connection_name\":\ "https://datastream.googleapis.com/v1/ 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_name
Ad esempio:
PATCH -d {\"private_connectivity\":{\"private_connection_name\":\ "https://datastream.googleapis.com/v1/ 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_name
Per ulteriori informazioni sull'utilizzo di gcloud
per aggiornare il profilo di connessione, fai clic qui.
Eliminazione di un profilo di connessione
Il seguente codice 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.
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
Per saperne di più sull'utilizzo di gcloud
per eliminare il profilo di connessione, fai clic qui.
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 un ID di un profilo di connessione esistente o una definizione completa dell'oggetto del profilo di connessione. La funzione può restituire un singolo livello (ad esempio tutti gli schemi di un database o tutte le tabelle di uno schema) o tutte le entità in modo ricorsivo (ad esempio schemi, tabelle e colonne).
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
Per ulteriori informazioni sull'utilizzo di gcloud
per scoprire la struttura del database di origine, fai clic qui.
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.