논리 테이블

논리 테이블 (Logical Tables)

하나의 쿼리 이름이 파티셔닝 스킴을 사용자에게 노출하지 않고 여러 물리 Pinot 테이블에 걸쳐야 할 때 논리 테이블을 사용하는 페이지예요.

출처: Logical Tables

본문

논리 테이블은 물리 테이블 위의 명명 및 라우팅 레이어예요. 지역, 나이, 운영 모드로 데이터를 나누면서도 사용자 대면 테이블 이름은 하나로 유지하게 해줘요.

분할이 쿼리 계약의 일부가 아니라 구현 세부 사항일 때 논리 테이블을 사용하세요. 물리 테이블을 스키마에 정렬하고, 참조 물리 테이블을 메타데이터 앵커로만 사용하세요.

언제 도움이 되나요? (When they help)

논리 테이블은 다음 패턴 중 하나가 필요할 때 가장 유용해요:

지역 또는 사업 단위별 다른 물리 테이블.

하나의 비즈니스 질문에 여전히 답하는 별도의 오프라인과 실시간 테이블.

함께 쿼리되어야 하는 시간 조각 테이블.

설계 규칙 (Design rules)

하위 스키마를 일관되게 유지하세요. 논리 이름을 안정적으로 유지하세요. 하위 분할이 운영적으로 의미가 있을 때만 이 패턴을 선호하세요. 더 깨끗한 수집으로 해결해야 하는 모델링 문제를 숨기려고 이 패턴을 사용하지 마세요.

하이브리드 스타일 배치의 경우 시간 경계를 명시적으로 만들어 Pinot가 겹치는 데이터를 이중 계산하지 않게 하세요.

예시 패턴 (Example pattern)

{
  "tableName": "orders",
  "brokerTenant": "DefaultTenant",
  "physicalTableConfigMap": {
    "ordersUS_OFFLINE": {},
    "ordersEU_OFFLINE": {}
  },
  "refOfflineTableName": "ordersUS_OFFLINE"
}

더 알아보기 (Learn more)

원래 논리 테이블 워크스루는 Logical Table에 있어요.

이 페이지에서 다룬 내용 (What this page covered)

이 페이지는 논리 테이블을 언제 사용하는지와 물리 테이블 분할을 독자에게 어떻게 숨기는지를 다뤘어요.

다음 단계 (Next step)

테이블이 이미 프로덕션에 있는 후에 스키마를 키워야 한다면 스키마 진화를 읽으세요.

더 알아보기 (Learn more)