본문 바로가기
WIKI 기술 지식 베이스

File source

원문 보기 위키 갱신

출처: 문서

본문

파일 소스

file 플러그인은 파이프라인이 시작될 때 로컬 파일에서 이벤트를 한 번 읽어 들여요. 시드 데이터를 로드하거나, 프로세서와 싱크를 테스트하거나, 고정된 데이터셋을 재생할 때 유용해요. 이 소스는 시작 이후에는 파일에 새로 추가되는 줄을 모니터링하지 않아요.

옵션 필수 여부 타입 설명
path 예 String Data Prepper 컨테이너 안에 있는 입력 파일의 절대 경로예요. 예를 들어 /usr/share/data-prepper/data/input.jsonl이 있어요.
format 아니요 String 파일 내용을 어떻게 해석할지 지정해요. 유효한 값은 json과 plain이에요. 파일이 줄마다 JSON 객체 하나씩 담고 있거나 JSON 배열이라면 json을 사용하세요. 일반 텍스트 줄이라면 plain을 사용하세요. 기본값은 plain이에요.
record_type 아니요 String 이 소스가 만들어내는 출력 레코드의 타입이에요. 유효한 값은 event와 string이에요. 다운스트림 프로세서와 OpenSearch 싱크가 기대하는 구조화된 이벤트를 만들려면 event를 사용하세요. 기본값은 string이에요.

예제

다음 예제들은 서로 다른 파일 타입을 어떻게 처리할 수 있는지 보여줘요.

JSON 파일

다음 예제는 JSON 파일을 처리해요:

file-to-opensearch:
  source:
    file:
      path: /usr/share/data-prepper/data/input.ndjson
      format: json
      record_type: event
  sink:
    - opensearch:
        hosts: ["https://opensearch:9200"]
        index: file-demo
        username: admin
        password: admin_pass
        insecure: true

{% include copy.html %}

일반 텍스트 파일

다음 파이프라인을 사용하면 일반 텍스트 파일을 처리할 수 있어요:

plain-file-to-opensearch:
  source:
    file:
      path: /usr/share/data-prepper/data/app.log
      format: plain
      record_type: event
  processor:
    - grok:
        match:
          message:
            - '%{TIMESTAMP_ISO8601:timestamp} \[%{LOGLEVEL:level}\] %{GREEDYDATA:msg}'
  sink:
    - opensearch:
        hosts: ["https://opensearch:9200"]
        index: plain-file-demo
        username: admin
        password: admin_pass
        insecure: true

{% include copy.html %}

CSV 파일

csv 프로세서를 사용하면 CSV 파일을 처리할 수 있어요:

csv-file-to-opensearch:
  source:
    file:
      path: /usr/share/data-prepper/data/ingest.csv
      format: plain  
      record_type: event     
  processor:
    - csv:
        column_names: ["time","level","message"]
  sink:
    - opensearch:
        hosts: ["https://opensearch:9200"]
        index: csv-demo
        username: admin
        password: admin_pass
        insecure: true

{% include copy.html %}

더 알아보기 (Learn more)