Selecione as linhas a serem ingeridas
Beta
Este recurso está em versão Beta.
Aplica-se a : Criação pipeline baseada em API
Conectores SaaS
A filtragem de linhas permite que você ingira apenas os dados necessários, aplicando condições semelhantes a uma cláusula SQL WHERE . Isso melhora o desempenho (especialmente para cargas iniciais com dados históricos) e minimiza a duplicação de dados (especialmente em ambientes de desenvolvimento).
Conectores suportados
- Google Analytics
- Salesforce
- ServiceNow
Como funciona o filtro de linhas
A filtragem de linhas funciona como um filtro WHERE em SQL. Você pode comparar os valores na fonte com números inteiros, booleanos, strings e outros tipos de dados. Você também pode usar combinações complexas de cláusulas para extrair apenas os dados de que precisa.
O filtro de linhas se aplica tanto durante o carregamento inicial quanto nas atualizações incrementais subsequentes.
Limitações
A filtragem de linhas apresenta as seguintes limitações:
-
Salesforce : A filtragem de linhas é compatível apenas com duas colunas: a key primária (ID, se disponível) e a coluna do cursor. O conector seleciona a coluna do cursor da seguinte lista, por ordem de preferência:
SystemModstamp,LastModifiedDate,CreatedDateeLoginTime. -
ServiceNow :
- Apenas o operador
ANDé suportado. O operadorORnão está disponível no momento. Por exemplo,u_age = 40 AND u_active = TRUEfunciona, masu_age = 40 OR u_active = TRUEnão. - Os carimbos de data/hora nos filtros devem estar no seguinte formato:
YYYY-MM-DD HH: mm:SS(por exemplo,2004-03-02 17:14:59).
- Apenas o operador
-
Filtros de coluna de carimbo de data/hora : Ao filtrar colunas do tipo de dados de carimbo de data/hora, as seguintes limitações se aplicam. Essas limitações não se aplicam quando você filtra por outros tipos de coluna.
- A filtragem de linhas funciona apenas para tabelas atualizadas incrementalmente, não para tabelas atualizadas em lote.
- O filtro de linhas aplica-se apenas à escrita, não à leitura.
-
Atualizações de linha ou consulta : O conector não exclui uma linha quando ela corresponde ao filtro no carregamento inicial, mas a linha ou a consulta é atualizada de forma que não corresponda mais em um carregamento subsequente. O conector também não inclui uma linha que não correspondia à consulta em uma atualização anterior do pipeline, mas que agora corresponde em uma atualização subsequente.
Configurar filtragem de linhas
Para configurar um pipeline com filtragem de linhas, adicione a configuração row_filter à especificação do seu pipeline. Por exemplo:
pipeline_spec = """
{
"name": "...",
"ingestion_definition": {
"connection_name": "...",
"objects": [
{
"table": {
"source_schema": "...",
"source_table": "...",
"destination_catalog": "...",
"destination_schema": "...",
"destination_table": "...",
"table_configuration": {
"row_filter": "..."
}
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Exemplos
- Salesforce
- Google Analytics
- ServiceNow
Ingerir dados após um determinado carimbo de data/hora do sistema :
"row_filter": "SystemModstamp > '2025-06-10T23:40:11.000-07:00'"
Ingerir uma linha específica :
"row_filter": "Id = 'a00Qy00000vps2NIAQ'"
Colunas numéricas como event_timestamp (um long) devem usar literais numéricos sem aspas no valor do filtro (por exemplo, event_timestamp >= 1712224270703246). Os valores numéricos entre aspas impedem a filtragem no servidor, resultando em carregamentos iniciais lentos. colunas de strings como event_date devem ser colocadas entre aspas (por exemplo, event_date >= '20240101').
Ingerir dados após um determinado carimbo de data/hora do evento :
"row_filter": "event_timestamp >= 1712224270703246"
Ingerir dados para uma data de evento específica :
"row_filter": "event_date = '2025-01-01'"
Ingerir dados de usuários ativos :
"row_filter": "is_active_user = TRUE"
Ingerir dados para plataformas não web :
"row_filter": "platform != 'WEB'"
Ingerir dados com múltiplas condições :
"row_filter": "event_timestamp >= 1712224270703246 AND (platform != 'WEB' OR is_active_user = FALSE)"
Ingerir dados após um determinado carimbo de data/hora do evento :
"row_filter": "sys_updated_on > '2004-03-02 17:14:59'"
Ingerir dados de usuários ativos :
"row_filter": "u_active = TRUE"
Ingerir dados para usuários específicos :
"row_filter": "u_name = 'johnsmith'"
Ingerir dados com múltiplas condições :
"row_filter": "u_active = TRUE AND u_name = 'johnsmith'"
Operadores suportados
A tabela a seguir mostra quais operadores são suportados para filtragem de linhas:
Operador | Apoiado |
|---|---|
| Sim |
| Apenas Salesforce e Google Analítica |
| Sim |
| Sim |
| Não |
| Não |
| Sim |
| Sim |
Comportamento de filtragem de linhas em casos extremos
A tabela a seguir descreve o comportamento da filtragem de linhas em cenários extremos.
Cenário | Comportamento | atualização necessária |
|---|---|---|
Uma linha não corresponde ao filtro no carregamento inicial, mas é atualizada para corresponder em um carregamento subsequente. | A linha é incluída durante a próxima atualização do pipeline. | Não |
Uma linha corresponde ao filtro no carregamento inicial e, em seguida, é atualizada para não corresponder mais a ele. | A linha não será excluída durante a próxima atualização do pipeline. | Não |
A consulta foi atualizada e agora corresponde a uma linha que não havia sido ingerida anteriormente. | A linha não será incluída na próxima atualização do pipeline. | Sim (é necessário refresh completamente) |
A consulta foi atualizada e uma linha previamente inserida não corresponde mais. | A linha não será excluída durante a próxima atualização do pipeline. | Não |