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 |