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.
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 |