Nesta página, vai saber como usar a API Datastream para:
- Crie perfis de ligação para uma base de dados Oracle de origem, uma base de dados MySQL de origem, uma base de dados PostgreSQL de origem, uma organização Salesforce de origem, um destino do BigQuery e um destino do Cloud Storage
- Recuperar informações sobre perfis de associação, atualizá-los e eliminá-los
- Descubra a estrutura dos perfis de ligação de origem ou de destino
Existem duas formas de usar a API Datastream. Pode fazer chamadas à API REST ou usar a CLI (interface de linha de comandos) do Google Cloud.
Para ver informações de alto nível sobre a utilização da gcloud
para gerir perfis de ligação de streams de dados, clique na documentação do SDK do Google Cloud.
Crie um perfil de associação para uma base de dados Oracle de origem
O código seguinte mostra um pedido para criar um perfil de ligação para uma base de dados Oracle através de um segredo e do método de conetividade da lista de autorizações 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 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 seguinte mostra um pedido para criar um perfil de ligação para uma base de dados Oracle e especifica o método de conetividade como conetividade privada (intercâmbio da VPC).
Este método estabelece uma conetividade segura entre o Datastream e a base de dados de origem (internamente no Google Cloudou com origens externas ligadas através de VPN ou Interconnect). Esta comunicação ocorre através de uma ligaçã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": "https://datastream.googleapis.com/v1/projects/ PROJECT_ID/locations/LOCATION/privateConnections/ [private-connectivity-configuration-id]" } }
Por 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": "https://datastream.googleapis.com/v1/projects/ myProjectId/locations/us-central1/privateConnections/myPrivateConnection" } }
Depois de criar o perfil de associação, pode ver informações sobre o mesmo chamando o método connectionProfiles/get
. O resultado é apresentado de forma semelhante ao seguinte:
{ "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 mais informações sobre a utilização de gcloud
para criar um perfil de ligação para uma base de dados Oracle de origem, consulte a documentação do SDK do Google Cloud.
Crie um perfil de associação para uma base de dados MySQL de origem
O código seguinte mostra um pedido para criar um perfil de ligação para uma base de dados MySQL e especifica o método de conetividade como a utilização de endereços IP estáticos (lista de autorizaçõ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": {} }
Por 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 a utilização de gcloud
para criar um perfil de ligação para uma base de dados MySQL de origem, consulte a documentação do SDK do Google Cloud.
Crie um perfil de associação para uma base de dados PostgreSQL de origem
O código seguinte mostra um pedido para criar um perfil de ligação para uma base 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": {} }
Por 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 a utilização de gcloud
para criar perfis de ligação, consulte a documentação do SDK do Google Cloud.
Crie um perfil de associação para uma base de dados SQL Server de origem
O código seguinte mostra um pedido para criar um perfil de ligação para uma base de dados do SQL Server e especifica o método de conetividade como a utilização de endereços IP estáticos (lista de autorizaçõ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": {} }
Por exemplo:
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 mais informações sobre a utilização de gcloud
para criar perfis de ligação, consulte a documentação do SDK do Google Cloud.
Crie um perfil de associação para uma origem do Salesforce
O código seguinte mostra um pedido para criar um perfil de associação para uma instância do Salesforce de origem através de um nome de utilizador e uma palavra-passe 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" } } }
Por 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 a utilização de gcloud
para criar perfis de ligação, consulte a documentação do SDK do Google Cloud.
O código seguinte mostra um pedido para criar um perfil de associação para uma instância do Salesforce de origem através das credenciais do cliente 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" } } }
Por 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 a utilização de gcloud
para criar perfis de ligação, consulte a documentação do SDK do Google Cloud.
Crie um perfil de associação para uma origem do MongoDB
O código seguinte mostra um pedido para criar um perfil de ligação para uma instância do MongoDB de origem através de um formato de string de ligaçã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": {} }
Por 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 a utilização de gcloud
para criar perfis de ligação, consulte a documentação do SDK do Google Cloud.
O código seguinte mostra um pedido para criar um perfil de ligação para uma instância do MongoDB de origem através de um formato de string de ligaçã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": {} }
Por 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 a utilização de gcloud
para criar perfis de ligação, consulte a documentação do SDK do Google Cloud.
Crie um perfil de associação para um destino do BigQuery
O código seguinte mostra um pedido para criar um perfil de ligaçã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": {} }
Por 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 a utilização do gcloud
para criar perfis de ligação, consulte a documentação do SDK do Google Cloud.
Crie um perfil de associação para um destino do Cloud Storage
O código seguinte mostra um pedido para criar um perfil de ligação para um contentor do Cloud Storage. Uma vez que o Cloud Storage está na mesma rede que o Datastream, não é necessária nenhuma conetividade especial. Por conseguinte, não é especificado nenhum método de conetividade.
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 exemplo:
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 mais informações sobre a utilização de gcloud
para criar um perfil de ligação para o Cloud Storage, consulte a documentação do Cloud SDK.
Receba informações sobre um perfil de associação
O código seguinte mostra um pedido para obter informações sobre um perfil de ligação para uma base de dados Oracle de origem, uma base 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
Por exemplo:
GET https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
Para mais informações sobre a utilização de gcloud
para obter informações sobre o seu perfil de ligação, consulte a documentação do SDK do Google Cloud.
Apresentar perfis de ligação
O código seguinte mostra um pedido para obter informações sobre todos os seus perfis de associação.
REST
GET https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles
gcloud
Para mais informações sobre a utilização de gcloud
para obter informações sobre todos os seus perfis de ligação, consulte a documentação do SDK do Google Cloud.
Atualize um perfil de associação
O código seguinte mostra um pedido para alterar o nome de utilizador e a palavra-passe de um perfil de ligação existente para uma base de dados de origem.
Ao usar o parâmetro updateMask
no pedido, só os campos que especificar têm de ser incluídos no corpo do pedido (para este exemplo, os campos username
e password
, representados pelas flags oracle_profile.username
e oracle_profile.password
, respetivamente).
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 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 seguinte mostra um pedido para alterar a configuração de conectividade privada atribuída a um perfil de ligação. Este perfil de ligação usa o método de conetividade de rede de interligação de VPCs.
Para este exemplo, está a atribuir a configuração new_private_connection
ao perfil de associação.
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 exemplo:
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 mais informações sobre como usar gcloud
para atualizar o seu perfil de ligação, consulte a documentação do SDK do Google Cloud.
Elimine um perfil de ligação
O código seguinte mostra um pedido para eliminar um perfil de associação. Depois de o perfil de ligação ser eliminado, todas as streams que o usam falham.
REST
DELETE https://datastream.googleapis.com/v1/projects/PROJECT_ID/locations/ LOCATION/connectionProfiles/CONNECTION_PROFILE_ID
Por exemplo:
DELETE https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles/myOracleCP
gcloud
Para mais informações sobre como usar gcloud
para eliminar o seu perfil de associação, consulte a documentação do SDK do Google Cloud.
Descubra a estrutura de uma base de dados de origem
Use a API discoverConnectionProfile
para obter a lista de entidades (por exemplo, esquemas e tabelas) de uma origem e os metadados associados às entidades.
A API pode receber como parâmetro um ID de um perfil de associação existente ou uma definição completa do objeto de perfil de associação. A função pode devolver um único nível (por exemplo, todos os esquemas numa base de dados ou todas as tabelas num 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
Por exemplo:
POST https://datastream.googleapis.com/v1/projects/myProjectId/locations/ us-central1/connectionProfiles:discoverConnectionProfile?myOracleCP
gcloud
Para mais informações sobre a utilização do gcloud
para descobrir a estrutura da base de dados de origem, consulte a documentação do SDK do Google Cloud.
O que se segue?
- Saiba como usar a API Datastream para gerir streams.
- Saiba como usar a API Datastream para gerir configurações de conetividade privada.
- Para mais informações sobre a utilização da API Datastream, consulte a documentação de referência.