Gestione dei profili di connessione

In questa pagina imparerai a 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 su, aggiornare ed eliminare i profili di connessione
  • Scopri la struttura dei profili di connessione di origine o destinazione

Esistono due modi per utilizzare l'API Datastream. Puoi effettuare chiamate API REST o utilizzare Google Cloud CLI (CLI).

Per informazioni di alto livello sull'utilizzo di gcloud per gestire i profili di connessione Datastream, fai clic su Documentazione di Google Cloud SDK.

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à della lista consentita di indirizzi 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 seguente codice 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 a 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 visualizzare le informazioni al riguardo 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": "https://datastream.googleapis.com/v1/projects/
     myProjectId/locations/us-central1/privateConnections/myPrivateConnection"
  }
}

gcloud

Per saperne di più 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 seguente codice mostra una richiesta per creare un profilo di connessione per un database MySQL e specifica il metodo di connettività come utilizzo di indirizzi IP statici (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]",
  "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 seguente codice 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 saperne di più 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 per creare un profilo di connessione per un database SQL Server e specifica il metodo di connettività come utilizzo di indirizzi IP statici (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]",
  "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": {}
}

gcloud

Per saperne di più 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 seguente codice mostra una richiesta per creare un profilo di connessione per un'istanza di origine Salesforce 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 saperne di più sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.

Il seguente codice mostra una richiesta per creare un profilo di connessione per un'istanza di origine Salesforce 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 saperne di più 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 seguente codice 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 saperne di più sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.

Il seguente codice mostra una richiesta per creare 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 saperne di più 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 seguente codice 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 saperne di più sull'utilizzo di gcloud per creare profili di connessione, consulta la documentazione di Google Cloud SDK.

Crea un profilo di connessione per una destinazione Cloud Storage

Il seguente codice 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 è necessaria una 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": {
    "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"
  }
}

gcloud

Per saperne di più sull'utilizzo di gcloud per creare un profilo di connessione per Cloud Storage, consulta la documentazione di Cloud SDK.

Visualizzare informazioni su un profilo di connessione

Il seguente codice 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 che è stata 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 seguente codice 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 tuoi profili di connessione, consulta la documentazione di Google Cloud SDK.

Aggiorna un profilo di connessione

Il seguente codice 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 che specifichi (per 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 seguente codice 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 peering VPC.

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

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 seguente codice mostra una richiesta di eliminazione di un profilo di connessione. Dopo l'eliminazione del profilo di connessione, tutti i flussi 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 delle 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 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).

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