Faça a gestão das streams

Nesta página, vai saber como usar a API Datastream para:

  • Crie streams
  • Obtenha informações sobre streams e objetos de stream
  • Atualizar streams iniciando-as, pausando-as, retomando-as e modificando-as, bem como iniciando e parando o preenchimento para objetos de stream
  • Recupere streams com falhas definitivas
  • Ative o streaming de objetos grandes para streams Oracle
  • Elimine streams

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 Google Cloud CLI para gerir streams do Datastream, consulte o artigo Streams do Datastream da CLI gcloud.

Crie uma stream

Nesta secção, vai aprender a criar uma stream que é usada para transferir dados da sua origem para um destino. Os exemplos que se seguem não são exaustivos, mas realçam funcionalidades específicas do fluxo de dados. Para abordar o seu exemplo de utilização específico, use estes exemplos juntamente com a documentação de referência da API do fluxo de dados.

Esta secção aborda os seguintes exemplos de utilização:

Exemplo 1: transmita objetos específicos para o BigQuery

Neste exemplo, vai aprender a:

  • Transmita do MySQL para o BigQuery
  • Incluir um conjunto de objetos na stream
  • Defina o modo de escrita para a stream como apenas anexar
  • Preencha todos os objetos incluídos na stream

Segue-se um pedido para extrair todas as tabelas de schema1 e duas tabelas específicas de schema2: tableA e tableC. Os eventos são escritos num conjunto de dados no BigQuery.

O pedido não inclui o parâmetro customerManagedEncryptionKey. Por isso, o sistema de gestão de chaves interno é usado para encriptar os seus dados em vez da CMEK. Google Cloud

O parâmetro backfillAll associado à realização do preenchimento histórico (ou instantâneo) está definido como um dicionário vazio ({}), o que significa que o Datastream preenche os dados históricos de todas as tabelas incluídas na stream.

REST

POST https://datastream.googleapis.com/v1/projects/myProjectId1/locations/us-central1/streams?streamId=mysqlCdcStream
{
  "displayName": "MySQL CDC to BigQuery",
  "sourceConfig": {
    "sourceConnectionProfileName": "/projects/myProjectId1/locations/us-central1/streams/mysqlCp",
    "mysqlSourceConfig": {
      "includeObjects": {
        "mysqlDatabases": [
          { "database": "schema1" },
          {
            "database": "schema2",
            "mysqlTables": [
              {
                "table": "tableA",
                "table": "tableC"
              }
            ]
          }
        ]
      },
    }
  },
  "destinationConfig": {
    "destinationConnectionProfileName": "BigQueryCp",
    "bigqueryDestinationConfig": {
      "sourceHierarchyDatasets": {
        "datasetTemplate": {
          "location": "us",
          "datasetIdPrefix": "prefix_"
        }
      },
      "dataFreshness": "900s"
    }
  },
  "backfillAll": {}
}

gcloud

Para mais informações sobre como usar gcloud para criar uma stream, consulte a documentação do SDK Google Cloud.

Exemplo 2: exclua objetos específicos de uma stream com uma origem PostgreSQL

Neste exemplo, vai aprender a:

  • Faça streaming do PostgreSQL para o BigQuery
  • Exclua objetos da stream
  • Exclua objetos do preenchimento

O código seguinte mostra um pedido para criar uma stream que é usada para transferir dados de uma base de dados PostgreSQL de origem para o BigQuery. Quando cria uma stream a partir de uma base de dados PostgreSQL de origem, tem de especificar dois campos adicionais específicos do PostgreSQL no seu pedido:

  • replicationSlot: um espaço de replicação é um pré-requisito para configurar uma base de dados PostgreSQL para replicação. Tem de criar um espaço de replicação para cada stream.
  • publication: uma publicação é um grupo de tabelas a partir do qual quer replicar alterações. O nome da publicação tem de existir na base de dados antes de iniciar uma stream. No mínimo, a publicação tem de incluir as tabelas especificadas na lista includeObjects da stream.

O parâmetro backfillAll associado à realização do preenchimento histórico (ou da captura instantânea) está definido para excluir uma tabela.

REST

POST https://datastream.googleapis.com/v1/projects/myProjectId1/locations/
us-central1/streams?streamId=myPostgresStream
{
  "displayName": "PostgreSQL to BigQueryCloud Storage",
  "sourceConfig": {
    "sourceConnectionProfileName": "/projects/myProjectId1/locations/us-central1/connectionProfiles/postgresCp"