GenerateTableFetch 2025.5.31.15

번들

org.apache.nifi | nifi-standard-nar

설명

테이블에서 행의 ‘페이지’를 가져오는 SQL select 쿼리를 생성합니다. 파티션 크기 속성은 테이블의 행 수와 함께 크기와 페이지 수를 결정하고 FlowFiles 을 생성합니다. 또한 최대값 열을 설정하면 프로세서가 열의 최대값을 추적하여 열의 값이 관찰된 최대값을 초과하는 행만 가져오도록 하는 증분 가져오기를 수행할 수 있습니다. 이 프로세서는 기본 노드에서만 실행되도록 설계되었으며, 이 프로세서는 수신 연결을 수락할 수 있으며, 수신 연결이 제공되는지 여부에 따라 프로세서의 동작이 달라집니다. - 수신 연결이 지정되지 않은 경우 프로세서는 지정된 프로세서 예약에 따라 SQL 쿼리를 생성합니다. 식 언어는 많은 필드에 지원되지만, FlowFile 특성은 사용할 수 없습니다. 그러나 속성은 Null Value Percentage 속성을 사용하여 평가됩니다. - 수신 연결이 지정되어 있고 프로세서 작업에서 사용할 수 있는 FlowFile 이 없는 경우 작업이 수행되지 않습니다. - 수신 연결이 지정되어 있고 프로세서 작업에서 FlowFile 을 사용할 수 있는 경우 테이블 이름 등의 필드에 대한 식 언어에서 FlowFile 의 속성을 사용할 수 있습니다. 그러나 최대 값 열 및 반환할 열 필드는 비어 있거나 지정된 각 테이블에서 사용 가능한 열을 참조해야 합니다.

태그

database, fetch, generate, jdbc, query, select, sql

입력 요구 사항

ALLOWED

민감한 동적 속성 지원

false

속성

속성

설명

반환할 열

쿼리에 사용할 열 이름의 쉼표로 구분된 목록입니다. 데이터베이스에서 이름에 특별한 처리(예: 인용 등)가 필요한 경우 각 이름에 이러한 처리를 포함해야 합니다. 열 이름을 제공하지 않으면 지정된 테이블의 모든 열이 반환됩니다. NOTE: 증분 가져오기가 제대로 작동하려면 지정된 테이블에 일관된 열 이름을 사용하는 것이 중요합니다.

Database Connection Pooling Service

데이터베이스에 대한 연결을 얻는 데 사용되는 컨트롤러 서비스입니다.

데이터베이스 언어 서비스

특정 서비스 또는 공급업체와 관련된 문을 생성하기 위한 데이터베이스 언어 서비스입니다.

최대 대기 시간

실행 중인SQL select 쿼리에 허용되는 최대 시간이며, 0은 제한이 없음을 의미합니다. 최대 시간이 1초 미만이면 0이 됩니다.

최대값 열

쉼표로 구분된 열 이름 목록입니다. 프로세서는 프로세서 실행이 시작된 이후 반환된 각 열의 최대값을 추적합니다. 여러 열을 사용하면 열 목록에 순서가 지정되며 각 열의 값은 이전 열의 값보다 느리게 증가할 것으로 예상됩니다. 따라서 여러 열을 사용한다는 것은 일반적으로 테이블을 파티션하는 데 사용되는 열의 계층 구조를 의미합니다. 이 프로세서는 마지막 검색 이후 추가/업데이트된 행만 검색하는 데 사용할 수 있습니다. 비트/부울과 같은 일부 JDBC 유형은 최대값 유지에 도움이 되지 않으므로 이러한 유형의 열은 이 속성에 나열해서는 안 되며 처리 중에 오류가 발생할 수 있습니다. 열을 제공하지 않으면 테이블의 모든 행이 고려되므로 성능에 영향을 미칠 수 있습니다. NOTE: 증분 가져오기가 제대로 작동하려면 지정된 테이블에 일관된 최대값 열 이름을 사용하는 것이 중요합니다.

테이블 이름

쿼리할 데이터베이스 테이블의 이름입니다.

db-fetch-db-type

특정 서비스 또는 공급자와 관련된 문을 생성하기 위한 데이터베이스 유형으로, 일반 유형은 대부분의 경우를 지원하지만 특정 유형을 선택하면 프로세서의 추가 기능을 최적화할 수 있습니다.

db-fetch-where-clause

SQL 쿼리를 작성할 때 WHERE 조건에 추가할 사용자 정의 절입니다.

gen-table-column-for-val-partitioning

파티션 지정에 값이 사용될 열의 이름입니다. 기본 동작은 오프셋/제한 전략을 사용하여 데이터베이스에서 가져올 ‘페이지’로 파티션하기 위해 결과 세트의 행 번호를 사용하는 것입니다. 그러나 특정 데이터베이스의 경우 열 값 자체를 사용하여’페이지’를 정의하는 것이 적절한 상황에서 더 효율적일 수 있습니다. 이 속성은 기본값 쿼리의 성능이 좋지 않은 경우, 최대값 열이 없거나 유형을 긴 정수로 강제할 수 있는 단일 최대값 열이 있는 경우(즉, 날짜나 타임스탬프가 아닌), 열 값이 희소하지 않고 고르게 분포되어 있어야 최상의 성능을 발휘할 수 있는 경우에만 사용해야 합니다.

gen-table-custom-orderby-column

최대값 열이 제공되지 않고 파티션이 활성화된 경우 결과 순서를 지정하는 데 사용할 열의 이름입니다. Max-Value Columns이 설정되어 있거나 Partition Size가 0인 경우 이 속성은 무시됩니다. 참고: 최대 값 열이나 사용자 정의 ORDER BY 열이 설정되지 않은 경우 데이터베이스/드라이버에 따라 프로세서가 오류를 보고하거나 생성된 SQL 에 행이 누락 및/또는 중복될 수 있습니다. 명시적 순서를 지정하지 않으면 각 파티션을 임의의 순서로 가져오기 때문입니다.

gen-table-fetch-partition-size

생성된 각 SQL 문이 가져올 결과 행 수입니다. 테이블의 총 행 수를 파티션 크기로 나누면 생성된 SQL 문(예: FlowFiles)의 수를 알 수 있습니다. 값이 0이면 SQL 문이 테이블의 모든 행을 가져오는 단일 FlowFile 이 생성됨을 나타냅니다.

gen-table-output-flowfile-on-zero-results

지정된 속성에 따라 이 프로세서를 실행하면 SQL 문이 생성되지 않을 수 있습니다. 이 속성이 true이면 빈 FlowFile (있는 경우 수신 FlowFile 의 상위 항목)가 생성되어 ‘성공’ 관계로 전송됩니다. 이 속성이 false가면 FlowFiles 출력이 생성되지 않습니다.

상태 관리

범위

설명

CLUSTER

지정된 테이블에서 쿼리 성능을 수행한 후 지정된 열의 최대값은 향후 쿼리 실행에 사용할 수 있도록 유지됩니다. 이렇게 하면 프로세서는 최대값이 보존된 값보다 큰 레코드만 가져올 수 있습니다. 증분 가져오기, 새로 추가된 행 가져오기 등에 사용할 수 있습니다. 최대 값을 지우려면 상태 관리 설명서에 따라 프로세서의 상태를 지우십시오

관계

이름

설명

실패

이 관계는 SQL 쿼리 실행(수신 FlowFile)이 실패한 경우에만 사용됩니다. 수신 FlowFile은 불이익을 받고 이 관계로 라우팅됩니다 수신 연결이 지정되지 않으면 이 관계는 사용되지 않습니다.

성공

SQL 쿼리 결과 세트에서 FlowFile 을 성공적으로 생성했습니다.

Writes 특성

이름

설명

generatetablefetch.sql.error

프로세서에 수신 연결이 있고 수신 FlowFile 을 처리하면 SQL 예외가 발생하는 경우 FlowFile 이 실패로 라우팅되고 이 특성이 예외 메시지로 설정됩니다.

generatetablefetch.tableName

쿼리할 데이터베이스 테이블의 이름입니다.

generatetablefetch.columnNames

쿼리에 사용되는 열 이름의 쉼표로 구분된 목록입니다.

generatetablefetch.whereClause

Where 절은 쿼리에서 예상 행을 가져오는 데 사용됩니다.

generatetablefetch.maxColumnNames

프로세서 실행이 시작된 이후 반환된 데이터를 추적하는 데 사용되는 쉼표로 구분된 열 이름 목록입니다.

generatetablefetch.limit

SQL 문으로 가져올 결과 행의 수입니다.

생성 테이블 가져 오기 오프셋

해당 파티션을 검색하는 데 사용할 오프셋입니다.

fragment.identifier

동일한 쿼리 결과 세트에서 생성된 모든 FlowFiles 은 fragment.identifier 특성에 대해 동일한 값을 갖습니다. 그런 다음 결과를 상호 연관시키는 데 사용할 수 있습니다.

fragment.count

이것은 단일 ResultSet 에서 생성된 FlowFiles 의 총 개수입니다. 이는 동일한 수신 ResultSet 에 속하는 FlowFiles 의 수를 파악하기 위해 fragment.identifier 특성과 함께 사용할 수 있습니다.

fragment.index

다음은 모두 동일한 실행에서 생성된 발신 FlowFiles 목록에서 이 FlowFile 의 위치입니다. 이것은 fragment.식별자 특성과 함께 사용하여 동일한 실행에서 어떤 FlowFiles 이 생성되었는지, 어떤 순서로 FlowFiles 이 생성되었는지 알 수 있습니다

참고 항목