본문으로 건너뛰기
최종 수정: 에

Apache Doris 테이블 설계 가이드

Apache Doris에서 테이블 설계는 쓰기 성능, 쿼리 효율, 스토리지 비용을 직접 결정합니다. 이 장은 대표적인 설계 시나리오를 중심으로 구성되어 있으며, 테이블을 처음부터 설계하거나 기존 테이블의 구조를 최적화하는 데 도움을 줍니다.

설계 절차​

Doris 테이블 설계는 일반적으로 다음 단계로 진행합니다.

  1. 테이블 모델 선택: 데이터를 저장하고, 중복을 제거하고, 집계하는 방식을 결정합니다.
  2. 컬럼과 데이터 타입 정의: 비즈니스 필드에 적합한 타입을 선택합니다.
  3. 파티셔닝과 버케팅 계획: 데이터를 고르게 분산하고 프루닝을 활용할 수 있도록 합니다.
  4. 인덱스 추가: 포인트 쿼리, 범위 스캔, 전문 검색의 속도를 높입니다.
  5. 스토리지 최적화: 압축, 행·열 하이브리드 스토리지, 핫/콜드 계층화를 통해 비용을 줄입니다.
  6. 스키마 변경: 비즈니스 변화에 따라 스키마를 조정하거나 자동 증가 컬럼을 사용합니다.

테이블 생성​

Doris에서 테이블을 생성하려면 CREATE TABLE 문을 사용합니다. 기존 테이블을 바탕으로 새 테이블을 만들려면 다음을 사용할 수 있습니다.

테이블 이름 규칙​

Doris의 테이블 이름은 기본적으로 대소문자를 구분하며, 최대 길이는 64바이트입니다. 다음 설정으로 이 동작을 조정할 수 있습니다.

설정기본값설명
lower_case_table_names대소문자 구분클러스터를 처음 초기화할 때만 설정할 수 있으며, 이후에는 변경할 수 없음
table_name_length_limit64바이트너무 큰 값으로 설정하는 것은 권장하지 않음

주요 테이블 속성​

테이블을 생성할 때 PROPERTIES에 일반적으로 사용하는 속성을 지정할 수 있습니다. 자세한 내용은 CREATE TABLE을 참조하세요.

속성용도
buckets테이블 내 데이터 분산의 세분화 수준을 결정
storage_mediumHDD, SSD, 원격 공유 스토리지 등의 저장 매체를 제어
replication_num중복성과 신뢰성을 확보하기 위한 데이터 복제본 수를 제어
storage_policy핫/콜드 데이터 계층화에 사용할 마이그레이션 정책을 설정
팁

테이블 속성은 파티션 수준에서 적용됩니다. 테이블 속성을 수정하면 이후에 생성되는 파티션에만 적용되며, 기존 파티션에는 영향을 주지 않습니다. 자세한 내용은 ALTER TABLE PROPERTY와 ALTER TABLE DISTRIBUTION을 참조하세요. 동적 파티셔닝에서는 이러한 속성을 별도로 설정할 수 있습니다.

테이블 모델 선택​

컬럼과 데이터 타입 정의​

파티셔닝과 버케팅 계획​

쿼리 가속: 인덱스​

스토리지 최적화​

스키마 변경​

특수 테이블과 모범 사례​

설계 시 고려 사항​

설계 항목설명영향
데이터 모델테이블 생성 후에는 변경할 수 없으므로, 적합한 데이터 모델을 미리 선택해야 함이후의 쓰기 및 쿼리 패턴을 결정
버킷 수이미 생성된 파티션의 버킷 수는 변경할 수 없지만, 파티션 교체를 통해 조정할 수 있음. 동적 파티셔닝에서 이후에 생성될 파티션의 버킷 수는 변경할 수 있음데이터 균형과 쿼리 병렬성에 영향
컬럼 변경VALUE 컬럼 추가 및 삭제는 경량 작업으로 수초 내에 완료되며, KEY 컬럼 추가 및 삭제나 데이터 타입 수정은 중량 작업임대규모 데이터셋에서는 가능한 한 KEY 컬럼 변경을 피해야 함
스토리지 정책핫/콜드 계층화를 사용하여 콜드 데이터를 HDD, S3 또는 HDFS로 마이그레이션스토리지 비용을 크게 절감