AlloyDB 열 기반 엔진 정보

이 페이지에서는 PostgreSQL용 AlloyDB에서 제공하는 열 형식 엔진을 간략하게 설명하고 사용 방법을 보여줍니다.

AlloyDB 열 기반 엔진은 다음 구성요소를 제공하여 스캔, 조인, 집계의 SQL 쿼리 처리를 가속화합니다.

  • 선택한 열의 테이블 및 구체화된 뷰 데이터를 포함하며 열 중심 형식으로 재구성된 열 저장소입니다.

  • 쿼리에서 열 스토어 사용을 지원하는 열 형식 쿼리 플래너 및 실행 엔진

열 기반 엔진은 기본 인스턴스, 읽기 풀 인스턴스 또는 둘 다에서 사용할 수 있습니다. 자동 열 지정을 사용하여 워크로드를 분석하고 성능 향상을 가장 많이 제공하는 열로 열 저장소를 자동으로 채울 수도 있습니다.

특정 쿼리와 함께 열 기반 엔진을 사용하려면 조인 및 스캔과 같은 해당 쿼리 프래그먼트의 모든 열이 열 저장소에 있어야 합니다.

기본적으로 열 형식 엔진은 인스턴스 메모리의 30% 를 사용하도록 설정되어 있습니다. 워크로드, 메모리 사용량, 읽기 풀 구성 여부에 따라 기본 인스턴스에서 열 기반 엔진 메모리 할당을 줄이고 읽기 풀 인스턴스에 더 많은 메모리를 할당할 수 있습니다. 열 기반 엔진의 메모리 사용량을 확인하고 모니터링하려면 열 저장소 메모리 사용량 보기를 참조하세요. 열 저장소에서 사용하는 메모리 크기를 수정하려면 열 저장소 크기 구성을 참조하세요. 인스턴스에 권장되는 열 기반 엔진 메모리 크기를 확인하려면 열 저장소 메모리 크기 추천을 참조하세요.

열 기반 엔진의 이점을 활용하는 쿼리 유형

특정 쿼리는 열 기반 엔진의 이점을 누릴 수 있습니다. 다음은 열 기반 엔진의 이점을 가장 많이 누릴 수 있는 작업과 쿼리 패턴의 목록입니다.

  • 테이블 스캔

    • WHERE 절과 같은 선택적 필터가 있습니다.
    • 큰 테이블 또는 구체화된 뷰의 열을 소수만 사용합니다.
    • LIKE, SUBSTR, `TRIM`과 같은 표현식을 사용합니다.
  • 집계 함수

    • SUM, MIN, MAX, AVG, COUNT 표현식만 사용합니다.
    • 열 기반 스캔의 쿼리 시작 부분에 있습니다.
    • 그룹화되지 않았거나 열별로 그룹화되었습니다.
  • ORDER-BYSORT: ORDER-BY 또는 SORT가 열 형식 엔진에서 액세스한 열의 검사 결과에 있는 경우에만

  • LIMIT: 연산자가 열 스캔 쿼리의 시작 부분에 있고 SORT 또는 GROUP BY 연산자 앞에 있는 경우에만

  • INNER HASH JOIN는 사용된 키가 열이고 조인 한정자가 사용되지 않는 경우에만 사용됩니다.

  • 선택적 조인은 조인이 열 기반 스캔의 쿼리 시작 부분에 있는 경우에만

열 기반 엔진에 가장 적합한 쿼리, 쿼리에서 열 기반 엔진이 사용되었는지 여부, 사용된 방식에 대한 자세한 내용은 EXPLAIN을 사용하여 열 기반 엔진 사용량 확인을 참조하세요.

열 형식 엔진 사용 방법

AlloyDB 인스턴스에서 열 기반 엔진을 사용하려면 다음의 개략적인 단계를 실행합니다.

  1. 인스턴스에서 엔진을 사용 설정합니다.

    엔진을 사용 설정하는 것은 일회성 작업이며 다시 시작해야 합니다.

  2. 열 저장소에 열을 추가합니다.

    열 저장소에 열을 추가하려면 다음 방법 중 하나를 사용합니다.

  3. g_columnar_relations를 사용하여 열 저장소에 있는 항목을 추적할 수 있으며, 열이 추가된 후에는 EXPLAIN을 사용하여 SQL 쿼리에서 열 기반 엔진의 사용을 확인할 수 있습니다.

열 기반 엔진을 사용하는 방법에 대한 자세한 내용은 열 기반 엔진 구성을 참조하세요.

열 저장소에 추가할 수 있는 데이터

열 저장소에 열을 추가할 때 사용할 수 있는 데이터 유형과 데이터 소스에는 몇 가지 제한사항이 있습니다.

지원되는 데이터 유형

열 기반 엔진은 다음 내장 데이터 유형이 있는 열만 지원합니다.

  • array
  • bigint
  • boolean
  • bytea
  • char
  • date
  • decimal
  • double precision
  • enum
  • float4
  • float8
  • integer
  • json
  • jsonb
  • numeric
  • real
  • serial
  • short
  • smallint
  • text
  • timestamp
  • timestamptz
  • uuid
  • varchar
  • vector(미리보기)

열 기반 엔진은 지원되지 않는 데이터 유형이 있는 열을 열 저장소에 수동으로 추가하려는 시도를 무시합니다.

지원되지 않는 데이터 소스

열 기반 엔진은 다음 속성이 데이터 소스인 테이블 또는 구체화된 뷰를 지원하지 않습니다.

  • 리프가 아닌 파티션을 나눈 테이블

  • 외래 테이블

  • 행이 5,000개 미만인 테이블 또는 뷰

열 기반 엔진 제한사항

  • 색인이 있는 열에 분석 쿼리를 실행하는 경우 AlloyDB 최적화 프로그램이 행 저장소를 사용하도록 선택할 수 있습니다.
  • 열 저장소에 수동으로 추가된 열은 자동으로 삭제되지 않습니다. 수동으로 추가된 열을 강제로 삭제하려면 인스턴스에서 google_columnar_engine_drop()을 사용하세요.
  • 자동 열 형식화는 쿼리 사용량에 따라 열을 동적으로 추가하고 삭제할 수 있습니다.
  • 열 기반 엔진에서 지원되지 않는 데이터 유형도 있습니다. 지원되는 데이터 유형을 확인하려면 지원되는 데이터 유형을 참조하세요.
  • 행을 자주 업데이트하면 열 기반 데이터가 무효화됩니다. 열 형식 스토어에서 테이블 또는 구체화된 뷰를 검증하려면 업데이트 빈도를 줄이거나 열 형식 엔진 새로고침을 더 자주 예약하면 됩니다.

    g_columnar_relations에서 invalid_block_counttotal_block_count 열을 비교하여 표 또는 뷰가 영향을 받는지 확인할 수 있습니다. 테이블 또는 뷰가 자주 또는 대량으로 변경되는 경우 invalid_block_count가 높습니다.

다음 단계