Gerenciar perfis de conexão

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.

Se quiser 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

Se quiser 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

Saiba mais sobre como usar gcloud para criar um perfil de conexão para um banco de dados MySQL de origem neste link.

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 o 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 banco de dados do SQL Server 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]",
  "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

Se quiser mais informações sobre como usar o gcloud para criar um perfil 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 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 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

Para 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.