QueryRecord 2025.5.31.15

Pacote

org.apache.nifi | nifi-standard-nar

Descrição

Avalia uma ou mais consultas SQL em relação ao conteúdo de um FlowFile. O resultado da consulta SQL torna-se, então, o conteúdo do FlowFile de saída. Isso pode ser usado, por exemplo, para filtragem específica de campo, transformação e filtragem em nível de linha. As colunas podem ser renomeadas, cálculos simples e agregações podem ser realizados etc. O processador é configurado com um Controller Service de Record Reader e um serviço Record Writer para permitir flexibilidade nos formatos de dados de entrada e saída. O processador deve ser configurado com pelo menos uma propriedade definida pelo usuário. O nome da propriedade é a relação para a qual os dados serão roteados e o valor da propriedade é uma instrução SQL SELECT usada para especificar como os dados de entrada devem ser transformados/filtrados. A instrução SQL deve ser ANSI SQL válida e é alimentada pelo Apache Calcite. Se a transformação falhar, o FlowFile original será encaminhado para a relação “failure”. Caso contrário, os dados selecionados serão encaminhados para a relação associada. Se o Record Writer optar por herdar o esquema do registro, é importante observar que o esquema herdado será do ResultSet, e não do registro de entrada. Isso permite que uma única instância do processador QueryRecord tenha várias consultas, cada uma das quais retorna um conjunto diferente de colunas e agregações. Como resultado, porém, o esquema derivado não terá um nome de esquema; portanto, é importante que o Record Writer configurado não tente gravar o nome de esquema como um atributo se estiver herdando o esquema do registro. Consulte a documentação Uso do processador para obter mais informações.

Tags

aggregate, avro, calcite, csv, etl, filter, json, logs, modify, query, record, route, select, sql, text, transform, update

Requisito de entrada

REQUIRED

Oferece suporte a propriedades dinâmicas confidenciais

falso

Propriedades

Propriedade

Descrição

dbf-default-precision

Quando um valor DECIMAL/NUMBER é escrito como um tipo lógico Avro “decimal”, é necessária uma “precisão” específica que indique o número de dígitos disponíveis. Em geral, a precisão é definida pela definição do tipo de dados da coluna ou pelo padrão dos mecanismos do banco de dados. Entretanto, a precisão indefinida (0) pode ser retornada por alguns mecanismos de banco de dados. A “precisão decimal padrão” é usada ao escrever esses números de precisão indefinida.

dbf-default-scale

Quando um valor DECIMAL/NUMBER é escrito como um tipo lógico Avro “decimal”, é necessária uma “escala” específica que indique o número de dígitos decimais disponíveis. Em geral, a escala é determinada pela definição do tipo de dados da coluna ou pelo padrão dos mecanismos do banco de dados. No entanto, quando a precisão indefinida (0) é retornada, a escala também pode ser incerta com alguns mecanismos de banco de dados. A “escala decimal padrão” é usada ao escrever esses números indefinidos. Se um valor tiver mais casas decimais do que a escala especificada, o valor será arredondado para cima, por exemplo, 1,53 se torna 2 com escala 0 e 1,5 com escala 1.

include-zero-record-flowfiles

Ao executar a instrução SQL em um FlowFile de entrada, se o resultado não tiver dados, essa propriedade especifica se um FlowFile será ou não enviado para a relação correspondente

record-reader

Especifica o Controller Service a ser usado para analisar os dados recebidos e determinar o esquema de dados

record-writer

Especifica o Controller Service a ser usado para gravar resultados em um FlowFile

Relações

Nome

Descrição

failure

Se um FlowFile falhar no processamento por qualquer motivo (por exemplo, a instrução SQL contém colunas que não estão presentes nos dados de entrada), o FlowFile original será encaminhado para essa relação

original

O FlowFile original é encaminhado para essa relação

Grava atributos

Nome

Descrição

mime.type

Define o atributo mime.type para o tipo MIME especificado pelo Record Writer

record.count

O número de registros selecionados pela consulta

QueryRecord.Route

A relação para a qual o FlowFile foi encaminhado

Casos de uso

Filtre registros com base nos valores dos campos dos registros

Mantenha apenas registros específicos

Mantenha apenas campos específicos em um registro, onde os nomes dos campos a serem mantidos são conhecidos

Encaminhar dados orientados por registro para processamento com base em seu conteúdo