Um stream no Datastream pode preencher dados históricos e fazer streaming de alterações em andamento para um destino. Como parte da criação de um stream, você configurou informações sobre o banco de dados de origem para o stream.
Se você tiver marcado a caixa de seleção Preenchimento de dados históricos, o Datastream transmitirá todos os dados existentes, além das alterações nos dados, da origem para o destino.
Se você não marcar essa caixa de seleção, o Datastream transmitirá apenas as alterações dos dados. Para que o Datastream transmita um snapshot de todos os dados existentes da origem até o destino, é necessário iniciar o preenchimento dos objetos que contêm esses dados. Os objetos estão na forma de esquemas, tabelas e colunas de banco de dados.
Outro motivo para iniciar o preenchimento de um objeto é se os dados não estiverem sincronizados entre a origem e o destino. Por exemplo, um usuário pode excluir dados no destino acidentalmente, e os dados serão perdidos. Nesse caso, o preenchimento do objeto será iniciado como um mecanismo de redefinição, porque todos os dados são transmitidos para o destino em uma única captura. Como resultado, os dados são sincronizados entre a origem e o destino.
Depois de iniciar o preenchimento de um objeto, você poderá interromper o preenchimento desse objeto. No exemplo anterior, o usuário modifica o esquema do banco de dados, e os dados ou o esquema estão corrompidos. Você não quer que o esquema ou os dados sejam transmitidos para o destino, então o preenchimento do objeto é interrompido.
Também é possível interromper o preenchimento de objetos para fins de balanceamento de carga. O Datastream pode executar vários preenchimentos em paralelo. Isso pode sobrecarregar a origem. Se a carga for significativa, interrompa o preenchimento dos objetos e, em seguida, inicie o preenchimento para eles, um por um.
Status do objeto
Os vários status no ciclo de vida de iniciar e interromper o preenchimento de um objeto incluem:
Sem status (representado na UI como
-): os motivos para um objeto que recebe esse status incluem:- O stream não foi iniciado.
- A caixa de seleção Dados históricos de preenchimento não foi marcada. Portanto, o preenchimento é definido como manual.
- O objeto é excluído explicitamente para ser preenchido automaticamente.
- O stream está configurado para incluir tabelas futuras. Se isso acontecer, quando novas tabelas forem adicionadas à origem, nenhuma tarefa de preenchimento automático será criada para elas (porque as novas tabelas normalmente não têm dados históricos para preenchimento).
Pending: o preenchimento ainda não foi iniciado para o objeto.Active: o preenchimento está em andamento para o objeto.Completed: o preenchimento do objeto é concluído.Stopped: o preenchimento é interrompido para o objeto. Se o preenchimento for iniciado novamente para o objeto, o Datastream transmitirá todos os dados existentes associados ao objeto da origem para o destino.Failed: o preenchimento falhou para o objeto e deve ser iniciado novamente.
Iniciar preenchimento
Acesse a página Streams no Google Cloud Console.
Clique no stream que contém objetos para os quais você quer iniciar o preenchimento.
Clique na guia Objetos.
Marque a caixa de seleção de cada objeto para o qual você quer iniciar o preenchimento.
Clique em Iniciar preenchimento.
Se você selecionou apenas um objeto, clique em INITIATE OBJECT BACKFILL na caixa de diálogo. Se você selecionou vários objetos, clique em INITIAR PREENCHIMENTOS DE OBJETIVOS.
O Datastream começará o preenchimento dos objetos selecionados, e o status de cada objeto mudará de
PendingparaActiveatéCompleted. Quando um objeto tem o statusCompleted, isso significa que o Datastream leu todos os dados do objeto, mas os dados ainda podem estar sendo carregados no destino.
Iniciar preenchimento parcial
Além dos preenchimentos completos, é possível realizar um preenchimento parcial para carregar um subconjunto específico de dados da origem para o destino. Para fazer isso, forneça uma cláusula SQL WHERE como um filtro personalizado.
O Datastream oferece suporte ao preenchimento parcial para as seguintes origens:
- SQL Server
- Spanner
- Oracle
- PostgreSQL
Para iniciar um preenchimento parcial:
Acesse a página Streams no Google Cloud Console.
Clique no stream que contém objetos para os quais você quer iniciar o preenchimento.
Clique na guia Objetos.
Selecione o objeto para o qual você quer iniciar o preenchimento.
Clique em Iniciar preenchimento.
No painel que aparece, marque a caixa de seleção Ativar filtro personalizado.
Insira sua cláusula SQL
WHERE. Por exemplo,product_id > 12 AND timestamp = '2025-01-06T22:00:00.00'.Clique em Iniciar preenchimento.
O Datastream valida o filtro. Se a validação falhar, uma mensagem de erro vai aparecer acima do editor. Se a validação for bem-sucedida, o Datastream iniciará o job de preenchimento.
Sintaxe de filtro personalizado com suporte
Ao fornecer um filtro personalizado, o Datastream oferece suporte a um subconjunto fundamental da sintaxe da cláusula SQL WHERE. Os elementos com suporte incluem:
- Operadores lógicos:
AND,OR - Operadores de comparação:
=,<,>,<=,>=,!= - Condições:
IN,NOT IN,IS NULL,IS NOT NULL - Agrupamento: parênteses
()para definir grupos de condições Valores:
- Strings: texto entre aspas simples, por exemplo,
'value', - Números: números inteiros (
123), decimais (123.45), números negativos (-10) e números com expoentes (1.2e3). - Valores booleanos: palavras-chave
TRUEouFALSEque diferenciam maiúsculas de minúsculas.
- Strings: texto entre aspas simples, por exemplo,
Identificadores:
- Qualificação: os nomes das colunas podem ser totalmente qualificados usando pontos para especificar
o esquema ou a tabela, por exemplo,
myColumn,myTable.myColumn, oumySchema.myTable.myColumn. - Identificadores sem aspas: podem conter letras, números e sublinhados e precisam começar com uma letra ou sublinhado. A diferenciação entre maiúsculas e minúsculas para nomes de colunas ou tabelas depende do banco de dados de destino.
- Identificadores entre aspas duplas: precisam estar entre aspas duplas (
").
- Qualificação: os nomes das colunas podem ser totalmente qualificados usando pontos para especificar
o esquema ou a tabela, por exemplo,
Limitações de preenchimento parcial
Algumas instruções, operadores e palavras-chave são explicitamente proibidos, e o uso deles resulta em um erro. São eles:
- Comentários, como
--ou/* */. - Funções, por exemplo,
UPPER(column)eNOW(). - Expressões aritméticas, por exemplo,
column + 1 > 10. - O operador
LIKE. Não há suporte para caracteres curinga, como%ou_, comLIKE. - O operador
BETWEEN. Use>=e<=instead. - Subconsultas, por exemplo,
(SELECT ...)na cláusulaWHERE. - Instruções
CASE, por exemplo,CASE WHEN ... END. - Comparações de colunas, como
column1 = column2. As comparações precisam ser feitas com literais. - Tipos ou funções específicos de
DATEeTIME. - Operadores específicos de matriz ou JSON.
- Conversão explícita: por exemplo,
CAST(column AS INT).
Parar preenchimento
Acesse a página Streams no Google Cloud Console.
Clique no stream que contém objetos com o preenchimento que você quer interromper.
Clique na guia Objetos.
Marque a caixa de seleção de cada objeto para o qual você quer interromper o preenchimento.
Clique em Parar preenchimento.
Se você selecionou apenas um objeto, clique em Parar preenchimento de objeto na caixa de diálogo. Se você selecionou vários objetos, clique em Parar preenchimentos de objetos.
O Datastream interromperá o preenchimento dos objetos selecionados e o status de cada objeto será alterado para
Stopped.Quando um objeto tem esse status, o preenchimento é interrompido para ele. Se o preenchimento for iniciado novamente para o objeto, o Datastream transmitirá todos os dados existentes associados ao objeto da origem para o destino.
A seguir
- Para saber mais sobre streams, consulte Ciclo de vida do stream.
- Para saber como visualizar informações sobre o stream, consulte Visualizar um stream.
- Para saber como modificar um stream, consulte Modificar um stream.
- Para saber como monitorar um stream, consulte Monitorar um stream.
- Para saber como recuperar um stream com falha, consulte Recuperar um stream.