마이그레이션 가이드
마이그레이션 가이드
Druid 25.0.0 이후에 도입된 주요 비호환 변경(breaking change)과 그 마이그레이션 전략을 소개해요. 배열 타입, front-coded dictionary, 서브쿼리 한도, ANSI SQL null 처리 모드 전환을 다뤄요.
출처: 문서
본문
일반적으로 Apache Druid에 새 기능과 동작을 도입할 때는, 새 동작을 도입하면서 기존 기능을 깨지 않도록 최선을 다해요. 그러나 때로는 이전 동작에 backward-compatible한 방식으로 고칠 수 없는 버그나 성능 한계가 있기도 해요. 이런 경우 Druid의 향후 유지보수성을 위해 비호환 변경을 도입해야 해요.
이 섹션의 가이드들은 Druid 25.0.0 이후에 도입된 비호환 변경을 설명해요. 각 가이드는 새 기능으로 마이그레이션하는 지침을 제공해요.
multi-value dimension에서 배열로 마이그레이션
Druid는 이제 SQL 호환 배열 타입을 지원해요. 가능하면 언제나 multi-value dimension보다 배열 타입을 사용해야 해요. 자세한 내용은 Migration guide: MVDs to arrays 문서를 참고해요.
front-coded dictionary 인코딩으로 마이그레이션
Druid는 더 나은 압축을 위해 문자열 컬럼을 dictionary로 인코딩해요. Front-coded dictionary 인코딩은 유사한 시작 부분 문자열을 공유하는 문자열에 최적화해 저장 공간을 줄이고 성능을 향상시켜요. 자세한 내용은 Migration guide: front-coded dictionaries 문서를 참고해요.
maxSubqueryRows에서 maxSubqueryBytes로 마이그레이션
Druid는 서브쿼리 크기에 바이트 기반 한도를 설정해 큰 서브쿼리를 처리할 때 Broker가 메모리 부족이 되는 것을 방지할 수 있게 해줘요. 바이트 기반 서브쿼리 한도는 Druid의 행 기반 서브쿼리 한도를 재정의해요. Druid 30.0.0부터 바이트 기반 한도 사용으로 전환하는 것을 권장해요. 자세한 내용은 Migration guide: subquery limit 문서를 참고해요.
SQL 호환 null 처리 모드로 마이그레이션
기본적으로 Druid의 null 처리 모드는 이제 ANSI SQL과 호환돼요. 이 가이드는 애플리케이션에서 레거시 Druid null 처리 동작에 의존하는 Druid 운영자와 사용자들이 ANSI SQL 호환 모드로 전환하기 위한 전략을 제공해요. 자세한 내용은 Migration guide: SQL compliant mode 문서를 참고해요.
더 알아보기 (Learn more)
- MVD에서 배열로 마이그레이션 — 배열 타입 전환
- Front-coded dictionary 마이그레이션 — 사전 인코딩
- ANSI SQL null 처리 — null 처리 모드