Faça a gestão dos perfis de ligação

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?