Perguntas frequentes

Nesta página, você encontra respostas para 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 e limitações gerais 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 do 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 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 otimizada de dados de origens banco de dados relacional, como AlloyDB para PostgreSQL, PostgreSQL, MySQL, SQL Server e Oracle, diretamente no BigQuery. O Datastream oferece a escala, velocidade, segurança e simplicidade que as empresas modernas precisam. Com uma arquitetura sem servidor e com escalonamento automático, o Datastream permite configurar facilmente um pipeline ELT (extrair, carregar e transformar) para a replicação de dados de baixa latência, gerando insights quase em tempo real.

O Datastream também pode sincronizar streams de dados em 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?

O CDC é uma abordagem de integração de dados que permite integrar e analisar dados mais rapidamente, 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.

O CDC é um mecanismo altamente eficiente para limitar o impacto na fonte ao carregar novos dados em armazenamentos e data warehouses operacionais. Ele elimina a necessidade de atualização em massa e janelas de lote inconvenientes, permitindo o carregamento incremental ou o streaming de dados em tempo quase real para 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. Há 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.
Há alguma limitação que você precisa considerar ao realizar um preenchimento?

Para informações sobre restrições de preenchimento, consulte as páginas de limitações conhecidas dos 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 stream, o Datastream executa o preenchimento e o CDC ao mesmo tempo. Em alguns casos extremos, por exemplo, ao replicar tabelas muito grandes que não podem ser preenchidas com o Datastream, talvez seja necessário carregar os dados no BigQuery antes de iniciar o fluxo.
Posso monitorar o status do CDC e das operações de preenchimento?

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

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

O status do CDC é o mesmo do stream. Se a operação do CDC falhar, toda a transmissão 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 na tabela. Eles podem ser consumidos e processados posteriormente no 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, que é mantida atualizada usando as mudanças transmitidas da tabela do Oracle. A replicação aproveita os fluxo de alterações consumindo cada evento de mudança e usando-o para atualizar o destino. O Datastream permite a replicação direta no BigQuery e oferece suporte a outros destinos, como o Cloud SQL e o Spanner, por meio da integração com o Dataflow, usando modelos que extraem os eventos de fluxo de mudança do Cloud Storage e atualizam as tabelas de destino.

O Datastream requer um agente na origem? Você não precisa instalar um agente na origem. O Datastream usa interfaces existentes (como o Oracle LogMiner) para extrair os dados da origem.
Quantas tabelas posso incluir em um único stream? O Datastream pode processar até 10.000 tabelas em um único stream. Não há motivos técnicos para dividir um banco de dados em vários fluxos, embora possa haver algumas considerações comerciais para usar fluxos diferentes para fluxos lógicos diferentes, por exemplo, ao replicar transações grandes de origens 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 o 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 em massa e janelas de lote inconvenientes, permitindo carregamento incremental ou streaming de dados em tempo real para 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 registro da origem para 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 stream marcando a caixa de seleção Preenchimento de 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 e limitações gerais da fonte

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

O Datastream oferece suporte a streaming de dados das origens Oracle, MySQL, PostgreSQL, AlloyDB para PostgreSQL e SQL Server, hospedadas na nuvem e autogerenciadas. 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?

No 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 conta com o 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 consumir e processar essas alterações.

Para o SQL Server, o Datastream rastreia as alterações na linguagem de manipulação de dados (DML) usando registros de transações.

É possível copiar arquivos de registro diretamente de uma origem para 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 origens de banco de dados específicas.

Limitações gerais incluem:

  • Tamanho do evento: limite máximo de 100 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. Você pode eliminar dados duplicados usando metadata 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 em várias 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 esquema interno do Datastream, e cada evento referencia o 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í (rejeitei) uma coluna no meu 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 a renomeação de uma coluna na origem como a exclusão de uma coluna e a adição de outra. Nesse caso, você não quer perder a coluna original no destino.
O stream não inicia devido a uma falha de validação, mas acho que é um erro ou quero tentar executar o stream de qualquer maneira. 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 fluxo vai ser executado. Ele ainda pode falhar se o banco de dados não tiver a configuração ou as permissões necessárias.
Posso reiniciar uma transmissão com falha?

É possível corrigir um fluxo com o status Failed resolvendo os erros informados pelo Datastream. 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 um stream.

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

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 registro binário para usar a funcionalidade de captura de dados alterados para MySQL no Datastream.

Sua organização não permite conceder a permissão SELECT em todas as tabelas e bancos de dados. Ainda é possível usar o Datastream?

É possível conceder a permissão SELECT às tabelas específicas que você quer replicar ou a todo o esquema em 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 para a qual você está concedendo a permissão SELECT.
  • USER_NAME: o nome do usuário para 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 tem suporte em todas as versões disponíveis da Oracle, 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 oferece suporte à criptografia Secure Sockets Layer (SSL) e Transport Layer Security (TLS)?

Sim, o Datastream oferece suporte ao protocolo TCPS para conexões criptografadas com 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. Ainda é possível 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 é compatível com a replicação de instâncias de réplica de leitura do 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 do Oracle Real Application Clusters (RAC) com o Datastream. Para contornar 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 origem 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 oferece suporte à replicação de fontes do AlloyDB para PostgreSQL ou do 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 do AlloyDB Omni, consulte Configurar um banco de dados PostgreSQL autogerenciado.
O Datastream é compatível com a replicação de uma instância de réplica de leitura do PostgreSQL? Não, o Datastream não oferece suporte à replicação de instâncias de réplica de leitura para o PostgreSQL.
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 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 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ó é possível ter 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 mudanças subsequentes na origem são adiadas até que os eventos de exclusão já na fila de slots 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 oferece suporte à criptografia Secure Sockets Layer (SSL) e Transport Layer Security (TLS)?

O Datastream oferece suporte a conexões criptografadas com SSL/TLS que não exigem certificados de 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 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 mudanças, dependendo da configuração da origem. Para mais informações, consulte Banco de dados do SQL Server de origem.
Quais permissões mínimas o Datastream precisa 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 de registros de transação:

  • Permissões SELECT no banco de dados e para a função sys.fn_dblog
  • Permissões SELECT na tabela dbo.sysjobs
  • VIEW SERVER STATE
  • Para informações detalhadas sobre como configurar a origem, consulte as páginas de configuração correspondentes para 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? Ao replicar dados de uma origem do SQL Server usando registros de transação, se um registro for truncado antes de ser lido pelo Datastream, haverá perda de dados. Alterar os intervalos de pesquisa e configurar a proteção contra truncamento é opcional, mas oferece uma camada extra de proteção para garantir que o Datastream possa ler os dados mesmo em cenários em que ocorrem inatividade ou problemas de 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?

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

  • 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 um menor throughput e aumenta a carga no seu banco de dados.

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

Comportamento do 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 mudanças à tabela com base na configuração de desatualização.
Como as operações da 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 na tabela de acordo com as chaves primárias definidas na origem. O BigQuery processa os eventos e aplica as mudanças à tabela do BigQuery 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 Somente adição tivesse sido usado.
Como o Datastream e o BigQuery lidam com a ordem dos 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 do CDC do BigQuery.
Qual é o tamanho máximo de linha com suporte no Datastream para streaming de dados no BigQuery? O tamanho máximo de linha com suporte no Datastream é de 20 MB.
Quando você faz streaming para o BigQuery, as tabelas recebem o prefixo _. É 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 o conjunto de dados único para a opção "Todos os esquemas", os nomes das tabelas recebem o prefixo _, de acordo com a convenção de nomenclatura de tabelas no BigQuery.
A CDC pode capturar 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 das que já foram replicadas para o destino. As colunas excluídas são ignoradas, e o Datastream as preenche com valores NULL no destino. Depois, você pode excluir essas colunas manualmente 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 redo log.
  • ssn (número de sequência do SQL), que é usado quando o registro no redo log é 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 origens do PostgreSQL:

  • source_timestamp, que é o carimbo de data/hora em que o registro foi alterado na origem. Se os valores de source_timestamp dos 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 registro WAL.

Para mais informações sobre os 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 arquivos não é garantida, a melhor maneira de determinar a ordem de processamento dos arquivos para a origem é conseguir todos os eventos de todos os arquivos no carimbo de data/hora específico e 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 do 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 depois da atualização. Para mais informações sobre metadados específicos da origem, consulte Eventos e streams.
Qual é o tamanho máximo de linha com suporte no Datastream para streaming de dados no Cloud Storage? O tamanho máximo de linha com suporte do Datastream é de 100 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. 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 receber insights atualizados sobre o estado da empresa.
  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 dados de eventos continuamente em destinos como o BigQuery e o Cloud Storage, você pode criar arquiteturas orientadas a eventos com base no consumo de dados de evento 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 Google Cloud fornecendo a replicação de dados do CDC de origens para vários serviços Google Cloud . Ao se integrar perfeitamente a esses serviços, o Datastream se encaixa no ecossistema 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 mudança diretamente no conjunto de dados do BigQuery, onde as mudanças são mescladas continuamente (UPSERT) com os dados atuais.
  • Dataflow:o Datastream se integra ao Dataflow usando modelos do Dataflow. Esses modelos leem dados do Cloud Storage e os carregam no BigQuery, no Cloud SQL para PostgreSQL ou no 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 foram criados para arquivos gerados pelo Datastream para processamento pronto.
  • 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 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 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, algumas limitações de cota são aplicáveis.

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 privada por peering de VPC:use esse método para se conectar aos bancos de dados hospedados em Google Cloudpela rede interna do Google Cloudou aproveite uma VPN ou Interconnect existente estabelecendo o peering de VPC entre a rede privada do Datastream e a VPC 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 afirma 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, você não vai mais precisar do papel. Se a sua organização não permitir a concessão do 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 pareadas

  • 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 depois diminui gradualmente ao longo do tempo. Isso é normal? O Datastream é dimensionado automaticamente quando o volume de eventos gerados 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