ListFile 2025.5.31.15¶
번들¶
org.apache.nifi | nifi-standard-nar
설명¶
입력 디렉터리에서 파일 목록을 검색합니다. 목록에 있는 각 파일에 대해 파일을 나타내는 FlowFile 을 생성하여 FetchFile 과 함께 가져올 수 있도록 합니다. 이 프로세서는 ‘입력 디렉터리 위치’가 ‘원격’으로 설정된 경우에만 클러스터의 기본 노드에서 실행되도록 설계되었습니다. 기본 노드가 변경되면 새 기본 노드는 모든 데이터를 복제하지 않고 이전 노드가 중단한 부분을 이어받습니다. ‘입력 디렉터리 위치’가 ‘로컬’인 경우 ‘실행’ 모드는 무엇이든 될 수 있으며 동기화가 발생하지 않습니다. GetFile 과 달리 이 프로세서는 로컬 파일 시스템에서 데이터를 삭제하지 않습니다.
입력 요구 사항¶
FORBIDDEN
민감한 동적 속성 지원¶
false
속성¶
속성 |
설명 |
---|---|
파일 필터 |
지정된 정규식과 이름이 일치하는 파일만 선택됩니다 |
숨겨진 파일 무시하기 |
숨겨진 파일을 무시할지 여부를 나타냅니다 |
파일 특성 포함 |
파일의 마지막 수정 시간 및 소유자 등의 정보를 FlowFile 특성으로 포함할지 여부입니다. 사용 중인 파일 시스템에 따라 이 정보를 수집하는 데 많은 비용이 들 수 있으므로 비활성화해야 합니다. 특히 원격 파일 공유의 경우 더욱 그렇습니다. |
입력 디렉터리 |
파일을 가져올 입력 디렉터리 |
입력 디렉터리 위치 |
입력 디렉터리 위치를 지정합니다. 이는 상태를 로컬에 저장할지 클러스터 전체에 저장할지 결정하는 데 사용됩니다. |
최대 파일 수명 |
파일을 가져올 수 있는 최대 기간으로, 이 기간보다 오래된 파일(마지막 수정 날짜 기준)은 무시됩니다 |
최대 파일 크기 |
파일을 가져올 수 있는 최대 크기입니다 |
최소 파일 보관 기간 |
파일을 가져오기 위해 필요한 최소 수명; 이보다 오래된 파일(마지막 수정 날짜 기준)은 무시됩니다 |
최소 파일 크기 |
파일을 가져오기 위해 필요한 최소 크기입니다 |
경로 필터 |
하위 디렉터리 재귀가 true이면 경로가 지정된 정규식과 일치하는 하위 디렉터리만 검사합니다 |
하위 디렉터리 재귀 |
디렉터리의 하위 디렉터리에서 파일을 나열할지 여부를 나타냅니다 |
et-initial-listing-target |
초기 목록 처리 방법을 지정합니다. ‘Tracking Entities’ 전략에서 사용됩니다. |
et-node-identifier |
추적 상태가 LOCAL 로 범위가 설정된 경우 클러스터 전체가 아닌 NiFi 노드별로 목록 상태를 추적할 수 있도록 구성된 값이 클러스터링 키에 추가됩니다. ‘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’ 전략에서 사용됩니다. |
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’ 속성으로 제어), 성능이 저하되는 경우 문제 해결에 매우 유용할 수 있습니다. |
상태 관리¶
범위 |
설명 |
---|---|
CLUSTER |
파일 목록 성능을 수행한 후 최신 파일의 타임스탬프가 저장됩니다. 이렇게 하면 프로세서가 다음에 프로세서를 실행할 때 이 날짜 이후에 추가되거나 수정된 파일만 목록에 표시할 수 있습니다. 상태가 로컬 또는 클러스터 범위로 저장되는지 여부는 <Input Directory Location> 속성의 값에 따라 달라집니다. |
LOCAL |
파일 목록 성능을 수행한 후 최신 파일의 타임스탬프가 저장됩니다. 이렇게 하면 프로세서가 다음에 프로세서를 실행할 때 이 날짜 이후에 추가되거나 수정된 파일만 목록에 표시할 수 있습니다. 상태가 로컬 또는 클러스터 범위로 저장되는지 여부는 <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’ 형식으로 표시됩니다. |