Visão geral
Nesta seção, você aprenderá a usar a API Datastream para:
- Criar perfis de conexão para um banco de dados Oracle de origem, um banco de dados MySQL de origem, um banco de dados PostgreSQL de origem, um destino do BigQuery e um destino do Cloud Storage
- Recuperar informações, atualizar e excluir perfis de conexão
- Descobrir a estrutura dos perfis de conexão de origem ou de destino
Há duas maneiras de usar a API Datastream. É possível fazer chamadas de API REST ou usar a CLI (CLI) do Google Cloud.
Para informações gerais sobre como usar o gcloud
para gerenciar perfis de conexão do Datastream, clique na documentação do SDK Google Cloud.
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 e especifica o método de conectividade como usando 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]", "oracleProfile": { "hostname": "HOST_ID_ADDRESS", "port": PORT, "username": "USERNAME", "password": "PASSWORD", "databaseService": "DATABASE" }, "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", "password": "12345" "databaseService": "ORCL", }, "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 Cloud ou 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": "https://datastream.googleapis.com/v1/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": "https://datastream.googleapis.com/v1/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": "https://datastream.googleapis.com/v1/projects/ myProjectId/locations/us-central1/privateConnections/myPrivateConnection" } }
gcloud
Para mais informações sobre como usar o gcloud
para criar um perfil de conexão para um banco de dados Oracle de origem, clique aqui.
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, clique aqui.
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, clique aqui.
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 SQL Server banco de dados e especifica o método de conectividade como se usa 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", "mysqlProfile": { "hostname": "1.2.3.4", "port": 1433, "username": "root", "password": "12345" "database": "database1" }, "staticServiceIpConnectivity": {} }
Google Cloud CLI
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, clique aqui.
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": { "bucketName": "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": { "bucketName": "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 do 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 para 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 saber como usar o gcloud
para recuperar informações sobre o perfil de conexão, clique aqui.
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 saber como usar o gcloud
para recuperar informações sobre todos os seus perfis de conexão, clique aqui.
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_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
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
Se quiser mais informações sobre como usar o gcloud
para atualizar seu perfil de conexão, clique aqui.
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 o gcloud
para excluir seu perfil de conexão, clique aqui.
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 seu banco de dados de origem, clique aqui.
A seguir
- Saiba como usar a API Datastream para gerenciar streams.
- Saiba como usar a API Datastream para gerenciar configurações de conectividade particular.
- Para mais informações sobre como usar a API Datastream, consulte a documentação de referência.