ListFile 2025.10.2.19¶
번들¶
org.apache.nifi | nifi-standard-nar
설명¶
입력 디렉터리에서 파일 목록을 검색합니다. 목록에 있는 각 파일에 대해 파일을 나타내는 FlowFile 을 생성하여 FetchFile 과 함께 가져올 수 있도록 합니다. 이 프로세서는 ‘입력 디렉터리 위치’가 ‘원격’으로 설정된 경우에만 클러스터의 기본 노드에서 실행되도록 설계되었습니다. 기본 노드가 변경되면 새 기본 노드는 모든 데이터를 복제하지 않고 이전 노드가 중단한 부분을 이어받습니다. ‘입력 디렉터리 위치’가 ‘로컬’인 경우 ‘실행’ 모드는 무엇이든 될 수 있으며 동기화가 발생하지 않습니다. GetFile 과 달리 이 프로세서는 로컬 파일 시스템에서 데이터를 삭제하지 않습니다.
입력 요구 사항¶
FORBIDDEN
민감한 동적 속성 지원¶
false
속성¶
속성 |
설명 |
|---|---|
파일 필터 |
지정된 정규식과 이름이 일치하는 파일만 선택됩니다 |
숨겨진 파일 무시하기 |
숨겨진 파일을 무시할지 여부를 나타냅니다 |
파일 특성 포함 |
파일의 마지막 수정 시간 및 소유자 등의 정보를 FlowFile 특성으로 포함할지 여부입니다. 사용 중인 파일 시스템에 따라 이 정보를 수집하는 데 많은 비용이 들 수 있으므로 비활성화해야 합니다. 특히 원격 파일 공유의 경우 더욱 그렇습니다. |
입력 디렉터리 |
파일을 가져올 입력 디렉터리 |
입력 디렉터리 위치 |
입력 디렉터리 위치를 지정합니다. 이는 상태를 로컬에 저장할지 클러스터 전체에 저장할지 결정하는 데 사용됩니다. |
최대 파일 수명 |
파일을 가져올 수 있는 최대 기간으로, 이 기간보다 오래된 파일(마지막 수정 날짜 기준)은 무시됩니다 |
최대 파일 크기 |
파일을 가져올 수 있는 최대 크기입니다 |
최소 파일 보관 기간 |
파일을 가져오기 위해 필요한 최소 수명; 이보다 오래된 파일(마지막 수정 날짜 기준)은 무시됩니다 |
최소 파일 크기 |
파일을 가져오기 위해 필요한 최소 크기입니다 |
경로 필터 |
하위 디렉터리 재귀가 true이면 경로가 지정된 정규식과 일치하는 하위 디렉터리만 검사합니다 |
하위 디렉터리 재귀 |
디렉터리의 하위 디렉터리에서 파일을 나열할지 여부를 나타냅니다 |
et-initial-listing-target |
초기 목록을 처리하는 방법을 지정합니다. ‘엔터티 추적’ 전략에서 사용됩니다. |
et-node-identifier |
구성된 값은 캐시 키에 추가되어 추적 상태의 범위가 LOCAL로 지정될 때 나열 상태가 클러스터 전체가 아닌 NiFi 노드별로 추적 가능하도록 합니다. ‘엔터티 추적’ 전략에서 사용됩니다. |
et-state-cache |
나열된 엔터티는 지정된 캐시 저장소에 저장되므로 NiFi 재시작 시 또는 기본 노드가 변경되는 경우 이 프로세서가 나열을 재개할 수 있습니다. ‘엔터티 추적’ 전략에서는 마지막 ‘추적 시간 윈도우’ 내에 나열된 모든 엔터티의 추적 정보가 필요합니다. 많은 수의 엔터티를 지원하기 위해 이 전략에서는 관리되는 상태 대신 DistributedMapCache를 사용합니다. 캐시 키 형식은 ‘ListedEntities::{processorId}(::{nodeId})’입니다. 노드별로 나열된 엔터티를 추적하는 경우 상태를 별도로 관리하기 위해 선택적 ‘::{nodeId}’ 부분이 추가됩니다. 예를 들면 클러스터 전체 캐시 키 =’ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b’, 노드당 캐시 키 =’ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3’과 같습니다. 저장된 캐시 내용은 Gzip으로 압축된 JSON 문자열입니다. 대상 목록 구성이 변경되면 캐시 키가 삭제됩니다. ‘엔터티 추적’ 전략에서 사용됩니다. |
et-time-window |
이 프로세서가 이미 나열된 엔터티를 추적해야 하는 기간을 지정합니다. ‘엔터티 추적’ 전략은 타임스탬프가 지정된 시간 윈도우 내에 있는 모든 엔터티를 선택할 수 있습니다. 예를 들어, ‘30 minutes’로 설정하면 이 프로세서가 실행될 때 최근 30분 동안의 타임스탬프가 있는 모든 엔터티가 목록 대상이 됩니다. 나열된 엔터티는 ‘new/updated’로 간주되며 FlowFile은 다음 조건 중 하나가 충족될 경우 내보내집니다. 1. 이미 나열된 엔터티에 존재하지 않음, 2. 캐시된 엔터티보다 최신 타임스탬프를 포함함, 3. 캐시된 엔터티와는 크기가 다름. 캐시된 엔터티의 타임스탬프가 지정된 기간보다 오래되면 해당 엔터티는 캐시된 이미 나열된 엔터티에서 제거됩니다. ‘Tracking Entities’ 전략에서 사용됩니다. |
listing-strategy |
신규/업데이트된 엔터티를 확인하는 방법을 지정합니다. 자세한 내용은 각 전략 설명을 참조하십시오. |
최대 목록 시간 |
단일 디렉터리 목록 작성에 소요될 것으로 예상되는 최대 시간입니다. ‘Input Directory’ 속성으로 지정된 디렉터리 목록 또는 하위 디렉터리 목록(‘Recurse’가 true로 설정된 경우)이 이 시간보다 오래 걸리는 경우 이 시간을 초과하는 각 디렉터리 목록에 대해 경고 게시글을 생성합니다. |
최대 작업 시간 |
단일 디스크 작업에 소요될 것으로 예상되는 최대 시간입니다. 디스크 작업이 이 시간보다 오래 걸리면 이 시간을 초과하는 각 작업에 대해 경고 게시판이 생성됩니다. |
max-performance-metrics |
‘Track Performance’ 속성이 ‘true’로 설정된 경우 이 속성은 성능 메트릭이 유지되어야 하는 최대 파일 수를 나타냅니다. 이 속성의 값이 작을수록 힙 사용률이 낮아지고, 값이 클수록 디스크 액세스 작업의 성능에 대한 보다 정확한 인사이트를 제공할 수 있습니다 |
record-writer |
목록 작성에 사용할 Record Writer를 지정합니다. 지정하지 않으면 목록에 있는 각 엔터티에 대해 FlowFile 이 1개씩 생성됩니다. Record Writer를 지정하면 모든 엔터티는 개별 FlowFiles 에 특성을 추가하는 대신 단일 FlowFile 에 기록됩니다. |
target-system-timestamp-precision |
대상 시스템에서 타임스탬프 전체 자릿수를 지정합니다. 이 프로세서는 엔터티의 타임스탬프를 사용하여 목록에 추가할 엔터티를 결정하므로 타임스탬프의 올바른 전체 자릿수를 사용하는 것이 중요합니다. |
트랙 성능 |
프로세서가 디스크 액세스 작업의 성능을 추적할지 여부입니다. true이면 액세스하는 파일, 획득하는 정보, 소요 시간 등 디스크에 대한 모든 액세스가 기록됩니다. 그런 다음 DEBUG 수준으로 주기적으로 로깅됩니다. 이 옵션은 데이터 양에 제한이 있지만 여전히 상당한 양의 힙을 소비할 수 있지만(‘Maximum Number of Files to Track’ 속성으로 제어), 성능이 저하되는 경우 문제 해결에 매우 유용할 수 있습니다. |
상태 관리¶
범위 |
설명 |
|---|---|
LOCAL |
파일 목록 성능을 수행한 후 최신 파일의 타임스탬프가 저장됩니다. 이렇게 하면 프로세서가 다음에 프로세서를 실행할 때 이 날짜 이후에 추가되거나 수정된 파일만 목록에 표시할 수 있습니다. 상태가 로컬 또는 클러스터 범위로 저장되는지 여부는 <Input Directory Location> 속성의 값에 따라 달라집니다. |
CLUSTER |
파일 목록 성능을 수행한 후 최신 파일의 타임스탬프가 저장됩니다. 이렇게 하면 프로세서가 다음에 프로세서를 실행할 때 이 날짜 이후에 추가되거나 수정된 파일만 목록에 표시할 수 있습니다. 상태가 로컬 또는 클러스터 범위로 저장되는지 여부는 <Input Directory Location> 속성의 값에 따라 달라집니다. |
관계¶
이름 |
설명 |
|---|---|
성공 |
수신된 모든 FlowFiles 은 성공으로 라우팅됩니다 |
Writes 특성¶
이름 |
설명 |
|---|---|
파일 이름 |
파일 시스템에서 읽은 파일의 이름입니다. |
경로 |
경로는 Input Directory 속성을 기준으로 파일 시스템에서 파일 디렉터리의 상대 경로로 설정됩니다. 예를 들어, 입력 디렉터리가 /tmp로 설정되어 있으면 /tmp에서 가져온 파일의 경로 특성이 “/”로 설정됩니다. Recurse Subdirectories 속성이 true로 설정되어 있고 /tmp/abc/1/2/3에서 파일을 가져오면 경로 특성이 “abc/1/2/3/”로 설정됩니다. |
absolute.path |
절대 경로는 파일 시스템에서 파일 디렉터리의 절대 경로로 설정됩니다. 예를 들어, Input Directory 속성이 /tmp로 설정되어 있으면 /tmp에서 가져온 파일의 경로 특성이 “/tmp/”로 설정됩니다. Recurse Subdirectories 속성이 true로 설정되어 있고 /tmp/abc/1/2/3에서 파일을 가져오면 경로 특성이 “/tmp/abc/1/2/3/”로 설정됩니다. |
file.owner |
파일 시스템에서 파일을 소유한 사용자 |
file.group |
파일 시스템에서 파일을 소유한 그룹 |
file.size |
파일 시스템에서 파일의 바이트 수입니다 |
file.permissions |
파일 시스템의 파일에 대한 권한입니다. 소유자 3글자, 그룹 3글자, 기타 사용자 3글자로 형식이 지정됩니다. 예: rw-rw-r– |
file.lastModifiedTime |
파일 시스템에 있는 파일이 마지막으로 수정된 시점의 타임스탬프는 ‘yyyy-MM-dd’T’HH:mm:ssZ’ 형식으로 표시됩니다. |
file.lastAccessTime |
파일 시스템의 파일에 마지막으로 액세스한 시점의 타임스탬프는 ‘yyyy-MM-dd’T’HH:mm:ssZ’ 형식으로 표시됩니다. |
file.creationTime |
파일 시스템에서 파일이 생성된 시점의 타임스탬프는 ‘yyyy-MM-dd’T’HH:mm:ssZ’ 형식으로 표시됩니다. |