Perguntas frequentes

Visão geral

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

  • Perguntas gerais sobre o Datastream e a captura de dados alterados (CDC)
  • Limitações e comportamento geral da fonte
  • Comportamento e limitações de origem do MySQL
  • Comportamento e limitações da origem do Oracle
  • Comportamento e limitações do PostgreSQL de origem (incluindo AlloyDB para PostgreSQL)
  • Comportamento e limitações de origem do SQL Server
  • Comportamento de destino do BigQuery
  • Comportamento do 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 de 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, permitindo 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 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?

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 origem ao carregar novos dados em armazenamentos de dados operacionais e data warehouses. Além disso, elimina a necessidade de atualização de carga em massa e janelas de lote inconvenientes, permitindo o carregamento incremental ou o streaming quase em tempo real de mudanças de dados em um destino de dados.

O CDC pode ser usado em muitos casos de uso que geram valor de acesso constante a alterações de dados à medida que 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 para tabelas. Durante o preenchimento incremental, o Datastream busca dados de intervalos de linhas em vários lotes e transmite os dados para um lote de destino por lote.
  • Full dump: 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 para os respectivos tipos de origem:

Qual é a ordem recomendada para operações de CDC e de preenchimento? Na maioria dos casos, não há consideração especial aqui. Quando o preenchimento está 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 das operações de CDC e 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 é, na verdade, 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 registros de alterações de uma tabela específica ao longo de um período. Os eventos representam inserções, atualizações e exclusões nessa tabela e podem ser consumidos e processados downstream do Cloud Storage por serviços como o Dataflow para casos de uso como arquiteturas orientadas a eventos.

No contexto do Datastream, Replicação significa uma representação atualizada 1:1 da tabela de origem no destino. Por exemplo, uma tabela no Oracle com alterações replicadas continuamente para uma tabela do BigQuery, em que a tabela do BigQuery é 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 de fluxo de alterações do Cloud Storage e atualizando as tabelas de destino de acordo.

O Datastream requer um agente na origem? Você não precisa instalar um agente na origem. O Datastream usa interfaces atuais (como Oracle LogMiner) para extrair os dados da origem.
Quantas tabelas posso incluir em um único stream? O Datastream pode gerenciar até 10.000 tabelas em um único stream. Não há motivo técnico para dividir um banco de dados em vários fluxos. Pode haver algumas considerações de negócios ao usar streams diferentes para 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 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 de carga em massa e janelas em lote inconvenientes, permitindo o carregamento incremental ou o streaming quase em tempo real de 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 a você o controle para decidir quais objetos preencher 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. Se quiser, 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.

Limitações e comportamento geral da fonte

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

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

No caso do 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 consumir e processar essas mudanças.

No SQL Server, o Datastream rastreia alterações na linguagem de manipulação de dados (DML) 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:

  • Capacidade de cerca de 5 MBPS com um limite máximo de tamanho de linha de 30 MB para o destino do Cloud Storage e de 10 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 ver as limitações específicas de 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. É possível eliminar 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 esquemas, como o Cloud Storage, o Datastream simplifica o processamento downstream de dados entre fontes normalizando os tipos de dados em todas elas. O Datastream utiliza o tipo de dados de origem original (por exemplo, um tipo NUMERIC MySQL ou PostgreSQL ou um tipo NUMBER 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 esquema 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 mudanças no esquema e faça ajustes com base nelas, garantindo que todos os dados sejam transmitidos e carregados para o 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í (descartei) uma coluna no 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, você pode preferir 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 inicia devido a uma falha de validação, mas acho que é um erro ou quero tentar executar o stream mesmo assim. Como posso passar por essa validação? É possível iniciar o stream usando a API adicionando a sinalização force=true e ignorando as verificações de validação. Pular validações não garante que o stream será executado. Ele ainda poderá falhar se o banco de dados não tiver as configurações ou as permissões necessárias.
Posso reiniciar uma transmissão que falhou?

É possível corrigir um fluxo com o status Failed corrigindo os erros informados pelo Datastream. Para saber mais, consulte Resolver problemas de um stream.

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 o número total de tabelas acima de 10.000 tabelas.

Comportamento e limitações de 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 permissões pelo menos o Datastream precisa para replicar dados de um banco de dados MySQL de origem?

Conceda as seguintes permissões ao seu 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 da transação de registros binários para usar a funcionalidade de captura de dados alterados para MySQL no Datastream.

Sua organização não permite a concessão da 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 seu banco de dados MySQL.
  • TABLE_NAME: o nome da tabela a que 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 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 disponíveis publicamente, e o Datastream continuará a oferecer suporte ao LogMiner em todas as versões futuras. O Oracle suspendeu o suporte à opção CONTINUOUS_MINE do LogMiner. No entanto, essa opção não é usada pelo Datastream. Portanto, a 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 a criptografias Secure Sockets Layer (SSL) e Transport Layer Security (TLS)?

Sim, o Datastream oferece suporte ao protocolo TCPS para conexões criptografadas SSL/TLS para 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 banco de dados conectável em um stream.
Sua organização não permite a concessão da 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 para a 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 ter 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 uma transmissão.

O Datastream oferece suporte à replicação de instâncias de réplica de leitura do Oracle? O Datastream é compatível com a 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 oferece suporte para 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, na sigla em inglês) em ambientes Oracle Real Application Clusters (RAC) usando 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 kotlin.

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 mudança do PostgreSQL.
O Datastream oferece suporte à replicação de origens do AlloyDB para PostgreSQL ou AlloyDB Omni? Sim. O Datastream oferece suporte às 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 mais informações sobre como configurar o banco de dados de origem do 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 replicação lógica porque o PostgreSQL não oferece suporte à decodificação lógica em réplicas de leitura.
O Datastream é compatível com 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 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 utiliza na conexão 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 aceitam conexões simultâneas. Só pode haver uma tarefa de CDC por vez no slot de replicação. Por exemplo, se você excluir muitos registros do banco de dados de origem, o slot de replicação poderá ficar sobrecarregado com eventos de exclusão. As alterações subsequentes na origem são atrasadas até que os eventos de exclusão que já estão na fila do slot de replicação sejam processados.
O Datastream oferece suporte a 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 de 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 do banco de dados do SQL Server com suporte à captura de dados alterados. Para ver uma lista completa das versões e edições compatíveis do SQL Server, consulte Versões.
Como a replicação de CDC do Datastream funciona para origens do SQL Server? O processo de ingestão de dados do Datastream utiliza registros de transação, em vez de tabelas baseadas em CDC do Microsoft. Essa abordagem reduz a carga no banco de dados e mantém a recuperação rápida de dados.
Quais permissões pelo menos 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 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 você precisa de configurações como a alteração dos intervalos de sondagem e a definição de uma proteção contra truncamento ao configurar a origem do SQL Server? Quando você replica dados de uma fonte do SQL Server, o Datastream rastreia alterações de DML usando registros de transações. Se um registro for truncado antes da leitura pelo Datastream, ocorrerá a perda de dados. A alteração dos intervalos de pesquisa e a configuração da proteção contra truncamento são opcionais, mas fornecem uma camada adicional de proteção para garantir que o Datastream possa ler os dados mesmo em cenários em que ocorrem problemas de inatividade ou conectividade. Para mais informações, consulte Configurar um banco de dados de origem do SQL Server.

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 UPDATE e DELETE são aplicadas no BigQuery? 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 fonte. O BigQuery processa os eventos e aplica alterações à tabela do BigQuery com base nas chaves primárias dela.
Como o Datastream e o BigQuery lidam com tabelas que não têm uma chave primária? Se a tabela de origem não tiver uma chave primária, elas serão tratadas como somente anexação, e cada evento de uma determinada linha aparecerá como uma linha separada no BigQuery.
Como o Datastream e o BigQuery lidam com a ordenação de eventos? O BigQuery usa os metadados de evento 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 aprender a controlar os custos do BigQuery, consulte Preços do CDC do BigQuery.
Qual é o tamanho máximo de linha compatível com o Datastream ao fazer streaming de dados para o BigQuery? O tamanho máximo de linha compatível com o Datastream é de 20 MB.
Quando você faz streaming para o BigQuery, as tabelas têm o prefixo _. É possível alterar esse comportamento para que as tabelas no BigQuery sigam a mesma estrutura que têm 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, 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 do 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.
O CDC pode capturar alterações do 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 para as novas linhas, mas não as 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, é possível excluir essas colunas manualmente no BigQuery.

Comportamento do 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 exclusiva (baseada 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 de forma exclusiva a linha nos arquivos de registro e permitem classificar 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), 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 de 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 quando o registro foi alterado na origem. Se os valores 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 campos de metadados, consulte Metadados específicos da fonte.

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 é obter todos os eventos de todos os arquivos do 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 de antes e depois no evento? Quando a chave primária de uma linha é alterada, 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 de linha compatível com o Datastream ao fazer streaming de dados para o Cloud Storage? O tamanho máximo de linha compatível com o 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 na plataforma. Os clientes podem usar esses dados atualizados continuamente no BigQuery para criar painéis sempre atualizados. Isso pode ser usado, por exemplo, para monitorar sistemas e receber insights atualizados sobre o estado da empresa.
  2. Cenários de sincronização e replicação de bancos de dados: ao integrar o Datastream aos modelos do Dataflow para carregar dados no Cloud SQL ou no Spanner, você pode ter a 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 dados de eventos continuamente em destinos como o BigQuery e o Cloud Storage, é possível criar arquiteturas orientadas a eventos que se baseiam 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 mudança 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 modelos do Dataflow. 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 IU do Dataflow e são criados para arquivos gerados pelo Datastream com processamento pronto para uso.
  • Cloud Data Fusion: o Datastream se integra ao Cloud Data Fusion alimentando um conector Oracle por meio do 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, você pode 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 por streaming para carregar dados no BigQuery. Como resultado, 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 utilizam 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?

Com o Datastream, é possível especificar quais elementos de dados específicos (esquemas, tabelas e colunas) da origem você quer transmitir para um destino e quais elementos quer excluir.

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 dos usuários (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. 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 de VPC. Depois que o peering é estabelecido, o papel não é mais necessário. Caso sua organização não permita 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 com 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 é compatível com o 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 ocasionalmente aumenta e diminui gradualmente com o tempo. Isso é esperado? O Datastream escalona automaticamente quando a capacidade de eventos gerados 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 do evento e diminuem gradualmente à medida que o backlog dos eventos é processado.

Preços

Pergunta Resposta
Como o Datastream é cobrado?

O preço do Datastream é baseado no volume (GB) dos dados que são transmitidos 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 bruto dos dados (não compactados) que é transmitido da origem para o destino. O Datastream cobra apenas pelos dados transmitidos para o destino.
Se você usa o Datastream com o BigQuery, o Dataflow ou o Cloud Data Fusion, qual é o preç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.