Um fluxo no Datastream pode preencher dados históricos e transmitir mudanças contínuas para um destino. Ao criar um fluxo, você configurou informações sobre o banco de dados de origem para o fluxo.
Se você marcou a caixa de seleção Preencher dados históricos, o Datastream transmite todos os dados atuais, além das mudanças nos dados, da origem para o destino.
Se você não marcou essa caixa de seleção, o Datastream transmite apenas mudanças nos dados. Para que o Datastream transmita um snapshot de todos os dados existentes da origem para 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 estiverem dessincronizados entre a origem e o destino. Por exemplo, um usuário pode excluir dados no destino sem querer, e eles serão perdidos. Nesse caso, iniciar o preenchimento do objeto serve como um mecanismo de redefinição porque todos os dados são transmitidos para o destino de uma só vez. 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 o esquema ou os dados ficam corrompidos. Você não quer que esse esquema ou dados sejam transmitidos para o destino e, portanto, interrompe o backfill do objeto.
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, pare o backfill dos objetos e inicie um por um.
Status do objeto
Os vários status no ciclo de vida de início e interrupção do backfill para um objeto incluem:
Nenhum status (representado na UI como
-): os motivos para um objeto receber esse status incluem:- O stream não foi iniciado.
- A caixa de seleção Preencher dados históricos 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, não haverá uma tarefa de backfill automático criada para elas, porque geralmente as novas tabelas não têm dados históricos para fazer o backfill.
Pending: o preenchimento ainda não começou para o objeto.Active: o preenchimento está em andamento para o objeto.Completed: o preenchimento do objeto foi concluído.Stopped: o preenchimento do objeto foi interrompido. Se o preenchimento for iniciado novamente para o objeto, o Datastream fará stream de todos os dados associados a ele da origem para o destino.Failed: o preenchimento do objeto falhou e precisa ser iniciado novamente.
Iniciar preenchimento
Acesse a página Streams no console do Google Cloud .
Clique no fluxo que contém os objetos para os quais você quer iniciar o preenchimento.
Clique na guia Objetos.
Marque a caixa de seleção de cada objeto para iniciar o backfill.
Clique em Iniciar preenchimento.
Se você selecionou apenas um objeto, clique em INICIAR PREENCHIMENTO DE OBJETO na caixa de diálogo. Caso contrário, se você selecionou vários objetos, clique em INICIAR PREENCHIMENTOS DE OBJETOS.
O Datastream vai iniciar o preenchimento dos objetos selecionados, e o status de cada um deles vai mudar de
PendingparaActivee depois paraCompleted. Quando um objeto tem o statusCompleted, isso significa que o Datastream leu todos os dados do objeto, mas eles ainda podem estar sendo carregados para o destino.
Iniciar preenchimento parcial
Além de backfills completos, é possível fazer um backfill parcial para carregar um subconjunto específico de dados da origem para o destino. Para 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
- MySQL
Para iniciar um preenchimento parcial:
Acesse a página Streams no console do Google Cloud .
Clique no fluxo que contém os objetos para os quais você quer iniciar o preenchimento.
Clique na guia Objetos.
Selecione o objeto para iniciar o backfill.
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 vai iniciar o job de preenchimento.
Sintaxe de filtro personalizado compatível
Quando você fornece um filtro personalizado, o Datastream oferece suporte a um subconjunto
fundamental da sintaxe da cláusula WHERE do SQL. Os elementos aceitos 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: inteiros (
123), decimais (123.45), negativos (-10) e 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 de colunas podem ser totalmente qualificados usando pontos para especificar o esquema ou a tabela. Por exemplo,
myColumn,myTable.myColumnoumySchema.myTable.myColumn. - Identificadores sem aspas: podem conter letras, números e sublinhados, e precisam começar com uma letra ou um 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 de 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. Caracteres curinga, como%ou_, não são compatíveis comLIKE. - O operador
BETWEEN. Use>=e<=. - Subconsultas, por exemplo,
(SELECT ...)na cláusulaWHERE. CASE, por exemplo,CASE WHEN ... END.- Comparações de colunas, como
column1 = column2. As comparações precisam ser com literais. DATEeTIMEtipos ou funções específicas.- 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 console do Google Cloud .
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 que você quer parar de fazer backfill.
Clique em Interromper preenchimento automático.
Se você selecionou apenas um objeto, clique em Interromper preenchimento automático de objetos na caixa de diálogo. Caso contrário, se você tiver selecionado vários objetos, clique em Parar preenchimentos de objetos.
O Datastream vai interromper o preenchimento dos objetos selecionados, e o status de cada um deles vai mudar para
Stopped.Quando um objeto tem esse status, o preenchimento é interrompido para ele. Se o preenchimento for iniciado novamente para o objeto, o Datastream fará stream de todos os dados associados a ele da origem para o destino.
A seguir
- Para saber mais sobre streams, consulte Ciclo de vida do stream.
- Para saber como acessar informações sobre seu stream, consulte Assistir um stream.
- Para saber como modificar um fluxo, consulte Modificar um fluxo.
- Para saber como monitorar um stream, consulte Monitorar um stream.
- Para saber como recuperar um stream com falha, consulte Recuperar um stream.