A API Datastream permite criar e gerenciar de maneira programática perfis de conexão que armazenam informações de autenticação e conectividade para suas origens e destinos. É possível fazer chamadas de API REST ou usar a Google Cloud CLI. Por exemplo, é possível criar perfis para origens do Oracle, MySQL, PostgreSQL, SQL Server, Salesforce e MongoDB e para destinos do BigQuery e do Cloud Storage.
Também é possível recuperar, listar,
atualizar ou
excluir perfis de conexão e descobrir a
estrutura de um banco de dados de origem. Para detalhes de referência de comando,
consulte gcloud datastream
connection-profiles.
Para um tutorial completo, consulte Usar APIs do Datastream.
Criar um perfil de conexão para um banco de dados Oracle de origem
O código a seguir mostra uma solicitação para criar um perfil de conexão para um banco de dados Oracle usando um secret e o método de conectividade de lista de permissões de 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": {} }
Exemplo:
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": {} }
O código a seguir mostra uma solicitação para criar um perfil de conexão de um banco de dados Oracle e especifica o método de conectividade como conectividade privada (peering de VPC).
Esse método estabelece uma conectividade segura entre o Datastream e o banco de dados de origem (internamente no Google Cloudou com fontes externas conectadas por VPN ou Interconnect). Essa comunicação acontece por meio de uma conexão de peering de 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]" } }
Exemplo:
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" } }
Depois que o perfil de conexão for criado, será possível ver informações sobre ele chamando o método connectionProfiles/get. A saída será assim:
{ "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
Para mais informações sobre como usar gcloud para criar um perfil de conexão para um banco de dados Oracle de origem, consulte a documentação do SDK Google Cloud.
Criar um perfil de conexão para um banco de dados MySQL de origem
O código a seguir mostra uma solicitação para criar um perfil de conexão de um banco de dados MySQL e especifica o método de conectividade como o uso de endereços IP estáticos (lista de permissões de 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": {} }
Exemplo:
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 mais informações sobre como usar gcloud para criar um perfil de conexão para um banco de dados MySQL de origem, consulte a documentação do SDK Google Cloud.
Criar um perfil de conexão para um banco de dados PostgreSQL de origem
O código a seguir mostra uma solicitação para criar um perfil de conexão para um banco de dados 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": {} }
Exemplo:
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 mais informações sobre como usar gcloud para criar perfis de conexão, consulte a documentação do SDK Google Cloud.
Criar um perfil de conexão para um banco de dados de origem do SQL Server
O código a seguir mostra uma solicitação para criar um perfil de conexão para um banco de dados do SQL Server e especifica o método de conectividade como o uso de endereços IP estáticos (lista de permissões de 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": {} }
Exemplo:
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
Para mais informações sobre como usar gcloud para criar perfis de conexão, consulte a documentação do SDK Google Cloud.
Criar um perfil de conexão para uma origem do Salesforce
O código a seguir mostra uma solicitação para criar um perfil de conexão para uma instância de origem do Salesforce usando um nome de usuário e uma senha como método de autenticação.
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" } } }
Exemplo:
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 mais informações sobre como usar gcloud para criar perfis de conexão, consulte a documentação do SDK Google Cloud.
O código a seguir mostra uma solicitação para criar um perfil de conexão para uma instância de origem do Salesforce usando as credenciais de cliente do OAuth 2.0 como método de autenticação.
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" } } }
Exemplo:
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 mais informações sobre como usar gcloud para criar perfis de conexão, consulte a documentação do SDK Google Cloud.
Criar um perfil de conexão para uma origem do MongoDB
O código a seguir mostra uma solicitação para criar um perfil de conexão para uma instância de origem do MongoDB usando um formato de string de conexão 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": {} }
Exemplo:
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 mais informações sobre como usar gcloud para criar perfis de conexão, consulte a documentação do SDK Google Cloud.
O código a seguir mostra uma solicitação para criar um perfil de conexão para uma instância de origem do MongoDB usando um formato de string de conexão padrão.
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": {} }
Exemplo:
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 mais informações sobre como usar gcloud para criar perfis de conexão, consulte a documentação do SDK Google Cloud.
Criar um perfil de conexão para um destino do BigQuery
O código a seguir mostra uma solicitação para criar um perfil de conexão para um destino do BigQuery.
REST
POST https://datastream.googleapis.com/v1/projects/[project-id/locations/ LOCATION/connectionProfiles?connectionProfileId=CONNECTION_PROFILE_ID { "displayName": "connection-profile-display-name", "bigqueryProfile": {} }
Exemplo:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles?connectionProfileId=myBigqueryCP { "displayName": "my BigQuery destination", "bigqueryProfile": {} }
gcloud
Para mais informações sobre como usar gcloud para criar perfis de conexão, consulte a documentação do SDK Google Cloud.
Criar um perfil de conexão para um destino do Cloud Storage
O código a seguir mostra uma solicitação para criar um perfil de conexão de um bucket do Cloud Storage. Como o Cloud Storage está na mesma rede que o Datastream, você não precisa de conectividade especial. Portanto, nenhum método de conectividade é especificado.
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" } }
Exemplo:
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
Para mais informações sobre como usar gcloud para criar um perfil de conexão para o Cloud Storage, consulte a documentação do SDK Cloud.
Receber informações sobre um perfil de conexão
O código a seguir mostra uma solicitação para recuperar informações sobre um perfil de conexão de um banco de dados Oracle de origem, um banco de dados MySQL de origem, um destino do BigQuery ou um destino do Cloud Storage que foi criado.
REST
GET https://datastream.googleapis.com/v1/projects/project-id/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
Exemplo:
GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
Para mais informações sobre como usar gcloud para recuperar informações sobre seu perfil de conexão, consulte a documentação do SDK Google Cloud.
Listar perfis de conexão
O código a seguir mostra uma solicitação para recuperar informações sobre todos os perfis de conexão.
REST
GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles
gcloud
Para mais informações sobre como usar gcloud para recuperar informações sobre todos os perfis de conexão, consulte a documentação do SDK Google Cloud.
Atualizar um perfil de conexão
O código a seguir mostra uma solicitação para alterar o nome de usuário e a senha de um perfil de conexão existente para um banco de dados de origem.
Usando o parâmetro updateMask na solicitação, somente os campos especificados precisam ser incluídos no corpo da solicitação. Neste exemplo, os campos username e password, representados pela tag oracle_profile.username e 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" } }
Exemplo:
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" } }
O código a seguir mostra uma solicitação para alterar a configuração de conectividade privada atribuída a um perfil de conexão. Este perfil de conexão usa o método de conectividade de rede de peering de VPC.
Neste exemplo, você está atribuindo a configuração new_private_connection ao perfil de conexão.
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
Exemplo:
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
Para mais informações sobre como usar gcloud para atualizar seu perfil de conexão, consulte a documentação do SDK Google Cloud.
Excluir um perfil de conexão
O código a seguir mostra uma solicitação para excluir um perfil de conexão. Após a exclusão do perfil de conexão, qualquer stream com ele falhará.
REST
DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
Exemplo:
DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
Para mais informações sobre como usar gcloud para excluir seu perfil de conexão, consulte a documentação do SDK Google Cloud.
Descobrir a estrutura de um banco de dados de origem
Use a API discoverConnectionProfile para recuperar a lista de entidades (por exemplo, esquemas e tabelas) de uma origem e os metadados associados a elas.
A API pode receber como parâmetro um ID de um perfil de conexão existente ou uma definição completa de objeto do perfil de conexão. A função pode retornar um único nível (por exemplo, todos os esquemas em um banco de dados ou todas as tabelas em um esquema) ou todas as entidades recursivamente (por exemplo, esquemas, tabelas e colunas).
REST
POST https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles:discoverConnectionProfile?CONNECTION_PROFILE_ID
Exemplo:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles:discoverConnectionProfile?myOracleCP
gcloud
Para mais informações sobre como usar gcloud para descobrir a estrutura do banco de dados de origem, consulte a documentação do SDK Google Cloud.
A seguir
- Saiba como usar a API Datastream para gerenciar streams.
- Saiba como usar a API Datastream para gerenciar configurações de conectividade privada.
- Para mais informações sobre como usar a API Datastream, consulte a documentação de referência.