ListSmb

ListSmb

SMB 프로토콜로 공유된 실제 파일을 나열하는 프로세서예요. 나열된 각 파일은 하나의 FlowFile이 될 수 있고 메타데이터는 FlowFile 특성으로 기록돼요. 또는 — ‘Record Writer’ 속성이 설정된 경우 — 전체 결과가 레코드로 단일 FlowFile에 기록돼요. 이 프로세서는 클러스터에서 Primary Node에서만 실행되도록 설계됐어요. primary node가 변경되어도 새 Primary Node가 모든 데이터를 중복하지 않고 이전 노드가 중단한 지점부터 이어서 처리해요.

출처: Snowflake 문서

본문

기능 — 일반 제공(Generally Available)

Openflow Snowflake 배포는 AWS, Azure, GCP Commercial 리전의 모든 계정에서 사용할 수 있어요. Openflow BYOC 배포는 AWS Commercial 리전의 모든 계정에서 사용할 수 있어요.

Bundle

org.apache.nifi | nifi-smb-nar

설명 (Description)

SMB 프로토콜로 공유된 실제 파일을 나열해요. 나열된 각 파일은 하나의 FlowFile이 될 수 있고 메타데이터는 FlowFile 특성으로 기록돼요. 또는 — ‘Record Writer’ 속성이 설정된 경우 — 전체 결과가 레코드로 단일 FlowFile에 기록돼요. 이 프로세서는 클러스터에서 Primary Node에서만 실행되도록 설계됐어요. primary node가 변경되면 새 Primary Node가 모든 데이터를 중복하지 않고 이전 노드가 중단한 지점부터 이어서 처리해요.

태그 (Tags)

list, samba, smb, cifs, files

입력 요구사항 (Input Requirement)

FORBIDDEN (금지)

민감한 동적 속성 지원 (Supports Sensitive Dynamic Properties)

false

속성 (Properties)

Property Description
Entity Tracking Initial Listing Target 초기 목록을 처리하는 방법을 지정해요. ‘Tracking Entities’ 전략에서 사용돼요.
Entity Tracking State Cache 나열된 엔티티를 지정된 캐시 저장소에 저장해서 이 프로세서가 NiFi 재시작 또는 primary node 변경 시에도 목록을 이어서 처리할 수 있게 해요. ‘Tracking Entities’ 전략은 최근 ‘Tracking Time Window’ 안에 나열된 모든 엔티티의 추적 정보를 요구해요. 많은 수의 엔티티를 지원하기 위해 이 전략은 managed state 대신 DistributedMapCache를 사용해요. Cache key 형식은 ‘ListedEntities::{processorId}(::{nodeId})’예요. 노드별로 나열된 엔티티를 추적한다면 상태를 별도로 관리하기 위해 선택적인 ‘::{nodeId}’ 부분이 추가돼요. 예: cluster wide cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', per node cache key = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3'. 저장된 cache 내용은 Gzipped JSON string이에요. 대상 목록 구성이 변경되면 cache key가 삭제돼요. ‘Tracking Entities’ 전략에서 사용돼요.
Entity Tracking Time Window 이 프로세서가 이미 나열된 엔티티를 얼마나 오래 추적할지 지정해요. ‘Tracking Entities’ 전략은 지정된 시간 창 안에 있는 타임스탬프의 엔티티를 선택할 수 있어요. 예를 들어 ’30 minutes’로 설정하면 최근 30분 내 타임스탬프를 가진 엔티티가 이 프로세서 실행 시 목록 대상이 돼요. 다음 조건 중 하나가 충족되면 나열된 엔티티는 ‘new/updated’로 간주되고 FlowFile이 생성돼요. 1. 이미 나열된 엔티티에 존재하지 않음, 2. 캐시된 엔티티보다 새 타임스탬프를 가짐, 3. 캐시된 엔티티와 크기가 다름. 캐시된 엔티티의 타임스탬프가 지정된 시간 창보다 오래되면 해당 엔티티는 캐시된 이미 나열된 엔티티에서 제거돼요. ‘Tracking Entities’ 전략에서 사용돼요.
Listing Strategy new/updated 엔티티를 결정하는 방법을 지정해요. 자세한 내용은 각 전략 설명을 참고하세요.
Record Writer 목록을 만드는 데 사용할 Record Writer를 지정해요. 지정하지 않으면 나열된 각 엔티티마다 FlowFile 하나가 생성돼요. 지정하면 모든 엔티티가 개별 FlowFiles에 속성을 추가하는 대신 단일 FlowFile에 기록돼요.
Target System Timestamp Precision 대상 시스템의 타임스탬프 정밀도를 지정해요. 이 프로세서는 어떤 것을 나열할지 결정하기 위해 엔티티의 타임스탬프를 사용하므로 올바른 타임스탬프 정밀도를 사용하는 것이 중요해요.
directory 파일을 나열할 네트워크 폴더예요. 이는 공유 다음의 남은 상대 경로예요: smb://HOSTNAME:PORT/SHARE/[DIRECTORY]/sub/directories. 하위 디렉터리를 추가하는 것도 가능해요. 원격 파일 공유에 주어진 경로가 존재해야 해요. verification으로 확인할 수 있어요. Windows와 Linux 스타일 디렉터리 구분자를 혼합할 수 있어요.
file-filter 이름이 주어진 정규식과 일치하는 파일만 나열돼요.
file-name-suffix-filter 주어진 접미사로 끝나는 파일은 생략돼요. 아직 업로드 중인 파일이 여러 번 나열되지 않도록, 해당 파일에 접미사를 부여했다가 업로드가 끝나면 접미사를 제거하는 방식으로 사용할 수 있어요. ‘Tracking Entities’ 또는 ‘Tracking Timestamps’ 목록 전략을 사용할 때 특히 권장돼요.
initial-listing-strategy 프로세서가 처음 시작될 때(또는 상태가 지워졌을 때) SMB 공유에 있는 기존 파일을 처리하는 방법을 지정해요.
initial-listing-timestamp 프로세서가 처음 시작될 때(또는 상태가 지워졌을 때) 파일이 나열될 기준 타임스탬프예요. 값은 epoch 타임스탬프(밀리초) 또는 2025-02-01T00:00:00Z 같은 형식의 UTC datetime으로 지정할 수 있어요.
max-file-age 주어진 값보다 오래된 파일은 생략돼요.
max-file-size 주어진 값보다 큰 파일은 생략돼요.
min-file-age 파일이 나열되기 위한 최소 수명이에요. 이 시간보다 최신 파일은 무시돼요.
min-file-size 주어진 값보다 작은 파일은 생략돼요.
path-filter 경로(파일의 부모 디렉터리까지)가 주어진 정규식과 일치하는 파일만 나열돼요.
smb-client-provider-service SMB 연결을 만드는 데 사용할 SMB 클라이언트 공급자를 지정해요.

상태 관리 (State management)

Scopes Description
CLUSTER 파일 목록을 수행한 후 이전 목록의 상태를 저장해 중복 없이 파일을 계속 나열할 수 있어요.

관계 (Relationships)

Name Description
success 수신된 모든 FlowFile은 success로 연결돼요.

쓰기 속성 (Writes attributes)

Name Description
filename 파일 시스템에서 읽은 파일 이름이에요.
shortName 파일 시스템에서 읽은 파일의 짧은 이름이에요.
path 원격 파일 시스템의 파일 디렉터리 상대 경로로, Share 루트 디렉터리와 비교한 값이에요. 예: 원격 위치 smb://HOSTNAME:PORT/SHARE/DIRECTORY에서 smb://HOSTNAME:PORT/SHARE/DIRECTORY/sub/folder/file 파일이 나열되면 path 속성은 “DIRECTORY/sub/folder”로 설정돼요.
serviceLocation 공유의 SMB URL이에요.
lastModifiedTime 파일 시스템에서 파일 내용이 변경된 타임스탬프로 ‘yyyy-MM-dd'T'HH:mm:ss’ 형식이에요.
creationTime 파일 시스템에서 파일이 생성된 타임스탬프로 ‘yyyy-MM-dd'T'HH:mm:ss’ 형식이에요.
lastAccessTime 파일 시스템에서 파일이 액세스된 타임스탬프로 ‘yyyy-MM-dd'T'HH:mm:ss’ 형식이에요.
changeTime 파일 시스템에서 파일 특성이 변경된 타임스탬프로 ‘yyyy-MM-dd'T'HH:mm:ss’ 형식이에요.
size 바이트 단위의 파일 크기예요.
allocationSize 서버에서 파일에 할당된 바이트 수예요.

함께 보기 (See also)

  • org.apache.nifi.processors.smb.FetchSmb
  • org.apache.nifi.processors.smb.GetSmbFile
  • org.apache.nifi.processors.smb.PutSmbFile

더 알아보기 (Learn more)