En esta página, aprenderá a usar la API Datastream para hacer lo siguiente:
- Crear perfiles de conexión para una base de datos Oracle de origen, una base de datos MySQL de origen, una base de datos PostgreSQL de origen, una organización de Salesforce de origen, un destino de BigQuery y un destino de Cloud Storage
- Recuperar información sobre los perfiles de conexión, actualizarlos y eliminarlos
- Descubrir la estructura de los perfiles de conexión de origen o de destino
Hay dos formas de usar la API DataStream. Puedes hacer llamadas a la API REST o usar Google Cloud CLI.
Para obtener información general sobre cómo usar gcloud
para gestionar perfiles de conexión de Datastream, consulta la documentación del SDK de Google Cloud.
Crear un perfil de conexión para una base de datos de Oracle de origen
El siguiente código muestra una solicitud para crear un perfil de conexión para una base de datos Oracle mediante un secreto y el método de conectividad de lista de permitidos de IPs.
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": {} }
El siguiente código muestra una solicitud para crear un perfil de conexión de una base de datos Oracle y especifica la conectividad privada (emparejamiento de VPCs) como método de conectividad.
Este método establece una conectividad segura entre Datastream y la base de datos de origen (internamente en Google Cloudo con fuentes externas conectadas a través de una VPN o Interconnect). Esta comunicación se produce 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" } }
Una vez creado el perfil de conexión, puede ver información sobre él llamando al método connectionProfiles/get
. Verá 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 de una base de datos Oracle de origen, consulta la documentación del SDK de Google Cloud.
Crear un perfil de conexión para una base de datos MySQL de origen
El siguiente código muestra una solicitud para crear un perfil de conexión de una base de datos MySQL y especifica que el método de conectividad es el uso de direcciones IP estáticas (lista de permitidas de IPs).
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 de una base de datos MySQL de origen, consulta la documentación del SDK de Google Cloud.
Crear un perfil de conexión para una base de datos PostgreSQL de origen
El siguiente código muestra una solicitud para crear un perfil de conexión para una base de datos 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.
Crear 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 de 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 permitidas de IPs).
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.
Crear un perfil de conexión para una fuente de Salesforce
El siguiente código muestra una solicitud para crear un perfil de conexión de una instancia de Salesforce de origen mediante 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.
En el siguiente código se muestra una solicitud para crear un perfil de conexión para una instancia de Salesforce de origen mediante 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.
Crear 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 mediante 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 de una instancia de MongoDB de origen mediante 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.
Crear un perfil de conexión para un destino de BigQuery
El siguiente código muestra una solicitud para crear un perfil de conexión de 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.
Crear 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 de un segmento de Cloud Storage. Como Cloud Storage está en la misma red que Datastream, no se necesita ninguna conectividad especial. Por lo tanto, no se ha especificado 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 de Cloud Storage, consulta la documentación del SDK de Cloud.
Obtener información sobre un perfil de conexión
El siguiente código muestra una solicitud para obtener información sobre un perfil de conexión de una base de datos Oracle de origen, una base de datos MySQL de origen, un destino de BigQuery o un destino de Cloud Storage que se haya creado.
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.
Mostrar perfiles de conexión
El siguiente código muestra una solicitud para obtener 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 cómo usar gcloud
para recuperar información sobre todos tus perfiles de conexión, consulta la documentación del SDK de Google Cloud.
Actualizar un perfil de conexión
El siguiente código muestra una solicitud para cambiar el nombre de usuario y la contraseña de un perfil de conexión de una base de datos de origen.
Si usas el parámetro updateMask
en la solicitud, solo se incluirán en el cuerpo de la solicitud los campos que especifiques (en 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 emparejamiento de VPC.
En este ejemplo, asignas 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.
Eliminar un perfil de conexión
En el siguiente código se muestra una solicitud para eliminar un perfil de conexión. Una vez que se haya eliminado el perfil de conexión, los flujos que lo usen fallarán.
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 eliminar tu perfil de conexión, consulta la documentación del SDK de Google Cloud.
Descubrir la estructura de una base de datos de origen
Usa la API discoverConnectionProfile
para obtener la lista de entidades (por ejemplo, esquemas y tablas) de una fuente, así como los metadatos asociados a las entidades.
La API puede recibir como parámetro un ID de un perfil de conexión o una 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.
Siguientes pasos
- Consulta cómo usar la API DataStream para gestionar flujos.
- Consulta cómo usar la API de Datastream para gestionar configuraciones de conectividad privada.
- Para obtener más información sobre cómo usar la API Datastream, consulta la documentación de referencia.