PutSQL 2025.10.2.19

번들

org.apache.nifi | nifi-standard-nar

설명

SQL UPDATE 또는 INSERT 명령을 실행합니다. 수신 FlowFile의 내용은 실행할 SQL 명령이어야 합니다. SQL 명령은 ?를 사용하여 매개 변수를 이스케이프할 수 있습니다. 이 경우 사용할 매개 변수는 명명 규칙이 sql.args. N.type 및 sql.args. N.value인 FlowFile 특성으로 존재해야 합니다. 여기서 N은 양의 정수입니다. sql.args. N.type은 JDBC 유형을 나타내는 숫자여야 합니다. FlowFile의 내용은 UTF-8 형식이어야 합니다.

태그

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

입력 요구 사항

REQUIRED

민감한 동적 속성 지원

false

속성

속성

설명

Batch Size

단일 트랜잭션에서 데이터베이스에 넣을 FlowFiles 의 기본 설정 번호입니다

JDBC 연결 풀

JSON 메시지를 SQL 문으로 변환하기 위해 사용할 JDBC 연결 풀을 지정합니다. 연결 풀은 적절한 데이터베이스 열 유형을 결정하기 위해 필요합니다.

생성된 키 얻기

true이면 데이터베이스에서 자동으로 생성된 모든 키가 sql.generate.key 특성을 사용하여 해당 키를 생성한 FlowFile 에 추가됩니다. 이로 인해 성능이 약간 느려질 수 있으며 모든 데이터베이스에서 지원되는 것은 아닙니다.

조각화된 트랜잭션 지원

true인 경우 FlowFile이 프로세서에서 사용되면 프로세서는 먼저 해당 FlowFile의 fragment.identifier 및 fragment.count 특성을 확인합니다. fragment.count 값이 1보다 크면 프로세서는 모두 다 사용 가능해질 때까지 해당 fragment.identifier가 있는 모든 FlowFile를 처리하지 않습니다. 모든 사용 가능해지면 해당 fragment.identifier를 갖는 모든 FlowFiles를 FlowFiles ‘fragment.index 특성에 지정된 순서대로 처리합니다. 이렇게 하면 해당 SQL 문의 원자성이 보장됩니다. 실행 시 이 트랜잭션의 문에서 예외가 발생하면 이 트랜잭션이 롤백됩니다. 트랜잭션 롤백이 발생했을 때 이러한 FlowFiles 중 어느 것도 ‘성공’으로 라우팅되지 않습니다. <Rollback On Failure>가 true로 설정되면 이러한 FlowFiles는 입력 관계를 유지합니다. <Rollback On Failure>가 false로 설정될 때 이러한 FlowFiles 중 하나라도 ‘재시도’로 라우팅되면 이러한 모든 FlowFiles가 ‘재시도’로 라우팅됩니다. 그렇지 않으면 ‘실패’로 라우팅됩니다. 이 값이 false이면 이러한 특성이 무시되고 업데이트가 서로 독립적으로 수행됩니다.

트랜잭션 시간 제한

<Support Fragmented Transactions> 속성이 true로 설정된 경우, 해당 식별자가 있는 모든 FlowFiles 을 ‘실패’ 관계로 전송하기 전에 특정 fragment.identifier 특성이 도착할 때까지 모든 FlowFiles 을 기다릴 시간을 지정합니다

database-session-autocommit

사용 중인 데이터베이스 연결에 설정할 자동 커밋 모드입니다. false로 설정하면 작업이 명시적으로 커밋되거나 롤백되며(각각 성공 또는 실패에 따라), true로 설정하면 드라이버/데이터베이스가 커밋/롤백을 처리합니다.

putsql-sql-statement

실행할 SQL 문. 문은 비어 있거나 상수 값일 수도 있고 표현식 언어를 사용하여 특성으로 작성할 수도 있습니다. 이 속성을 지정하면 수신 FlowFiles 의 내용에 관계없이 사용됩니다. 이 속성이 비어 있으면 수신 FlowFile 의 내용에는 프로세서가 데이터베이스에 발행할 유효한 SQL 문이 포함되어야 합니다.

실패 시 롤백

오류 처리 방법을 지정합니다. 기본적으로(false), FlowFile를 처리하는 동안 오류가 발생하면 FlowFile은 오류 유형에 따라 ‘실패’ 또는 ‘재시도’ 관계로 라우팅되며, 프로세서는 다음 FlowFile을 계속할 수 있습니다. 대신, 현재 처리된 FlowFiles를 롤백할 수 있으며 추가 처리를 즉시 중지합니다. 그런 경우에는 이 ‘실패 시 롤백’ 속성을 활성화하면 됩니다. 활성화된 경우 실패한 FlowFiles가 성공적으로 처리되거나 다른 방법으로 제거될 때까지 패널티를 적용하거나 반복적으로 처리되지 않고 입력 관계를 유지합니다. 너무 자주 재시도하지 않도록 적절한 ‘대기 시간’을 설정하는 것이 중요합니다.

관계

이름

설명

실패

데이터베이스 쿼리가 잘못되었거나 무결성 제약 조건을 위반하는 등 데이터베이스가 업데이트될 수 없고 작업을 다시 시도해도 실패하는 경우 FlowFile 은 관계로 라우팅됩니다

retry

데이터베이스를 업데이트할 수 없지만 작업을 다시 시도하면 성공할 수 있는 경우 FlowFile 은 관계로 라우팅됩니다

성공

데이터베이스가 성공적으로 업데이트되면 FlowFile 은 이 관계로 라우팅됩니다

Writes 특성

이름

설명

sql.generated.key

데이터베이스에서 INSERT 문에 대한 키를 생성하고 생성된 키 가져오기 속성이 true로 설정된 경우 이 특성이 추가되어 생성된 키를 표시합니다(가능한 경우). 이 기능은 모든 데이터베이스 공급업체에서 지원되는 것은 아닙니다.