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 형식이 될 것으로 예상됩니다.
입력 요구 사항¶
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로 설정된 경우 이 특성이 추가되어 생성된 키를 표시합니다(가능한 경우). 이 기능은 모든 데이터베이스 공급업체에서 지원되는 것은 아닙니다. |