데이터 보존 구성하기

데이터 보존 구성하기 (Configure data retention)

데이터소스에 보존 규칙(retention rules)을 구성해 유지하거나 드롭할 데이터의 시간 구간을 설정하는 방법을 보여 드릴게요. Wikipedia 편집 샘플 데이터를 로드한 뒤, 하루 중 특정 시간대의 데이터를 보존하고 나머지를 드롭하는 규칙을 만들어 볼게요.

출처: 문서

본문

이 튜토리얼에서는 단일 머신 퀵스타트 (single-machine quickstart)에 설명된 대로 Apache Druid를 이미 다운로드하고 로컬 머신에서 실행 중이라고 가정해요.

또한 Load a file과 Query data 튜토리얼을 완료했으면 도움이 돼요.

예제 데이터 로드하기 (Load the example data)

이 튜토리얼에서는 Wikipedia 편집 샘플 데이터를 사용할 거예요. 입력 데이터의 각 시간에 대해 별도의 세그먼트를 만드는 수집 태스크 스펙을 사용해요.

수집 스펙은 quickstart/tutorial/retention-index.json 에서 확인할 수 있어요. 그 스펙을 제출해서 retention-tutorial 이라는 데이터소스를 만들어 볼게요:

bin/post-index-task --file quickstart/tutorial/retention-index.json --url http://localhost:8081

수집이 완료된 후 브라우저에서 http://localhost:8888/unified-console.html#datasources 로 이동해 웹 콘솔의 데이터소스 뷰에 접근해 주세요.

이 뷰는 사용 가능한 데이터소스와 각 데이터소스의 보존 규칙 요약을 보여 줘요.

현재 retention-tutorial 데이터소스에는 설정된 규칙이 없어요. 클러스터에는 기본 규칙이 있다는 점에 주목해 주세요: _default_tier 에서 복제본 2개로 load forever. 즉 모든 데이터가 타임스탬프와 관계없이 로드되고, 각 세그먼트가 기본 티어의 두 Historical 프로세스에 복제된다는 뜻이에요.

이 튜토리얼에서는 지금은 티어링과 중복(redundancy) 개념은 무시할 거예요.

"Fully Available" 옆의 "24 Segments" 링크를 클릭해 retention-tutorial 데이터소스의 세그먼트를 살펴볼게요.

세그먼트 뷰(http://localhost:8888/unified-console.html#segments)는 데이터소스가 어떤 세그먼트를 포함하는지에 대한 정보를 제공해요. 페이지는 24개의 세그먼트가 있고, 각각 2015-09-12의 특정 시간 데이터를 담고 있음을 보여 줘요.

보존 규칙 설정하기 (Set retention rules)

2015-09-12의 처음 12시간 데이터는 드롭하고, 나중 12시간 데이터는 유지하고 싶다고 가정해 볼게요.

데이터소스 뷰로 가서 retention-tutorial 데이터소스의 Cluster default: loadForever 옆에 있는 파란 연필 아이콘을 클릭해 주세요.

규칙 구성 창이 나타나요.

이제 + New rule 버튼을 두 번 클릭해 주세요.

위쪽 규칙 상자에서 Load and by interval 을 선택하고, by interval 옆 필드에 2015-09-12T12:00:00.000Z/2015-09-13T00:00:00.000Z 를 입력해 주세요. Replicas 는 _default_tier 에서 2로 유지할 수 있어요.

아래쪽 규칙 상자에서 Drop and forever 을 선택해 주세요.

규칙은 다음과 같이 보여야 해요.

이제 Next 를 클릭해 주세요. 규칙 구성 과정이 변경 로깅을 위해 사용자 이름과 코멘트를 요구해요. 둘 다 tutorial 을 입력하면 돼요.

이제 Save 를 클릭해 주세요. 데이터소스 뷰에서 새 규칙을 볼 수 있어요.

클러스터가 규칙 변경을 적용하도록 몇 분 기다린 뒤, 웹 콘솔의 세그먼트 뷰로 이동해 주세요. 2015-09-12의 처음 12시간 세그먼트가 이제 사라졌어요.

결과 보존 규칙 체인은 다음과 같아요:

  • loadByInterval 2015-09-12T12/2015-09-13 (12시간)
  • dropForever
  • loadForever (기본 규칙)

규칙 체인은 위에서 아래로 평가되고, 기본 규칙 체인은 항상 맨 아래에 추가돼요.

방금 만든 튜토리얼 규칙 체인은 데이터가 지정된 12시간 구간 안에 있으면 로드해요.

데이터가 12시간 구간 안에 없다면, 규칙 체인은 다음으로 dropForever 를 평가해서 어떤 데이터든 드롭해요.

dropForever 는 규칙 체인을 종료해서 기본 loadForever 규칙을 사실상 덮어써요. 이 규칙 체인에서는 loadForever 가 결코 도달하지 않아요.

이 튜토리얼에서는 특정 구간에 로드 규칙을 정의했다는 점에 주목해 주세요.

데이터의 나이(age)에 따라 유지하고 싶다면(예: 과거 3개월부터 현재까지의 데이터 유지), 대신 Period 로드 규칙을 정의하면 돼요.

더 읽어보기 (Further reading)

  • Load rules — 로드 규칙에 대한 자세한 내용.

더 알아보기 (Learn more)