En esta página, aprenderás a usar la API de Datastream para realizar las siguientes acciones:
- Crear perfiles de conexión para una base de datos de Oracle de origen, una base de datos de MySQL de origen, una base de datos de PostgreSQL de origen, una organización de Salesforce de origen, un destino de BigQuery y un destino de Cloud Storage
- Recuperar información sobre perfiles de conexión, actualizarlos y borrarlos
- Descubrir la estructura de los perfiles de conexión de origen o destino
Existen dos formas de usar la API de Datastream. Puedes realizar llamadas a la API de REST o usar Google Cloud CLI.
Para obtener información general sobre el uso de gcloud
para administrar los perfiles de conexión de Datastream, haz clic en Documentación del SDK de Google Cloud.
Crea un perfil de conexión para una base de datos de Oracle de origen
En el siguiente código, se muestra una solicitud para crear un perfil de conexión para una base de datos de Oracle con un secreto y el método de conectividad de la lista de IP permitidas.
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": {} }
Por ejemplo:
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": {} }
En el siguiente código se muestra una solicitud de creación de un perfil de conexión para una base de datos Oracle y se especifica que el método de conectividad es la conectividad privada (intercambio de tráfico de VPC).
Este método establece una conectividad segura entre Datastream y la base de datos de origen (de forma interna dentro de Google Cloudo con fuentes externas conectadas a través de VPN o Interconnect). Esta comunicación se realiza a través de una conexión de intercambio de tráfico entre VPCs.
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]" } }
Por ejemplo:
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" } }
Después de crear el perfil de conexión, puedes ver información sobre él llamando al método connectionProfiles/get
. Aparecerá un resultado similar al siguiente:
{ "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
Para obtener más información sobre cómo usar gcloud
para crear un perfil de conexión para una base de datos de Oracle de origen, consulta la documentación del SDK de Google Cloud.
Crea un perfil de conexión para una base de datos de MySQL de origen
El siguiente código muestra una solicitud de creación de un perfil de conexión para una base de datos MySQL y especifica que el método de conectividad es el uso de direcciones IP estáticas (lista de IP permitidas).
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": {} }
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para crear un perfil de conexión para una base de datos de MySQL de origen, consulta la documentación del SDK de Google Cloud.
Crea un perfil de conexión para una base de datos de PostgreSQL de origen
En el siguiente código, se muestra una solicitud para crear un perfil de conexión para una base de datos de 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": {} }
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.
Crea un perfil de conexión para una base de datos de SQL Server de origen
El siguiente código muestra una solicitud para crear un perfil de conexión para una base de datos de SQL Server y especifica que el método de conectividad es el uso de direcciones IP estáticas (lista de IP permitidas).
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": {} }
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.
Crea un perfil de conexión para una fuente de Salesforce
El siguiente código muestra una solicitud para crear un perfil de conexión para una instancia de Salesforce de origen con un nombre de usuario y una contraseña como método de autenticación.
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" } } }
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.
El siguiente código muestra una solicitud para crear un perfil de conexión para una instancia de Salesforce de origen con credenciales de cliente de OAuth 2.0 como método de autenticación.
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" } } }
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.
Crea un perfil de conexión para una fuente de MongoDB
El siguiente código muestra una solicitud para crear un perfil de conexión para una instancia de MongoDB de origen con un formato de cadena de conexión 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": {} }
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.
El siguiente código muestra una solicitud para crear un perfil de conexión para una instancia de MongoDB de origen con un formato de cadena de conexión estándar.
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": {} }
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.
Crea un perfil de conexión para un destino de BigQuery
En el siguiente código, se muestra una solicitud para crear un perfil de conexión para un destino de BigQuery.
REST
POST https://datastream.googleapis.com/v1/projects/[project-id/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "connection-profile-display-name", "bigqueryProfile": {} }
Por ejemplo:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=myBigqueryCP { "displayName": "my BigQuery destination", "bigqueryProfile": {} }
gcloud
Para obtener más información sobre cómo usar gcloud
para crear perfiles de conexión, consulta la documentación del SDK de Google Cloud.
Crea un perfil de conexión para un destino de Cloud Storage
El siguiente código muestra una solicitud para crear un perfil de conexión para un bucket de Cloud Storage. Dado que Cloud Storage se encuentra en la misma red que Datastream, no se requiere conectividad especial. Por lo tanto, no se especifica ningún método de conectividad.
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" } }
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para crear un perfil de conexión para Cloud Storage, consulta la documentación del SDK de Cloud.
Obtén información sobre un perfil de conexión
El siguiente código muestra una solicitud para recuperar información sobre un perfil de conexión para una base de datos de Oracle de origen, una base de datos de MySQL de origen, un destino de BigQuery o un destino de Cloud Storage que se creó.
REST
GET https://datastream.googleapis.com/v1/projects/project-id/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
Por ejemplo:
GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
Para obtener más información sobre cómo usar gcloud
para recuperar información sobre tu perfil de conexión, consulta la documentación del SDK de Google Cloud.
Enumera perfiles de conexión
El siguiente código muestra una solicitud para recuperar información sobre todos tus perfiles de conexión.
REST
GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles
gcloud
Para obtener más información sobre el uso de gcloud
para recuperar información sobre todos tus perfiles de conexión, consulta la documentación del SDK de Google Cloud.
Actualiza un perfil de conexión
El siguiente código muestra una solicitud de cambio del nombre de usuario y la contraseña de un perfil de conexión existente para una base de datos de origen.
Usar el parámetro updateMask
en la solicitud hace que solo los campos que especifiques deban incluirse en el cuerpo de la solicitud (para este ejemplo, los campos username
y password
, representados por las marcas oracle_profile.username
y oracle_profile.password
respectivamente).
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" } }
Por ejemplo:
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" } }
En el siguiente código, se muestra una solicitud para cambiar la configuración de conectividad privada asignada a un perfil de conexión. Este perfil de conexión usa el método de conectividad de red de intercambio de tráfico entre VPC.
En este ejemplo, asignarás la configuración new_private_connection
al perfil de conexión.
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
Por ejemplo:
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
Para obtener más información sobre cómo usar gcloud
para actualizar tu perfil de conexión, consulta la documentación del SDK de Google Cloud.
Borrar un perfil de conexión
En el siguiente código, se muestra una solicitud para borrar un perfil de conexión. Después de que se borre el perfil de conexión, fallarán todas las transmisiones que lo usen.
REST
DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
Por ejemplo:
DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
Para obtener más información sobre cómo usar gcloud
para borrar tu perfil de conexión, consulta la documentación del SDK de Google Cloud.
Descubre la estructura de una base de datos de origen
Usa la API de discoverConnectionProfile
para recuperar la lista de entidades (por ejemplo, esquemas y tablas) de una fuente, además de los metadatos asociados con las entidades.
La API puede recibir como parámetro el ID de un perfil de conexión existente o la definición completa de un objeto de perfil de conexión. La función puede devolver un solo nivel (por ejemplo, todos los esquemas de una base de datos o todas las tablas de un esquema) o todas las entidades de forma recursiva (por ejemplo, esquemas, tablas y columnas).
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles:discoverConnectionProfile?CONNECTION_PROFILE_ID
Por ejemplo:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles:discoverConnectionProfile?myOracleCP
gcloud
Para obtener más información sobre cómo usar gcloud
para descubrir la estructura de tu base de datos de origen, consulta la documentación del SDK de Google Cloud.
¿Qué sigue?
- Aprende a usar la API de Datastream para administrar transmisiones.
- Obtén información para usar la API de Datastream para administrar la configuración de conectividad privada.
- Para obtener más información sobre el uso de la API de Datastream, consulta la documentación de referencia.