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에서 중단되었어요. 이유는 다음과 같아요.
- 클러스터 운영자가 세그먼트를 수동으로 드롭하거나 다시 활성화하면 이 정보가 딥 스토리지에 반영되지 않아요. 딥 스토리지에서 메타데이터를 복원하면 그러한 드롭이나 재활성화가 모두 취소돼요.
- 세그먼트를 낙관적으로 할당하는 인제스트 방식(네이티브 Kafka 또는 Kinesis 스트림 인제스트, 'append' 모드의 네이티브 배치 인제스트 등)은 실제로 Druid 클러스터가 사용하지 않을 세그먼트를 딥 스토리지에 쓸 수 있어요. 딥 스토리지만 들여다보고는 원래 메타데이터 저장소에 들어간(따라서 사용되어야 하는) 세그먼트와 그렇지 않은(따라서 사용되지 않아야 하는) 세그먼트를 구분할 방법이 없어요.
insert-segment-to-db도구 외에는 Druid에서descriptor.json파일을 읽는 것이 없었어요.
이 변경 이후 Druid는 딥 스토리지에 descriptor.json 파일을 쓰지 않게 되었고, 이제 세그먼트 메타데이터를 메타데이터 저장소에만 기록해요. 이로 인해 insert-segment-to-db 도구는 더 이상 유용하지 않게 되었고, 그래서 Druid 0.15.0에서 제거되었어요.
메타데이터 저장소 없이는 Druid 클러스터를 제대로 복구하기 어렵기 때문에, 메타데이터 저장소를 정기적으로 백업할 것을 강력히 권장해요.
더 알아보기 (Learn more)
- 메타데이터 저장소 정리 문서에서 메타데이터 저장소 유지 관리 방법을 살펴보세요.
- Export Metadata 도구 문서에서 세그먼트 메타데이터 내보내기·가져오기 방법을 확인해 보아요.