PutSQL 2025.5.31.15

번들

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보다 크면 프로세서는 모든 조각을 사용할 수 있을 때까지 해당 조각 식별자를 가진 FlowFile 을 처리하지 않으며, 그 시점에서 해당 조각 식별자를 가진 모든 FlowFiles 을 단일 트랜잭션으로 처리하고 FlowFiles 의 조각 인덱스 속성에 지정된 순서대로 처리합니다. 이는 SQL 문의 원자성을 제공합니다. 이 트랜잭션의 문이 실행될 때 예외를 throw하면 이 트랜잭션은 롤백됩니다. 트랜잭션 롤백이 발생하면 이러한 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 을 롤백하고 추가 처리를 즉시 중지할 수 있습니다. 이 경우 ‘Rollback On Failure’ 속성을 활성화하면 됩니다. 이 옵션을 활성화하면 실패한 FlowFiles 은 성공적으로 처리되거나 다른 방법으로 제거될 때까지 불이익을 받지 않고 입력 관계에 남아 반복적으로 처리됩니다. 너무 자주 재시도하지 않도록 ‘생성 기간’을 적절하게 설정하는 것이 중요합니다.

관계

이름

설명

실패

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

retry

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

성공

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

Writes 특성

이름

설명

sql.generated.key

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