Perguntas frequentes

Visão geral

Nesta página, você encontra respostas para as perguntas frequentes sobre como usar o Datastream. Estas perguntas frequentes estão associadas a:

  • Perguntas gerais sobre o Datastream e a captura de dados alterados (CDC)
  • Comportamento geral e limitações da fonte
  • Comportamento e limitações da fonte do MySQL
  • Comportamento e limitações da fonte do Oracle
  • Comportamento e limitações da origem do PostgreSQL (incluindo o AlloyDB para PostgreSQL)
  • Comportamento e limitações da origem do SQL Server
  • Comportamento de destino do BigQuery
  • Comportamento do destino no Cloud Storage
  • Casos de uso comuns do Datastream
  • Como o Datastream se integra aos serviços de dados do Google Cloud
  • Segurança e conectividade
  • Como monitorar o Datastream
  • Preços
  • Informações adicionais sobre o Datastream

Perguntas gerais sobre o Datastream e a captura de dados alterados (CDC)

Pergunta Resposta
O que é o Datastream?

O Datastream é um serviço de replicação de dados (CDC, na sigla em inglês) sem alterações e fácil de usar. O Datastream permite a replicação perfeita de dados de fontes banco de dados relacional, como AlloyDB para PostgreSQL, PostgreSQL, MySQL, SQL Server e Oracle, diretamente no BigQuery. O Datastream oferece a escala, a velocidade, a segurança e a simplicidade que as empresas modernas precisam. Com uma arquitetura de escalonamento automático sem servidor, o Datastream permite configurar facilmente um pipeline ELT (extrair, carregar e transformar) para replicação de dados de baixa latência, o que permite insights quase em tempo real.

O Datastream também consegue sincronizar fluxos de dados entre bancos de dados e aplicativos heterogêneos de maneira confiável e com latência mínima. O serviço oferece integração simplificada com modelos do Dataflow para replicar bancos de dados no Cloud SQL ou no Spanner para sincronização de banco de dados ou aproveitar o fluxo de eventos diretamente do Cloud Storage para implementar arquiteturas orientadas a eventos.

Quais são os métodos usados pelo Datastream para fazer streaming de dados? O fluxo de dados transmite dados de uma origem para um destino usando um destes dois métodos:
  • CDC: captura de alterações contínuas da origem em tempo real.
  • Preenchimento: fornecimento de um instantâneo histórico dos dados que existe em uma tabela.
O que é o CDC?

A CDC é uma abordagem de integração de dados que permite integrar e analisar dados mais rapidamente e usando menos recursos do sistema. É um método para extrair apenas as alterações mais recentes (atualizações, inserções ou exclusões) de uma fonte de dados, geralmente lendo o registro de alterações que a fonte mantém para a própria integridade transacional interna.

A CDC é um mecanismo altamente eficiente para limitar o impacto na fonte ao carregar novos dados em repositórios operacionais e data warehouses. Ela elimina a necessidade de atualização de carga em massa e janelas de lote inadequadas, permitindo o carregamento incremental ou o streaming quase em tempo real das mudanças de dados em um destino de dados.

Os CDC podem ser usados em muitos casos de uso que derivam de valor do acesso constante às mudanças de dados conforme elas acontecem, como análises, sincronização de dados em sistemas distribuídos geograficamente e arquiteturas orientadas a eventos.

O que é preenchimento?

Além das alterações em andamento, o Datastream também usa o preenchimento para extrair todos os dados existentes de uma origem e, em seguida, enviá-los para um destino. Como resultado, o destino é "preenchimento" com todos os dados históricos da origem. Existem dois tipos de preenchimento:

  • Incremental: é o tipo padrão de preenchimento de tabelas. Durante o preenchimento incremental, o Datastream busca dados de intervalos de linhas em vários lotes e os transmite para um destino lote por lote.
  • Despejo completo: durante o preenchimento de despejo completo, o Datastream extrai todos os dados de uma vez e os transmite para um destino.
Existem limitações que você precisa considerar ao realizar um preenchimento?

Para informações sobre restrições de preenchimento, consulte as páginas de limitações conhecidas para os respectivos tipos de origem:

Qual é a ordem recomendada para a CDC e as operações de preenchimento? Na maioria dos casos, não há considerações especiais. Quando o preenchimento é ativado em um fluxo, o Datastream executa o preenchimento e a CDC ao mesmo tempo. Em alguns casos extremos, por exemplo, ao replicar tabelas muito grandes que não podem ser preenchidas usando o Datastream, talvez seja necessário carregar os dados no BigQuery antes de iniciar o stream.
Posso monitorar o status do CDC e das operações de preenchimento?

É possível monitorar o status de preenchimento por objeto:

  1. No console do Google Cloud, acesse a página Streams.
  2. Clique no stream que você quer monitorar.
  3. Clique na guia Objetos.

O status do CDC é, efetivamente, o status do fluxo. Se a operação de CDC falhar, todo o stream vai falhar.

Outras métricas no nível do objeto estão disponíveis no Cloud Monitoring. Para mais informações, consulte a documentação do Cloud Monitoring.

Qual é a diferença entre um fluxo de alterações e a replicação?

Um fluxo de alterações é uma sequência de eventos que o Datastream emite para um destino para consumo downstream. O resultado de um fluxo de alterações gravado no Cloud Storage é um conjunto de arquivos que contém eventos de registro de alterações de uma tabela específica durante um período. Os eventos representam inserções, atualizações e exclusões da tabela. Os eventos podem ser consumidos e processados downstream do Cloud Storage por serviços como o Dataflow para casos de uso como arquiteturas orientadas a eventos.

Replicação no contexto do Datastream significa uma representação atualizada de um para um da tabela de origem no destino. Por exemplo, uma tabela no Oracle com alterações replicadas continuamente para uma tabela do BigQuery. Essa tabela é mantida atualizada usando as alterações transmitidas da tabela do Oracle. A replicação aproveita os fluxo de alterações consumindo cada evento de alteração e usando-o para atualizar o destino. O Datastream permite a replicação direta no BigQuery e oferece suporte a outros destinos, como Cloud SQL e Spanner, pela integração com o Dataflow, aproveitando modelos que extraem os eventos do fluxo de alterações do Cloud Storage e atualizando as tabelas de destino de acordo com isso.

O Datastream requer um agente na origem? Você não precisa instalar um agente na origem. O Datastream usa as interfaces atuais (como o Oracle LogMiner) para extrair os dados da origem.
Quantas tabelas posso incluir em um único stream? O Datastream pode lidar com até 10.000 tabelas em um único stream. Não há motivo técnico para dividir um banco de dados em vários streams, embora possa haver algumas considerações comerciais para usar streams diferentes para fluxos lógicos distintos, por exemplo, ao replicar grandes transações de fontes do PostgreSQL. No entanto, cada stream aumenta a carga no banco de dados de origem. Essa carga é insignificante para o CDC, mas pode ser significativa para preenchimento.
E o impacto do desempenho sobre o uso do Datastream em um banco de dados de produção?

O CDC é um mecanismo altamente eficiente para limitar o impacto na fonte quando novos dados são carregados em armazenamentos e armazenamentos de dados de destino. O CDC também elimina a necessidade de atualização de carregamento em massa e janelas em lote inconvenientes, permitindo o carregamento incremental ou o streaming quase em tempo real das mudanças de dados em um destino.

Além disso, o Datastream minimiza o impacto de um preenchimento inicial, limitando o número de tarefas simultâneas e oferecendo o controle para decidir em quais objetos fazer o preenchimento.

É possível copiar os arquivos de registros da origem para o Google Cloud? Não. O Datastream consulta os registros diretamente no servidor de banco de dados, e apenas as mudanças nas tabelas especificadas são gravadas no destino.
O Datastream também pode transferir dados históricos? Sim. Por padrão, o Datastream recebe todos os dados históricos das tabelas de banco de dados da fonte que você especificou, em paralelo ao stream do CDC. O Datastream oferece flexibilidade para conseguir dados históricos de algumas ou todas as tabelas de banco de dados na sua origem. Além disso, ao configurar sua transmissão, você pode desativar o preenchimento histórico.
O Datastream garante uma entrega exatamente uma vez? Não. O Datastream é enviado pelo menos uma vez. Os metadados adicionais que o Datastream grava em cada evento podem ser usados para remover dados duplicados.
O Datastream pode lidar com bancos de dados criptografados? Sim.
O Datastream pode transmitir tabelas e colunas específicas de uma origem? Sim. Com o Datastream, é possível especificar listas de inclusão e exclusão para tabelas e esquemas e fazer streaming apenas dos dados desejados de uma origem para um destino. Você pode excluir colunas específicas das tabelas incluídas para ajustar ainda mais os dados que serão transmitidos para o destino. No entanto, as visualizações materializadas não podem ser replicadas.
Como mover um stream para outro projeto ou região?
  1. Crie um stream em uma nova região ou projeto com a mesma configuração do stream atual, mas não marque a caixa de seleção Preenchimento de dados históricos.
  2. Inicie o stream que você criou.
  3. Depois que a transmissão que você criou tiver o status RUNNING, pause a transmissão existente.
  4. Como opção, modifique o novo fluxo marcando a caixa de seleção Preencher dados históricos. Os dados existentes nas tabelas adicionadas ao stream serão transmitidos da origem para o destino no futuro.
Como o Datastream lida com transações não confirmadas nos arquivos de registros do banco de dados? Quando os arquivos de registros do banco de dados contêm transações não confirmadas, se alguma transação for revertida, isso refletirá isso nos arquivos de registros como operações de linguagem de manipulação de dados (DML) "reversa". Por exemplo, uma operação INSERT revertida terá uma operação DELETE correspondente. O Datastream lê essas operações dos arquivos de registros.
Qual é a disponibilidade regional do Datastream?

Para ver uma lista das regiões em que o Datastream está disponível, consulte Listas de permissões e regiões de IP.

Comportamento geral e limitações da fonte

Pergunta Resposta
Quais origens são compatíveis com o Datastream?

O Datastream oferece suporte para streaming de dados de fontes Oracle, MySQL, PostgreSQL, AlloyDB para PostgreSQL e SQL Server, hospedados na nuvem e autogerenciados. Para informações sobre versões específicas da fonte, consulte as seguintes páginas:

O Datastream pode lidar com bancos de dados criptografados? Sim.
Como o Datastream extrai dados das fontes?

Para o MySQL, o Datastream processa o registro binário do MySQL para extrair eventos de alteração.

Para a Oracle, o Datastream usa as configurações de registro LogMiner e complementares para extrair dados dos registros "redo" da Oracle.

Para o PostgreSQL e o AlloyDB para PostgreSQL, o Datastream depende do recurso de decodificação lógica do PostgreSQL. A decodificação lógica expõe todas as alterações confirmadas no banco de dados e permite o consumo e o processamento dessas alterações.

No SQL Server, o Datastream rastreia as mudanças na linguagem de manipulação de dados (DML) usando registros de transação.

É possível copiar arquivos de registros diretamente de uma origem para o Google Cloud? O Datastream não copia a totalidade dos arquivos de registros, mas consulta os arquivos diretamente no servidor de banco de dados e só replica alterações nas tabelas especificadas para o destino.
Quais são as limitações dos dados que o Datastream pode processar?

Há limitações gerais e limitações que se aplicam a fontes de banco de dados específicas.

Limitações gerais incluem:

  • Tamanho do evento: limite máximo de 30 MB para o destino do Cloud Storage e 20 MB para o BigQuery.
  • Algumas operações de linguagem de definição de dados (DDL) não são compatíveis durante a replicação, incluindo as seguintes:
    • Remoção de uma coluna do meio de uma tabela Isso pode causar uma discrepância de dados, porque os valores estão associados à coluna errada.
    • Alterar o tipo de dados de uma coluna. Isso pode causar uma discrepância de dados, porque eles não são mapeados corretamente para o tipo unificado de Datastream correto, e os dados podem ser corrompidos.
    • As exclusões em cascata são ignoradas.
    • O truncamento da tabela é ignorado.

Para limitações específicas da fonte, consulte as seguintes páginas:

Quais dados são incluídos em todos os eventos gerados pelo Datastream? Cada evento gerado (para inserções, atualizações e exclusões) inclui toda a linha de dados da origem com o tipo e o valor dos dados de cada coluna. Eles também incluem metadados de eventos que podem ser usados para estabelecer a ordem e garantir a exibição única.
O Datastream garante o pedido? Embora o Datastream não garanta a ordenação, ele fornece metadados adicionais para cada evento. Esses metadados podem ser usados para garantir a consistência posterior no destino. Dependendo da origem, da taxa e da frequência das alterações e de outros parâmetros, geralmente é possível conseguir a consistência eventual em um período de uma hora.
O Datastream garante uma entrega exatamente uma vez? O Datastream é exibido pelo menos uma vez. Elimine os dados duplicados usando metadados adicionais que o Datastream grava em cada evento.
Como o Datastream representa tipos de dados da origem para uso no processamento downstream?

Ao gravar em um destino sem esquema, como o Cloud Storage, o Datastream simplifica o processamento downstream de dados nas fontes normalizando os tipos de dados em todas elas. O Datastream usa o tipo de dados de origem original (por exemplo, um tipo NUMERIC do MySQL ou PostgreSQL ou um tipo NUMBER da Oracle) e o normaliza para um tipo unificado do Datastream.

Os tipos unificados representam um superconjunto sem perdas de todos os tipos possíveis. A normalização significa que dados de origens diferentes podem ser processados facilmente e consultados downstream de forma independente da fonte.

Como o Datastream lida com alterações de estrutura (esquema) na origem? O Datastream busca o esquema da origem periodicamente. Os esquemas são armazenados no registro de esquemas interno do Datastream, e cada evento faz referência ao esquema no momento em que ele foi gerado. Isso permite que o Datastream acompanhe as alterações de esquema e se ajuste com base nelas, garantindo que todos os dados sejam transmitidos e carregados no destino corretamente. No entanto, entre as buscas de esquema, algumas alterações de esquema podem não ser detectadas, podendo causar discrepâncias de dados.
Excluí (desliguei) uma coluna do banco de dados de origem, mas ela ainda aparece no destino. Por quê? O Datastream não exclui colunas no destino. Você precisa excluir as colunas manualmente. Esse comportamento é intencional, porque, em alguns casos, talvez você prefira manter a coluna excluída no destino. Por exemplo, o Datastream interpreta renomear uma coluna na origem como excluir uma coluna e adicionar outra. Nesse caso, você não quer perder a coluna original no destino.
O stream não é iniciado devido a uma falha de validação, mas acho que é um erro ou quero tentar executar o stream de qualquer forma. Como posso passar por essa validação? É possível iniciar o stream usando a API adicionando a flag force=true e pulando as verificações de validação. Ignorar as validações não garante que o stream será executado e ainda pode falhar se o banco de dados não tiver as configurações ou permissões necessárias.
Posso reiniciar uma transmissão com falha?

Corrija os erros relatados pelo Datastream para corrigir um fluxo com o status Failed. Para mais informações, consulte Resolver problemas com uma transmissão.

Também é possível recuperar uma transmissão com o status Failed permanently. Para mais informações, consulte Recuperar uma transmissão.

O Datastream bloqueia tabelas de banco de dados?

Não. O Datastream não precisa bloquear as tabelas.

As páginas de limitação de cada origem especificam que os streams podem ter até 10.000 tabelas. Isso significa que o Datastream não pode executar operações de CDC em paralelo para mais de 10.000 tabelas ao mesmo tempo? Não. O limite mencionado é por transmissão. Você pode ter vários fluxos com um número total de tabelas superior a 10.000.

Comportamento e limitações da fonte do MySQL

Pergunta Resposta
Como o Datastream extrai dados do MySQL? O Datastream usa o registro binário do MySQL para extrair os eventos de alteração do MySQL
O Datastream é compatível com instâncias de réplica de leitura do Cloud SQL para MySQL?

Sim, o Datastream é compatível com instâncias de réplica de leitura para o Cloud SQL para MySQL versões 5.7 e 8.0.

É possível ativar a geração de registros binários nestas instâncias. Para fazer isso, execute o seguinte comando gcloud:

gcloud sql instances patch INSTANCE_NAME -- enable-bin-log

Para mais informações, consulte Geração de registros binários em réplicas de leitura.

Quais permissões mínimas o Datastream precisa para replicar dados de um banco de dados MySQL de origem?

Você precisa conceder as seguintes permissões ao usuário do Datastream para replicar dados de um banco de dados MySQL:

  • SELECT
  • REPLICATION SLAVE
  • REPLICATION CLIENT
O Datastream oferece suporte à compactação de registro binário?

Não, o Datastream não oferece suporte à compactação de eventos de transação com compactação de transação de registro binário. Desative a compactação de transações de registros binários para usar a funcionalidade de captura de dados alterados para MySQL no Datastream.

Sua organização não permite que você conceda a permissão SELECT em todas as tabelas e bancos de dados próprios. Ainda é possível usar o Datastream?

É possível conceder a permissão SELECT às tabelas específicas que você quer replicar ou ao esquema inteiro de um banco de dados. Para fazer isso, execute um dos seguintes comandos:

GRANT SELECT ON DATABASE_NAME.TABLE_NAME TO USER_NAME@'%';
ou
GRANT SELECT ON DATABASE_NAME.* TO USER_NAME@'%';

Substitua:

  • DATABASE_NAME: o nome do banco de dados MySQL.
  • TABLE_NAME: o nome da tabela à qual você está concedendo a permissão SELECT.
  • USER_NAME: o nome do usuário a quem você está concedendo a permissão SELECT.

Se você quiser restringir as permissões a um nome de host específico, substitua o caractere % pelo endereço IP ou intervalo de endereços específico.

Comportamento e limitações da fonte do Oracle

Pergunta Resposta
Como o Datastream extrai dados da Oracle? O Datastream usa o Oracle LogMiner para extrair os dados dos registros "redo" da Oracle.
O Datastream requer uma licença da GoldenGate pela Oracle? Não. O Datastream não requer uma licença GoldenGate porque usa o Oracle LogMiner para ler os dados dos registros do refazer do banco de dados.
O que acontece quando o Oracle LogMiner não é mais compatível com as versões mais recentes? O Oracle LogMiner ainda é compatível com todas as versões do Oracle com disponibilidade geral, e o Datastream continuará oferecendo suporte ao LogMiner em todas as versões futuras. A Oracle suspendeu o suporte à opção CONTINUOUS_MINE do LogMiner. No entanto, essa opção não é usada pelo Datastream. Portanto, essa descontinuação não afeta o Datastream.
O Datastream é compatível com a criptografia de bancos de dados Oracle em trânsito?

O Datastream permite a criptografia de dados em trânsito com base nos Serviços do Oracle Net. O Datastream é executado no modo REQUESTED.

O Datastream é compatível com criptografias Secure Sockets Layer (SSL) e Transport Layer Security (TLS)?

Sim, o Datastream oferece suporte ao protocolo TCPS para conexões criptografadas SSL/TLS com origens do Oracle.

O Datastream é compatível com arquitetura de vários locatários (multi-tenant) da Oracle, especificamente Bancos de dados de contêiner (CDBs) e Bancos de dados plugáveis (PDBs)? Sim, o Datastream é compatível com a arquitetura de vários locatários (multi-tenant) do Oracle (CDB/PDB), mas você só pode replicar um único banco de dados plugável em um stream.
Sua organização não permite conceder a permissão GRANT SELECT ANY TABLE. Você ainda pode usar o Datastream?

Se não for possível conceder a permissão GRANT SELECT ANY TABLE, você poderá conceder permissões SELECT à seguinte lista de tabelas:

  • ALL_COL_COMMENTS
  • ALL_CONS_COLUMNS
  • ALL_CONSTRAINTS
  • ALL_DB_LINKS
  • ALL_EXTERNAL_TABLES
  • ALL_IND_COLUMNS
  • ALL_INDEXES
  • ALL_LOG_GROUPS
  • ALL_MVIEWS
  • ALL_OBJECTS
  • ALL_PART_TABLES
  • ALL_SEQUENCES
  • ALL_SOURCE
  • ALL_SYNONYMS
  • ALL_TAB_COLS
  • ALL_TAB_COLUMNS
  • ALL_TAB_COMMENTS
  • ALL_TABLES
  • ALL_TRIGGERS
  • ALL_TRIGGER_COLS
  • ALL_TYPES
  • ALL_USERS
  • ALL_VIEWS
  • DATABASE_PROPERTIES
  • DBA_ROLE_PRIVS
  • DUAL
  • PRODUCT_COMPONENT_VERSION
  • ROLE_SYS_PRIVS
  • USER_ROLE_PRIVS
  • USER_TAB_PRIVS

Para fazer streaming de mudanças usando o Datastream, você também precisa ter acesso de leitura a todas as tabelas incluídas no fluxo.

Para iniciar o stream, ignore a validação usando a API. Para mais informações, consulte Iniciar uma transmissão.

O Datastream oferece suporte à replicação de instâncias de réplica de leitura da Oracle? O Datastream oferece suporte à replicação de instâncias de réplica de leitura do Oracle, desde que a instância seja configurada de acordo com as diretrizes de configuração.
O Datastream é compatível com bancos de dados Oracle SCAN RAC? Sim, é possível. No entanto, não é possível estabelecer conectividade direta com bancos de dados usando o recurso de nome de acesso de cliente único (SCAN) em ambientes Oracle Real Application Clusters (RAC) que usam o Datastream. Para superar essa limitação, conecte-se diretamente a um dos nós ou use o Oracle Connection Manager. Também é possível criar uma configuração de conectividade privada usando soluções de proxy reverso, como o HAProxy.

Comportamento e limitações da fonte do PostgreSQL

Pergunta Resposta
Como o Datastream extrai dados do PostgreSQL? O Datastream usa o recurso de decodificação lógica do PostgreSQL para extrair os eventos de alteração do PostgreSQL.
O Datastream aceita replicação de fontes AlloyDB para PostgreSQL ou AlloyDB Omni? Sim. O Datastream oferece suporte a essas duas origens. Para saber como configurar o banco de dados de origem do AlloyDB para PostgreSQL, consulte Configurar um banco de dados do AlloyDB para PostgreSQL. Para informações sobre como configurar o banco de dados de origem AlloyDB Omni, consulte Configurar um banco de dados PostgreSQL autogerenciado.
O Datastream oferece suporte à replicação de uma instância de réplica de leitura do PostgreSQL? As instâncias de réplica de leitura não podem atuar como editores para a replicação lógica porque o PostgreSQL não é compatível com a decodificação lógica em réplicas de leitura.
O Datastream oferece suporte à segurança no nível da linha (RLS, na sigla em inglês)? O Datastream não oferece suporte à replicação de tabelas com o RLS ativado. No entanto, é possível contornar essa limitação usando a cláusula BYPASSRLS:
ALTER USER USER_NAME BYPASSRLS;

Substitua USER_NAME pelo nome do usuário que o Datastream usa para se conectar ao banco de dados e para quem você quer ignorar as políticas de RLS.

O Datastream oferece suporte a operações de CDC simultâneas ao replicar de uma origem do PostgreSQL?

Não. A replicação do PostgreSQL depende do conceito de slots de replicação, e os slots de replicação não oferecem suporte a conexões simultâneas. Só pode haver uma tarefa do CDC lendo do slot de replicação por vez. Por exemplo, se você excluir um grande número de registros do banco de dados de origem, o slot de replicação poderá ficar sobrecarregado com eventos de exclusão. Todas as alterações subsequentes na origem são adiadas até que os eventos de exclusão que já estão na fila do slot de replicação sejam processados.

Para saber mais sobre a abordagem sugerida ao replicar dados de transações grandes, consulte Como diagnosticar problemas.

O Datastream é compatível com a criptografia Secure Sockets Layer (SSL) e Transport Layer Security (TLS)?

O Datastream oferece suporte a conexões criptografadas por SSL/TLS que não exigem certificados do cliente.

Comportamento e limitações da origem do SQL Server

Pergunta Resposta
Quais edições do SQL Server são compatíveis com o Datastream? O Datastream é compatível com as versões do banco de dados SQL Server que oferecem suporte à captura de dados alterados. Para conferir uma lista completa de versões e edições do SQL Server com suporte, consulte Versões.
Como a replicação da CDC do Datastream funciona para origens do SQL Server? O processo de ingestão de dados do Datastream usa registros de transações ou tabelas de alterações, dependendo da configuração de origem. Para mais informações, consulte Banco de dados do SQL Server de origem.
O Datastream precisa ter, no mínimo, quais permissões para replicar dados de um banco de dados de origem do SQL Server?

Você precisa conceder os seguintes papéis e permissões ao usuário do Datastream para replicar dados de um banco de dados do SQL Server:

Para o método CDC de tabelas de alterações:

  • db_owner
  • db_denydatawriter

Além disso, para o método CDC dos registros de transação:

  • Permissões SELECT no banco de dados e para a função sys.fn_dblog
  • SELECT permissões na tabela dbo.sysjobs
  • VIEW SERVER STATE
  • Para informações detalhadas sobre como configurar a origem, consulte as respectivas páginas de configuração do seu tipo de banco de dados.

Por que você precisa de configurações, como alterar intervalos de pesquisa e configurar uma proteção contra truncamento ao usar registros de transação? Quando você replica dados de uma fonte do SQL Server usando registros de transações, vai ocorrer perda de dados se um registro ficar truncado antes da leitura dele pelo Datastream. A alteração dos intervalos de pesquisa e a configuração da proteção contra truncamento são opcionais, mas fornecem uma camada extra de proteção para garantir que o Datastream possa ler os dados mesmo em cenários em que ocorrem problemas de tempo de inatividade ou conectividade. Para mais informações, consulte Configurar um banco de dados de origem do SQL Server.
Qual método de CDC selecionar ao replicar de uma origem do SQL Server?

É possível selecionar um dos dois métodos de CDC disponíveis com base na configuração do banco de dados de origem do SQL Server:

  • Registros de transações: selecione esse método para processar mudanças diretamente dos registros do banco de dados. Esse método oferece o melhor desempenho e é mais eficiente, mas requer outras etapas de configuração que podem não ser aceitas pelo seu banco de dados.
  • Tabelas de mudança: selecione esse método para processar mudanças de tabelas de mudança dedicadas. Esse método é mais fácil de configurar e tem menos limitações, mas oferece suporte a uma capacidade de processamento menor e aumenta a carga no banco de dados.

Para mais informações, consulte Visão geral do SQL Server como origem.

Comportamento de destino do BigQuery

Pergunta Resposta
Como o Datastream e o BigQuery trabalham juntos para replicar as mudanças do banco de dados de origem? O Datastream lê continuamente o fluxo de mudanças do banco de dados de origem e transmite os eventos de inserção e exclusão para as tabelas de destino do BigQuery usando a API Storage Write. Em seguida, o BigQuery aplica as alterações à tabela com base na configuração de inatividade da tabela.
Como as operações de linguagem de manipulação de dados (DML) são aplicadas no BigQuery?
  • No modo Somente anexar, os dados são anexados no BigQuery como um fluxo de alterações, com uma linha separada para cada evento INSERT, UPDATE-INSERT, UPDATE-DELETE e DELETE.
  • No modo Mesclar (padrão), quando o Datastream cria uma tabela no BigQuery, ele define as chaves primárias da tabela de acordo com as chaves primárias definidas na fonte. O BigQuery processa os eventos e aplica alterações na tabela do BigQuery subjacente com base nas chaves primárias da tabela de origem. Se a tabela de origem não tiver uma chave primária, ela será tratada como se o modo Append-only tivesse sido usado.
Como o Datastream e o BigQuery lidam com a ordenação de eventos? O BigQuery usa os metadados do evento e um número de sequência de mudança interno (CSN) para aplicar os eventos à tabela na ordem correta. Para mais informações sobre metadados de eventos, consulte Eventos e streams.
Como os custos do BigQuery são calculados quando usados com o Datastream? Os custos do BigQuery são calculados e cobrados separadamente do Datastream. Para saber como controlar os custos do BigQuery, consulte Preços da CDC do BigQuery.
Qual é o tamanho máximo de linha com suporte no Datastream para streaming de dados no BigQuery? O tamanho máximo da linha aceito pelo Datastream é de 20 MB.
Quando você faz streaming para o BigQuery, as tabelas são prefixadas com _. É possível mudar esse comportamento para que as tabelas no BigQuery sigam a mesma estrutura do banco de dados de origem? Ao configurar conjuntos de dados para um destino do BigQuery, você cria um conjunto de dados para cada esquema ou um único conjunto de dados para todos os esquemas. Quando você cria um conjunto de dados para cada esquema, cada esquema na origem é mapeado para um conjunto de dados no BigQuery, e todas as tabelas no esquema de origem são mapeadas para as tabelas no conjunto de dados. Quando você seleciona a opção de conjunto de dados único para todos os esquemas, os nomes das tabelas são prefixados com _, de acordo com a convenção de nomenclatura de tabelas no BigQuery.
A CDC captura mudanças no esquema de origem, por exemplo, quando uma coluna é inserida ou excluída na origem? Essas mudanças são refletidas automaticamente nas tabelas já preenchidas nos conjuntos de dados de destino do BigQuery? O Datastream detecta novas colunas automaticamente e as adiciona ao esquema de destino das novas linhas, mas não às que já foram replicadas no destino. As colunas excluídas são ignoradas, e o Datastream as preenche com valores NULL no destino. Em seguida, você pode excluir manualmente essas colunas no BigQuery.

Comportamento do destino no Cloud Storage

Pergunta Resposta
Como são criados arquivos no Cloud Storage? O Datastream cria uma pasta para cada tabela. Em cada pasta, o Datastream alterna o arquivo (ou cria um novo) sempre que atinge o limite de tamanho ou tempo definido pelo usuário. O Datastream também alterna o arquivo sempre que uma alteração de esquema é detectada. O nome do arquivo será composto por uma chave de esquema exclusiva (com base em um hash do esquema), seguida pelo carimbo de data/hora do primeiro evento no arquivo. Por motivos de segurança, esses nomes de arquivo não devem ser lidos ou compreendidos pelas pessoas.
Se os dados no Cloud Storage não forem ordenados, então como os eventos podem ser reordenados antes de carregá-los no destino?

Cada evento contém vários campos de metadados que identificam exclusivamente a linha nos arquivos de registro e permitem classificar os eventos. Esses campos incluem:

Para origens do Oracle:

  • rs_id (ID do conjunto de registros), que é composto por três valores (por exemplo, 0x0073c9.000a4e4c.01d0). O rs_id identifica exclusivamente o registro no registro redo.
  • ssn (número de sequência SQL), que é usado quando o registro no registro refazer é muito longo. Por isso, o Oracle LogMiner divide o registro em várias linhas.

Para origens do MySQL:

  • log_file, de onde o Datastream extrai eventos na replicação do CDC.
  • log_position, que identifica o deslocamento do registro no registro binário do MySQL.

Para fontes do PostgreSQL:

  • source_timestamp, que é o carimbo de data/hora em que o registro foi alterado na origem. Se os valores de source_timestamp para os eventos que você está classificando forem idênticos, compare os valores de lsn.
  • lsn (número de sequência de registro), que identifica o deslocamento do registro no arquivo de registros do WAL.

Para mais informações sobre campos de metadados, consulte Metadados específicos da origem.

Se vários arquivos forem criados para o mesmo carimbo de data/hora, em que ordem eles serão processados? Como a ordenação dentro e entre os arquivos não é garantida, a melhor maneira de determinar a ordem de processamento dos arquivos para a origem é obter todos os eventos de todos os arquivos para o carimbo de data/hora específico e, em seguida, aplicar a ordenação usando o método mencionado anteriormente nesta seção.
Como as atualizações de chave primária são processadas? Há informações antes e depois no evento? Quando a chave primária de uma linha muda, o Datastream gera dois eventos para a mudança: um UPDATE-DELETE e um UPDATE-INSERT. O evento UPDATE-DELETE representa os dados antes da atualização e UPDATE-INSERT representa os dados após a atualização. Para mais informações sobre metadados específicos da origem, consulte Eventos e streams.
Qual é o tamanho máximo de linha aceito pelo Datastream ao fazer streaming de dados para o Cloud Storage? O tamanho máximo de linha com suporte no Datastream é de 30 MB.

Casos de uso

Pergunta Resposta
Quais são alguns casos de uso comuns do Datastream?

O Datastream é um serviço de CDC e replicação, o que significa que ele é flexível em vários casos de uso que podem se beneficiar do acesso a dados de alterações de streaming contínuo. Os casos de uso mais comuns do Datastream são:

  1. Análises: ao replicar dados diretamente no BigQuery, os clientes podem acessar dados operacionais atualizados no BigQuery. Os clientes podem usar esses dados atualizados continuamente no BigQuery para criar painéis atualizados. Isso pode ser usado, por exemplo, para monitorar sistemas e encontrar insights atualizados sobre o estado dos negócios.
  2. Cenários de replicação e sincronização de banco de dados: ao integrar o Datastream a modelos do Dataflow para carregar dados no Cloud SQL ou no Spanner, você pode ter a replicação atualizada dos seus dados de origem nesses bancos de dados. Use esses dados atualizados continuamente nos bancos de dados de destino para uma migração de banco de dados de baixa inatividade da origem para o destino, ou para configurações de nuvem híbrida, em que a origem e o destino residir em diferentes ambientes de hospedagem.
  3. Arquiteturas orientadas a eventos: as arquiteturas modernas baseadas em microsserviços dependem de hubs centrais de dados que são atualizados continuamente com eventos de toda a organização para serem orientados por eventos. Ao gravar continuamente dados de eventos em destinos como o BigQuery e o Cloud Storage, é possível criar arquiteturas orientadas a eventos que são baseadas no consumo de dados de eventos desses destinos.

Integrações

Pergunta Resposta
Como o Datastream se integra aos serviços de dados do Google Cloud?

O Datastream complementa e aprimora o pacote de dados do Google Cloud fornecendo replicação de dados do CDC de origens para vários serviços do Google Cloud. Ao se integrar perfeitamente a esses serviços, o Datastream se encaixa no ecossistema do Google Cloud.

O Datastream se integra aos seguintes serviços de dados:

  • BigQuery: o Datastream usa a API BigQuery Write para se integrar diretamente ao BigQuery. O Datastream grava os eventos de alteração diretamente no conjunto de dados do BigQuery, onde as alterações são mescladas continuamente (UPSERT) com os dados atuais.
  • Dataflow: o Datastream se integra ao Dataflow usando os modelos dele. Esses modelos leem dados do Cloud Storage e os carregam no BigQuery, Cloud SQL para PostgreSQL ou Spanner. O objetivo desses modelos é manter as tabelas de origem replicadas atualizadas nos destinos. Os modelos estão disponíveis na interface do Dataflow e são criados para arquivos gerados pelo Datastream com processamento imediato.
  • Cloud Storage: o Datastream se integra ao Cloud Storage, gravando-o como um destino de streaming de alteração.
  • Cloud SQL e Spanner:ao usar os modelos do Datastream e do Dataflow, é possível manter tabelas replicadas atualizadas nos bancos de dados.
O modelo do Datastream para o BigQuery no Dataflow tem limitações no número de operações da linguagem de manipulação de dados (DML)? Não. O modelo usa a API Streaming Inserts para carregar dados no BigQuery. Portanto, não há limite para o número de operações DML. No entanto, existem algumas limitações de cota.

Segurança e conectividade

Pergunta Resposta
O Datastream é um serviço seguro para dados confidenciais? O Datastream oferece suporte a várias configurações de conectividade privada e segura para proteger os dados em trânsito enquanto eles são transmitidos de uma origem para um destino. Depois que os dados são replicados, eles são criptografados por padrão e aproveitam os controles de segurança do BigQuery ou do Cloud Storage. Todos os dados armazenados em buffer pelo Datastream são criptografados em repouso.
Quais opções de conectividade estão disponíveis para conectar suas fontes ao Datastream?

Existem três tipos de métodos de conectividade que podem ser configurados:

  • Lista de permissões de IP: este método fornece conectividade pública listando os endereços IP regionais do Datastream na origem. Quando você cria seu stream, o Datastream exibe esses endereços IP na IU.
  • Encaminhar túnel SSH: este método fornece conectividade segura em redes públicas, aproveitando um bastion SSH configurado pelo cliente, além de permitir endereços IP regionais.
  • Conectividade particular por peering de VPC: use esse método para se conectar a bancos de dados hospedados no Google Cloud pela rede interna do Google Cloud. Você também pode usar uma VPN ou interconexão atual estabelecendo o peering de VPC entre a rede privada do Datastream e a VPC do Google Cloud da sua organização.
Como posso limitar o processamento de dados confidenciais pelo Datastream?

O Datastream permite especificar quais elementos de dados específicos (esquemas, tabelas e colunas) da sua origem você quer transmitir para um destino e quais elementos você quer excluir do fluxo.

Os registros do banco de dados podem conter dados de alterações de elementos que foram excluídos na definição do stream. Como não é possível filtrar esses elementos na origem, o Datastream lê, mas ignora todos os dados associados a eles.

Como o Datastream mantém as credenciais de banco de dados seguras? Todos os metadados do usuário (incluindo o nome de usuário e a senha usados para acessar as fontes de dados) são criptografados em trânsito e em repouso, e o Google os armazena nos sistemas de armazenamento próprios. O acesso a esses metadados é rastreado e auditado.
Por que a página Criar uma configuração de conectividade particular indica que você precisa conceder o papel roles/compute.networkAdmin à conta de serviço do Datastream para criar uma configuração de conectividade particular em uma VPC compartilhada? O papel networkAdmin é necessário apenas para criar o peering da VPC. Depois que o peering for estabelecido, o papel não será mais necessário. Caso sua organização não permita que você conceda o papel networkAdmin à conta de serviço do Datastream, crie um papel personalizado com as seguintes permissões específicas:

Selecionar intervalos de IP dinamicamente

  • compute.routes.get
  • compute.routes.list
  • compute.subnetworks.get
  • compute.subnetworks.list

Criar redes em peering

  • compute.globalOperations.get
  • compute.networks.addPeering
  • compute.networks.removePeering
  • compute.networks.get

Reservar endereços IP

  • compute.globalAddresses.get
  • compute.globalAddresses.create
  • compute.globalAddresses.createInternal
  • compute.globalAddresses.delete
  • compute.globalAddresses.deleteInternal
  • compute.networks.use
  • compute.networks.listPeeringRoutes
Posso usar o Private Service Connect para criar uma configuração de conectividade privada? Não, o Datastream não oferece suporte ao Private Service Connect.

Monitorar o Datastream

Pergunta Resposta
Como saber se todos os meus dados históricos foram copiados para o destino? O Datastream fornece informações sobre o status atual nos arquivos de registros. Uma entrada de registro é criada para indicar o preenchimento de uma tabela.
A latência às vezes aumenta e diminui gradualmente com o tempo. Isso já era esperado? O Datastream é dimensionado automaticamente quando o volume de eventos gerado pela origem aumenta. No entanto, para proteger o banco de dados de origem e o Datastream, há limites para o número de conexões e processos simultâneos que o Datastream pode abrir a qualquer momento. É esperado que ocorram picos temporários na latência quando houver um aumento significativo no volume de eventos, e que diminuam gradualmente à medida que o backlog de eventos for processado.

Preços

Pergunta Resposta
Como o Datastream é cobrado?

O preço do Datastream é baseado no volume (GB) de dados processados da sua origem para um destino.

Para saber mais sobre informações de preços do Datastream, consulte Preços.

Como você calcula o tamanho dos dados? O faturamento é calculado com base no tamanho dos dados processados pelo Datastream. O Datastream cobra apenas pelos dados transmitidos para o destino.
Quanto você paga pelo Datastream com o BigQuery ou o Dataflow? Cada serviço é cobrado e cobrado separadamente.

Mais informações

Pergunta Resposta
E se eu tiver outras dúvidas ou problemas com o uso do Datastream? A equipe de suporte do Google pode ajudar você se tiver problemas ao usar o Datastream. Além disso, o guia de solução de problemas aborda problemas comuns que você pode encontrar ao usar o Datastream.

A seguir