파이어호스(firehose)에서 input source 기반 수집으로 마이그레이션
파이어호스(firehose)에서 input source 기반 수집으로 마이그레이션 (legacy)
Apache Druid는 0.17 버전에서 파이어호스(firehose) 지원을 deprecated 처리했고, 26.0 버전에서 파이어호스 수집 지원을 제거했어요. 이 문서에서는 파이어호스 기반 수집 스펙을 input source 기반 스펙으로 마이그레이션하는 방법을 콘솔과 수동 편집 두 가지 방식으로 알려드릴게요.
출처: 문서
본문
Apache Druid는 0.17 버전에서 파이어호스(firehose) 지원을 deprecated 처리했어요. 26.0 버전에서는 파이어호스 수집 지원이 완전히 제거되었습니다. 파이어호스 수집은 이후의 Druid 버전에서는 동작하지 않으므로, 버전을 올리기 전에 반드시 input source가 정의된 수집 스펙을 사용하고 있어야 해요.
파이어호스 수집에서 input source로 마이그레이션하기
파이어호스 수집에서 마이그레이션하려면 Druid 콘솔을 이용해 수집 스펙을 업데이트하거나, 직접 수동으로 업데이트할 수 있어요.
Druid 콘솔 사용하기
Druid 콘솔에서 수집 스펙을 업데이트하려면, 콘솔을 열고 데이터 로더(data loader)의 Edit spec 단계에 스펙을 복사해서 넣으면 됩니다. Druid가 이 스펙을 input source가 정의된 스펙으로 변환해줘요. 예를 들어, 아래의 예시 파이어호스 수집 스펙을 마이그레이션 이후의 예시 수집 스펙으로 변환해주죠. 콘솔을 사용할 수 없거나 콘솔 방식에 문제가 있다면, 수집 스펙을 수동으로 업데이트하는 방법을 선택하면 돼요.
수집 스펙을 수동으로 업데이트하기
수집 스펙을 수동으로 업데이트하려면, 기존 스펙을 새 파일에 복사하세요. 파이어호스 속성에 대한 설명은 Native batch ingestion with firehose (Deprecated) 문서를 참고하면 됩니다. 새 파일을 다음과 같이 편집하세요:
ioConfig컴포넌트에서firehose정의를 선택한 input source에 맞는inputSource정의로 교체하세요. 자세한 내용은 Native batch input sources 문서를 참고해요.parser.parseSpec의timeStampSpec정의를dataSchema컴포넌트로 옮기세요.parser.parseSpec의dimensionsSpec정의를dataSchema컴포넌트로 옮기세요.parser.parseSpec의format정의를ioConfig의inputFormat정의로 옮기세요.parser정의를 삭제하세요.- 파일을 저장하세요.
- 새 수집 파일의 형식을 아래의 마이그레이션 예시와 비교해 확인할 수 있어요.
- 임시 데이터 소스로 새 수집 스펙을 테스트하세요.
- 새 스펙으로 샘플 데이터 수집을 성공적으로 완료하면, 파이어호스 수집을 중지하고 새 스펙으로 전환하세요.
- 전환이 끝나면 Druid를 최신 버전으로 업그레이드할 수 있어요. 업그레이드 방법은 Druid 릴리스 노트(release notes)를 참고하세요.
예시 파이어호스 수집 스펙
예시 파이어호스 수집 스펙은 다음과 같아요:
{ "type" : "index", "spec" : { "dataSchema" : { "dataSource" : "wikipedia", "metricsSpec" : [ { "type" : "count", "name" : "count" }, { "type" : "doubleSum", "name" : "added", "fieldName" : "added" }, { "type" : "doubleSum", "name" : "deleted", "fieldName" : "deleted" }, { "type" : "doubleSum", "name" : "delta", "fieldName" : "delta" } ], "granularitySpec" : { "type" : "uniform", "segmentGranularity" : "DAY", "queryGranularity" : "NONE", "intervals" : [ "2013-08-31/2013-09-01" ] }, "parser": { "type": "string", "parseSpec": { "format": "json", "timestampSpec" : { "column" : "timestamp", "format" : "auto" }, "dimensionsSpec" : { "dimensions": ["country", "page","language","user","unpatrolled","newPage","robot","anonymous","namespace","continent","region","city"], "dimensionExclusions" : [] } } } }, "ioConfig" : { "type" : "index", "firehose" : { "type" : "local", "baseDir" : "examples/indexing/", "filter" : "wikipedia_data.json" } }, "tuningConfig" : { "type" : "index", "partitionsSpec": { "type": "single_dim", "partitionDimension": "country", "targetRowsPerSegment": 5000000 } } }}
마이그레이션 이후의 예시 수집 스펙
다음 예시는 예시 파이어호스 수집 스펙을 input source가 있는 스펙으로 마이그레이션한 결과를 보여줘요:
{ "type" : "index", "spec" : { "dataSchema" : { "dataSource" : "wikipedia", "timestampSpec" : { "column" : "timestamp", "format" : "auto" }, "dimensionsSpec" : { "dimensions": ["country", "page","language","user","unpatrolled","newPage","robot","anonymous","namespace","continent","region","city"], "dimensionExclusions" : [] }, "metricsSpec" : [ { "type" : "count", "name" : "count" }, { "type" : "doubleSum", "name" : "added", "fieldName" : "added" }, { "type" : "doubleSum", "name" : "deleted", "fieldName" : "deleted" }, { "type" : "doubleSum", "name" : "delta", "fieldName" : "delta" } ], "granularitySpec" : { "type" : "uniform", "segmentGranularity" : "DAY", "queryGranularity" : "NONE", "intervals" : [ "2013-08-31/2013-09-01" ] } }, "ioConfig" : { "type" : "index", "inputSource" : { "type" : "local", "baseDir" : "examples/indexing/", "filter" : "wikipedia_data.json" }, "inputFormat": { "type": "json" } }, "tuningConfig" : { "type" : "index", "partitionsSpec": { "type": "single_dim", "partitionDimension": "country", "targetRowsPerSegment": 5000000 } } }}
더 알아보기 (Learn more)
자세한 내용은 다음 페이지들을 참고하세요:
- Ingestion: Druid 수집 프로세스 전체 개요.
- Native batch ingestion: 지원되는 native batch indexing task 설명.
- Ingestion spec reference: 수집 스펙의 컴포넌트와 속성 설명.