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

Apache Doris 테이블 설계 가이드

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

설계 절차​

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

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

테이블 생성​

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

테이블 이름 규칙​

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로 마이그레이션합니다스토리지 비용을 크게 줄입니다