insert-segment-to-db 도구

insert-segment-to-db 도구 (insert-segment-to-db tool)

과거 버전의 Apache Druid에서 사용되던 insert-segment-to-db 도구의 용도와 제거 배경을 설명하는 문서예요. 이 도구가 왜 더 이상 유용하지 않게 되었는지 이해하면 메타데이터 관리 방식의 변화를 알 수 있어요.

출처: 문서

본문

Apache Druid의 이전 버전에서 insert-segment-to-db는 딥 스토리지를 스캔하고 그 데이터를 Druid 메타데이터 저장소에 삽입하는 도구였어요. 세그먼트를 한 곳에서 다른 곳으로 수동으로 마이그레이션한 후 메타데이터 저장소의 segment 테이블을 업데이트하거나, 세그먼트가 저장된 위치를 알려줘서 유실된 메타데이터 저장소를 복구하는 데 사용되도록 의도되었어요.

Druid 0.14.x 이하에서 Druid는 세그먼트 메타데이터를 메타데이터 저장소의 druid_segments 테이블과 딥 스토리지의 descriptor.json 파일 두 곳에 기록했어요. 이 관행은 통합된 메타데이터 관리의 일환으로 Druid 0.15.0에서 중단되었어요. 이유는 다음과 같아요.

  1. 클러스터 운영자가 세그먼트를 수동으로 드롭하거나 다시 활성화하면 이 정보가 딥 스토리지에 반영되지 않아요. 딥 스토리지에서 메타데이터를 복원하면 그러한 드롭이나 재활성화가 모두 취소돼요.
  2. 세그먼트를 낙관적으로 할당하는 인제스트 방식(네이티브 Kafka 또는 Kinesis 스트림 인제스트, 'append' 모드의 네이티브 배치 인제스트 등)은 실제로 Druid 클러스터가 사용하지 않을 세그먼트를 딥 스토리지에 쓸 수 있어요. 딥 스토리지만 들여다보고는 원래 메타데이터 저장소에 들어간(따라서 사용되어야 하는) 세그먼트와 그렇지 않은(따라서 사용되지 않아야 하는) 세그먼트를 구분할 방법이 없어요.
  3. insert-segment-to-db 도구 외에는 Druid에서 descriptor.json 파일을 읽는 것이 없었어요.

이 변경 이후 Druid는 딥 스토리지에 descriptor.json 파일을 쓰지 않게 되었고, 이제 세그먼트 메타데이터를 메타데이터 저장소에만 기록해요. 이로 인해 insert-segment-to-db 도구는 더 이상 유용하지 않게 되었고, 그래서 Druid 0.15.0에서 제거되었어요.

메타데이터 저장소 없이는 Druid 클러스터를 제대로 복구하기 어렵기 때문에, 메타데이터 저장소를 정기적으로 백업할 것을 강력히 권장해요.

더 알아보기 (Learn more)