ListGCSBucket 2025.5.31.15¶
번들¶
org.apache.nifi | nifi-gcp-nar
설명¶
GCS 버킷에서 오브젝트 목록을 검색합니다. 목록에 있는 각 오브젝트에 대해 해당 오브젝트를 나타내는 FlowFile 을 생성하여 FetchGCSObject 와 함께 가져올 수 있도록 합니다. 이 프로세서는 클러스터의 기본 노드에서만 실행되도록 설계되었습니다. 기본 노드가 변경되면 새 기본 노드는 모든 데이터를 복제하지 않고 이전 노드가 중단한 부분을 이어받습니다.
입력 요구 사항¶
FORBIDDEN
민감한 동적 속성 지원¶
false
속성¶
속성 |
설명 |
---|---|
GCP 자격 증명 공급자 서비스 |
컨트롤러 서비스는 Google 클라우드 플랫폼 자격 증명을 얻는 데 사용됩니다. |
et-initial-listing-target |
초기 목록 처리 방법을 지정합니다. ‘Tracking Entities’ 전략에서 사용됩니다. |
et-state-cache |
이 프로세서가 NiFi 재시작 또는 기본 노드 변경 시 목록을 재개할 수 있도록 지정된 캐시 저장소에 목록 엔터티가 저장됩니다. ‘Tracking Entities’ 전략은 마지막 ‘Tracking Time Window’ 내에 나열된 모든 엔터티의 추적 정보를 필요로 합니다. 많은 수의 엔터티를 지원하기 위해 이 전략에서는 관리 상태 대신 DistributedMapCache 를 사용합니다. 캐시 키 형식은 ‘ListedEntities::{processorId}(::{nodeId})’입니다. 노드 목록 엔터티별로 추적하는 경우 선택 사항인 ‘::{nodeId}’ 부분이 추가되어 상태를 별도로 관리합니다. 예: 클러스터 차원 캐시 키 = ‘ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b’, 노드별 캐시 키 = ‘ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3’저장된 캐시 콘텐츠는 Gzip으로 압축된 JSON 문자열입니다. 캐시 키는 대상 목록 구성이 변경되면 삭제됩니다. ‘Tracking Entities’ 전략에서 사용됩니다. |
et-time-window |
이 프로세서가 이미 목록에 있는 엔터티를 추적할 기간을 지정합니다. ‘Tracking Entities’ 전략은 타임스탬프가 지정된 시간 윈도우 내에 있는 엔터티를 선택할 수 있습니다. 예를 들어, ‘30분’으로 설정하면 이 프로세서가 실행될 때 최근 30분 내에 타임스탬프가 있는 모든 엔터티가 목록 대상이 됩니다. 목록에 있는 엔터티는 1. 이미 목록에 있는 엔터티에 존재하지 않거나, 2. 캐시된 엔터티보다 타임스탬프가 더 새롭거나, 3. 캐시된 엔터티와 크기가 다른 경우의 조건 중 하나를 충족하면 ‘신규/업데이트’로 간주되며 FlowFile 이 전송됩니다. 캐시된 엔터티의 타임스탬프가 지정된 시간 윈도우보다 오래되면 해당 엔터티는 캐시된 이미 목록에 있는 엔터티에서 제거됩니다. ‘Tracking Entities’ 전략에서 사용됩니다. |
gcp-project-id |
Google Cloud Project ID |
gcp-retry-count |
실패 관계로 라우팅하기 전에 시도해야 하는 재시도 횟수입니다. |
gcs-bucket |
오브젝트의 버킷입니다. |
gcs-prefix |
오브젝트 목록을 필터링하는 데 사용되는 접두사입니다. 대부분의 경우 슬래시(‘/’)로 끝나야 합니다. |
gcs-use-generations |
해당되는 경우 GCS 세대를 사용할지 여부를 지정합니다. false이면 각 오브젝트의 최신 버전만 반환됩니다. |
listing-strategy |
신규/업데이트된 엔터티를 확인하는 방법을 지정합니다. 자세한 내용은 각 전략 설명을 참조하십시오. |
프록시 구성 서비스 |
네트워크 요청을 프록시할 프록시 구성 컨트롤러 서비스를 지정합니다. |
record-writer |
목록 작성에 사용할 Record Writer를 지정합니다. 지정하지 않으면 목록에 있는 각 엔터티에 대해 FlowFile 이 1개씩 생성됩니다. Record Writer를 지정하면 모든 엔터티는 개별 FlowFiles 에 특성을 추가하는 대신 단일 FlowFile 에 기록됩니다. |
storage-api-url |
기본 저장소 URL 을 재정의합니다. 대체 Storage API URL 을 구성하면 비공개 서비스 연결에 대한 Google 설명서의 설명과 같이 요청 시 HTTP 호스트 헤더가 재정의됩니다. |
상태 관리¶
범위 |
설명 |
---|---|
CLUSTER |
키 목록을 수행한 후 최신 키의 타임스탬프가 동일한 타임스탬프를 공유하는 키와 함께 저장됩니다. 이렇게 하면 프로세서가 다음에 프로세서를 실행할 때 이 날짜 이후에 추가되거나 수정된 키만 목록에 표시할 수 있습니다. 상태는 클러스터 전체에 저장되므로 이 프로세서는 기본 노드에서만 실행될 수 있으며, 새로운 기본 노드가 선택되면 새 노드는 데이터를 복제하지 않고 이전 노드가 중단한 부분을 이어받을 수 있습니다. |
관계¶
이름 |
설명 |
---|---|
성공 |
FlowFiles 은 성공적인 Google Cloud Storage 작업 후 이 관계로 라우팅됩니다. |
Writes 특성¶
이름 |
설명 |
---|---|
파일 이름 |
파일 이름 |
gcs.bucket |
오브젝트의 버킷입니다. |
gcs.key |
오브젝트의 이름입니다. |
gcs.size |
오브젝트의 크기입니다. |
gcs.cache.control |
오브젝트의 데이터 캐시 제어. |
gcs.component.count |
오브젝트를 구성하는 구성 요소의 개수입니다. |
gcs.content.disposition |
오브젝트의 데이터 내용 처리입니다. |
gcs.content.encoding |
오브젝트의 내용 인코딩입니다. |
gcs.content.language |
오브젝트의 내용 언어입니다. |
mime.type |
오브젝트의 MIME/Content-Type |
gcs.crc32c |
오브젝트 데이터의 CRC32C 체크섬으로, 빅 엔디안 순서로 base64로 인코딩됩니다. |
gcs.create.time |
오브젝트의 생성 시간(밀리초) |
gcs.update.time |
오브젝트의 마지막 수정 시간(밀리초) |
gcs.encryption.algorithm |
오브젝트를 암호화하는 데 사용되는 알고리즘입니다. |
gcs.encryption.sha256 |
오브젝트를 암호화하는 데 사용되는 키의 SHA256해시입니다 |
gcs.etag |
오브젝트에 대한 HTTP 1.1 엔터티 태그입니다. |
gcs.generated.id |
오브젝트에 대해 생성된 서비스 |
gcs.generation |
오브젝트의 데이터 생성. |
gcs.md5 |
Base64로 인코딩된 오브젝트 데이터의 MD5 해시입니다. |
gcs.media.link |
오브젝트에 대한 미디어 다운로드 링크입니다. |
gcs.metageneration |
오브젝트의 메타제너레이션입니다. |
gcs.owner |
오브젝트의 소유자(업로더)입니다. |
gcs.owner.type |
오브젝트 업로더의 ACL 엔터티 유형입니다. |
gcs.acl.owner |
오브젝트에 대한 소유자 액세스 권한이 있는 ACL 엔터티의 쉼표로 구분된 목록입니다. 엔터티는 이메일 주소, 도메인 또는 프로젝트 IDs 입니다. |
gcs.acl.writer |
오브젝트에 대한 쓰기 권한이 있는 ACL 엔터티의 쉼표로 구분된 목록입니다. 엔터티는 이메일 주소, 도메인 또는 프로젝트 IDs 입니다. |
gcs.acl.reader |
오브젝트에 대한 읽기 액세스 권한이 있는 ACL 엔터티의 쉼표로 구분된 목록입니다. 엔터티는 이메일 주소, 도메인 또는 프로젝트 IDs 입니다. |
gcs.uri |
오브젝트의 URI 문자열입니다. |