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 origem do MySQL
  • Comportamento e limitações da origem do Oracle
  • Comportamento e limitações da origem do PostgreSQL (incluindo AlloyDB para PostgreSQL)
  • Comportamento e limitações da origem do SQL Server
  • Comportamento de destino do BigQuery
  • Comportamento de destino do 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 contínua de dados de fontes de 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. Além disso, o Datastream se integra ao Cloud Data Fusion para clientes que querem criar pipelines de dados com transformações para o BigQuery.

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 armazenamentos de dados 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 de mudanças de dados em um destino de dados.

A CDC pode ser usada em muitos casos de uso que derivam valor do acesso constante às mudanças de dados conforme elas acontecem, como análise, 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. Há dois tipos de preenchimento:

  • Incremental: o tipo padrão de preenchimento para tabelas. Durante o preenchimento incremental, o Datastream busca dados de intervalos de linhas em vários lotes e transmite os dados por lote para um lote de destino.
  • Despejo completo: durante o preenchimento de despejo completo, o Datastream extrai todos os dados de uma só 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 CDC e operações de preenchimento? Na maioria dos casos, não há consideração especial. 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.

O que é um fluxo de alterações versus replicação?

Um fluxo de alterações é uma sequência de eventos que o Datastream emite para um destino com a finalidade de 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 e individual 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 usa 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 fluxo? 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. Talvez haja algumas considerações comerciais para usar streams diferentes em fluxos lógicos distintos, mas cada stream adiciona carga ao banco de dados de origem. Essa carga é insignificante para a 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 de preenchimento e oferecendo a você o controle para decidir quais objetos e quando fazer isso.

É 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 fluxo em uma nova região ou projeto com a mesma configuração do fluxo atual, mas não marque a caixa de seleção Preencher 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 fontes 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 origem, 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 alterações na linguagem de manipulação de dados (DML, na sigla em inglês) usando registros de transações.

É 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 tamanho de linha de 30 MB para o destino do Cloud Storage e limite de tamanho de linha de 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 em 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 rastreie as alterações do esquema e faça ajustes com base nelas, garantindo que todos os dados sejam transmitidos e carregados corretamente para o destino. 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, não convém 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 faço para passar dessa validação? Para iniciar o stream usando a API, adicione a sinalização force=true e ignore 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. Saiba mais em Resolver problemas com uma transmissão.

Você também pode recuperar uma transmissão com o status Failed permanently. Para mais informações, consulte Recuperar uma transmissão.

O Datastream bloqueia tabelas de bancos 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. É possível ter vários streams com o número total de tabelas acima de 10.000 tabelas.

Comportamento e limitações da origem 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 são as permissões mínimas que o Datastream precisa para replicar dados de um banco de dados MySQL de origem?

Conceda 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 registros binários?

Não, o Datastream não oferece suporte à compactação de eventos de transação com compactação de transações de registros binários. 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. Você ainda pode 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 origem 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 precisa de uma licença GoldenGate porque usa o Oracle LogMiner para ler os dados dos registros de 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 desativou o suporte à opção CONTINUOUS_MINE do LogMiner. No entanto, essa opção não é usada pelo Datastream. Por isso, 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 aceita o protocolo TCPS para conexões criptografadas por SSL/TLS com origens 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 oferece suporte à arquitetura multilocatária da Oracle (CDB/PDB). No entanto, só é possível replicar um único banco de dados conectável em um stream.
Sua organização não permite que você conceda 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, conceda as 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 transmitir alterações usando o Datastream, você também precisa de acesso de leitura a todas as tabelas incluídas no stream.

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

O Datastream oferece suporte à replicação de instâncias de réplica de leitura da Oracle? O Datastream aceita replicação de instâncias de réplica de leitura do Oracle, desde que a instância esteja configurada de acordo com as diretrizes de configuração.
O Datastream aceita bancos de dados Oracle SCAN RAC? Sim. 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 particular usando soluções de proxy reverso, como o OIDC.

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 aceita as duas fontes. Para informações sobre 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 ignorar 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 eles não aceitam conexões simultâneas. Só pode haver uma leitura de tarefa de CDC por vez no slot de replicação. 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.
O Datastream é compatível com criptografias 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 oferece suporte a versões de banco de dados do SQL Server que oferecem suporte à captura de dados alterados. Para uma lista completa das versões e edições compatíveis do SQL Server, consulte Versões.
Como funciona a replicação da CDC do Datastream para origens do SQL Server? O processo de ingestão de dados do Datastream usa registros de transação, em oposição às tabelas baseadas em CDC da Microsoft. Essa abordagem reduz a carga no banco de dados e mantém a rápida recuperação de dados.
O Datastream precisa ter, no mínimo, quais permissões para replicar dados de um banco de dados de origem do SQL Server?

Conceda os seguintes papéis e permissões ao usuário do Datastream para replicar dados de um banco de dados MySQL:

  • Permissões SELECT no banco de dados, sys.fn_dblog e sys.fn_dump_dblog
  • VIEW DATABASE STATE
  • VIEW SERVER STATE
  • O usuário precisa ser membro do papel fixo db_owner do banco de dados. Para informações sobre como adicionar um usuário ao papel, consulte as páginas de configuração do tipo de banco de dados de origem do SQL Server.
Por que, ao usar registros de transação, você precisa de configurações como a alteração de intervalos de sondagem e a definição de uma proteção contra truncamento? 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 ocorram 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:

  • Logs de transações: selecione este método para processar as alterações 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.
  • Alterar tabelas: selecione este método para processar alterações de tabelas de alterações 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 alterações do banco de dados de origem? O Datastream lê continuamente o fluxo de alterações 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 de eventos e um número de sequência de alteração (CSN, na sigla em inglês) interno para aplicar os eventos à tabela na ordem correta. Para mais informações sobre metadados de evento, consulte Eventos e streams.
Como os custos do BigQuery são calculados quando usado 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 de CDC do BigQuery.
Qual é o tamanho máximo de linha aceito pelo Datastream ao fazer streaming de dados para o 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 alterar esse comportamento para que as tabelas no BigQuery sigam a mesma estrutura que no 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, os esquemas na origem são mapeados 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 de destino do 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 única (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 que você classifique os eventos. Esses campos incluem:

Para origens 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 redo log.
  • 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 de 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 de quando 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: UPDATE-DELETE e 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 da linha aceito pelo Datastream ao fazer streaming de dados para o Cloud Storage? O tamanho máximo da linha aceito pelo 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álise: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 sobre os dados deles. 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 aos modelos do Dataflow para carregar dados no Cloud SQL ou no Spanner, é possível ter replicação atualizada dos 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 fazer a integração direta com o 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 Data Fusion:o Datastream se integra ao Cloud Data Fusion porque capacita um conector Oracle usando o recurso de replicação do Cloud Data Fusion. Você pode criar uma fonte de replicação da Oracle que o Datastream "impulsiona" internamente de maneira transparente para criar um pipeline de dados com facilidade. Esse pipeline inclui transformações avançadas para os dados da Oracle que o Datastream transmite para o Cloud Data Fusion.
  • 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 alguma limitação quanto ao número de operações de linguagem de manipulação de dados (DML)? Não. O modelo usa a API de inserções de streaming para carregar dados no BigQuery. Como resultado, 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 usam 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 quer excluir do streaming.

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 em 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 de 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 particular? Não, o Datastream não oferece suporte ao Private Service Connect.

Monitorar o Datastream

Pergunta Resposta
Como posso saber quando 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 ocasionalmente aumenta e depois diminui gradualmente com o tempo. Isso já era esperado? O Datastream é escalonado automaticamente quando a capacidade de processamento do evento gerada pela origem aumenta. No entanto, para proteger o banco de dados de origem e o Datastream, há limites para a quantidade de conexões e processos simultâneos que o Datastream pode abrir a qualquer momento. Picos temporários de latência são esperados quando há um aumento significativo na capacidade de processamento dos eventos, e devem diminuir gradualmente à medida que o backlog dos eventos é processado.

Preços

Pergunta Resposta
Como o Datastream é cobrado?

O preço do Datastream é calculado com base no volume (GB) de dados processados da 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.
Se você usa o Datastream com o BigQuery, Dataflow ou Cloud Data Fusion, quanto paga pelo serviço? 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.