PutSQL 2025.5.31.15

Pacote

org.apache.nifi | nifi-standard-nar

Descrição

Executa um comando SQL UPDATE ou INSERT. Espera-se que o conteúdo de um FlowFile de entrada seja o comando SQL a ser executado. O comando SQL pode usar ? para escapar dos parâmetros. Nesse caso, os parâmetros a serem usados devem existir como atributos FlowFile com a convenção de nomenclatura sql.args.N.type e sql.args.N.value, em que N é um número inteiro positivo. Espera-se que sql.args.N.type seja um número que indique o tipo JDBC. Espera-se que o conteúdo do FlowFile esteja no formato UTF-8.

Tags

database, insert, put, rdbms, relational, sql, update

Requisito de entrada

REQUIRED

Oferece suporte a propriedades dinâmicas confidenciais

falso

Propriedades

Propriedade

Descrição

Tamanho do lote

O número preferencial de FlowFiles a ser colocado no banco de dados em uma única transação

Pool de conexões JDBC

Especifica o pool de conexões JDBC a ser usado para converter a mensagem JSON em uma instrução SQL. O pool de conexões é necessário para determinar os tipos de colunas apropriados do banco de dados.

Obter chaves geradas

Se verdadeiro, qualquer chave gerada automaticamente pelo banco de dados será adicionada ao FlowFile que a gerou usando o atributo sql.generate.key. Isso pode resultar em um desempenho um pouco mais lento e não é compatível por todos os bancos de dados.

Suporte a transações fragmentadas

Se verdadeiro, quando um FlowFile for consumido por esse processador, o processador verificará primeiro os atributos fragment.identifier e fragment.count desse FlowFile. Se o valor fragment.count for maior que 1, o processador não processará nenhum FlowFile com esse fragment.identifier até que todos estejam disponíveis; nesse momento, ele processará todos os FlowFiles com esse fragment.identifier como uma única transação, na ordem especificada pelos atributos fragment.index de FlowFiles. Isso proporciona a atomicidade dessas instruções SQL. Se qualquer instrução dessa transação lançar uma exceção durante a execução, essa transação será revertida. Quando ocorresse a reversão da transação, nenhum desses FlowFiles seria encaminhado para “success”. Se a opção <Reverter em caso de falha> for definida como verdadeira, esses FlowFiles permanecerão na relação de entrada. Quando <Reverter em caso de falha> for definido como falso, se algum desses FlowFiles for encaminhado para “retry”, todos esses FlowFiles serão encaminhados para “retry”. Caso contrário, serão encaminhados para “failure”. Se esse valor for falso, esses atributos serão ignorados e as atualizações ocorrerão independentemente umas das outras.

Tempo limite da transação

Se a propriedade <Suporte a transações fragmentadas> estiver definida como verdadeiro, especifica quanto tempo deve ser aguardado para que todos os FlowFiles de um determinado atributo fragment.identifier cheguem antes de transferir todos os FlowFiles com esse identificador para a relação “failure”

database-session-autocommit

O modo de autocommit a ser definido na conexão de banco de dados que está sendo usada. Se for definido como falso, a(s) operação(ões) será(ão) explicitamente confirmada(s) ou revertida(s) (com base no sucesso ou na falha, respectivamente); se for definido como verdadeiro, o driver/banco de dados tratará da confirmação/reversão.

putsql-sql-statement

A instrução SQL a ser executada. A instrução pode estar vazia, ser um valor constante ou ser criada a partir de atributos usando Expression Language. Se essa propriedade for especificada, ela será usada independentemente do conteúdo do FlowFiles de entrada. Se essa propriedade estiver vazia, espera-se que o conteúdo do FlowFile de entrada contenha uma instrução SQL válida, a ser emitida pelo processador para o banco de dados.

rollback-on-failure

Especifique como tratar o erro. Por padrão (false), se ocorrer um erro durante o processamento de um FlowFile, o FlowFile será encaminhado para a relação “failure” ou “retry” com base no tipo de erro, e o processador poderá continuar com o próximo FlowFile. Em vez disso, você pode querer reverter o processamento atual nos FlowFiles e interromper o processamento imediatamente. Nesse caso, você pode fazer isso ativando a propriedade “Reversão em caso de falha”. Se ativado, os FlowFiles com falha permanecerão na relação de entrada sem penalizá-lo e serão processados repetidamente até que sejam processados com sucesso ou removidos por outros meios. É importante definir uma “Duração de rendimento” adequada para evitar novas tentativas com muita frequência.

Relações

Nome

Descrição

failure

Um FlowFile é encaminhado para essa relação se o banco de dados não puder ser atualizado e se a nova tentativa de operação também falhar, como uma consulta inválida ou uma violação de restrição de integridade

retry

Um FlowFile é encaminhado para essa relação se o banco de dados não puder ser atualizado, mas a tentativa de repetição da operação pode ser bem-sucedida

success

Um FlowFile é encaminhado para essa relação depois que o banco de dados é atualizado com sucesso

Grava atributos

Nome

Descrição

sql.generated.key

Se o banco de dados tiver gerado uma chave para uma instrução INSERT e a propriedade Obtain Generated Keys estiver definida como verdadeira, esse atributo será adicionado para indicar a chave gerada, se possível. Esse recurso não é compatível com todos os fornecedores de banco de dados.