AlloyDB Omni에서 열 기반 엔진 구성

이 페이지에서는 AlloyDB Omni 데이터베이스 클러스터에서 열 기반 엔진을 사용 설정하거나 사용 중지하는 방법을 설명합니다. 또한 열 스토어의 적절한 초기 크기를 구성하는 방법도 다룹니다.

Google Cloud에서 PostgreSQL용 AlloyDB를 사용할 때 열 기반 엔진을 사용하려면 열 기반 엔진 구성을 참고하세요.

AlloyDB 열 형식 엔진의 개념적 개요는 AlloyDB 열 형식 엔진 정보를 참고하세요.

열 기반 엔진 사용 설정

인스턴스에서 열 엔진을 사용하려면 인스턴스의 google_columnar_engine.enabled 플래그를 on로 설정합니다.

인스턴스에 이 플래그를 설정하려면 다음 단계를 따르세요.

  1. ALTER SYSTEM PostgreSQL 명령어를 실행합니다.

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. 열 엔진의 구성을 조정하려면 데이터베이스 서버를 다시 시작하기 전에 다음 섹션의 안내를 따르세요. 그렇지 않으면 다음 두 단계에 따라 지금 데이터베이스 서버를 다시 시작합니다.

  3. 데이터베이스 서버를 중지합니다.

  4. 데이터베이스 서버를 시작합니다.

열 스토어 크기 구성

인스턴스에서 열 형식 엔진이 사용 설정된 동안 AlloyDB는 인스턴스 메모리의 일부를 할당하여 열 형식 데이터를 저장합니다. 열 스토어에 고속 RAM을 할당하면 AlloyDB가 열 형식 데이터에 최대한 빠르게 액세스할 수 있습니다.

google_columnar_engine.memory_size_in_mb 플래그를 사용하여 할당을 고정된 특정 크기로 설정할 수도 있습니다. 인스턴스에 이 플래그를 설정하려면 다음 단계를 따르세요.

  1. ALTER SYSTEM PostgreSQL 명령어를 실행합니다.

    ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
    

    COLUMN_STORE_SIZE를 열 스토어의 새 크기(MB)로 바꿉니다.

  2. 데이터베이스 서버를 중지합니다.

  3. 데이터베이스 서버를 시작합니다.

벡터화된 조인 사용 설정

열 형식 엔진에는 벡터화 처리를 요건을 충족하는 쿼리에 적용하여 조인 성능을 개선할 수 있는 벡터화된 조인 기능이 있습니다.

벡터화된 조인을 사용 설정한 후 AlloyDB 쿼리 플래너는 표준 PostgreSQL 해시 조인 연산자 대신 벡터화된 조인 연산자를 적용할 수 있습니다. 계획자는 두 가지 방법을 사용하여 쿼리를 실행하는 데 드는 비용을 비교하여 이 결정을 내립니다.

인스턴스에서 벡터화된 조인을 사용 설정하려면 인스턴스의 google_columnar_engine.enable_vectorized_join 플래그를 on로 설정합니다.

인스턴스에 이 플래그를 설정하려면 ALTER SYSTEM PostgreSQL 명령어를 실행합니다.

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

AlloyDB는 기본적으로 벡터화된 조인 기능에 스레드 하나를 할당합니다. google_columnar_engine.vectorized_join_threads 플래그를 더 큰 값으로 설정하여 이 기능에 사용할 수 있는 스레드 수를 늘릴 수 있습니다.

열 기반 엔진 수동 새로고침

기본적으로 열 엔진은 사용 설정된 경우 백그라운드에서 열 스토어를 자동으로 새로고침하도록 설정됩니다. 자동 새로고침이 잘못된 블록이 많은 관계를 새로고치지 않는 경우와 같이 특정 상황에서는 열 저장소를 수동으로 새로고침해야 할 수 있습니다.

열 엔진을 수동으로 새로고침하려면 다음 SQL 쿼리를 실행합니다.

SELECT google_columnar_engine_refresh('TABLE_NAME');

TABLE_NAME을 수동으로 새로고침하려는 테이블 또는 구체화된 뷰의 이름으로 바꿉니다.

열 기반 엔진 사용 중지

인스턴스에서 컬럼바 엔진을 사용 중지하려면 google_columnar_engine.enabled 플래그를 off로 설정합니다.

인스턴스에 이 플래그를 설정하려면 다음 단계를 따르세요.

  1. ALTER SYSTEM PostgreSQL 명령어를 실행합니다.

    ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
    
  2. 데이터베이스 서버를 중지합니다.

  3. 데이터베이스 서버를 시작합니다.

열 기반 엔진 문제 해결

'공유 메모리 부족' 오류 해결

열 형식 엔진이 사용할 만큼 충분한 공유 메모리가 없이 AlloyDB Omni를 실행하면 다음과 같은 오류가 표시될 수 있습니다.

Insufficient shared memory for generating the columnar formats.

AlloyDB Omni 컨테이너에서 사용할 수 있는 공유 메모리 양을 지정하여 이 문제를 해결할 수 있습니다. 이 방법은 호스트 운영체제에 따라 다릅니다.

Linux

/etc/fstab 파일 수정과 같은 기법을 사용하여 호스트 머신의 /dev/shm 파티션 크기를 늘립니다.

macOS

--shm-size 플래그에 더 큰 공유 메모리 값을 지정하여 새 AlloyDB Omni 컨테이너를 설치합니다.

열이 채워지지 않는 문제 해결

열이 열 엔진에 채워지지 않으면 다음 중 하나가 true일 수 있습니다.

  • 추가하려는 열에 지원되지 않는 데이터 유형이 포함되어 있습니다.

  • 열 기반 엔진의 요구사항이 충족되지 않습니다.

이 문제의 원인을 찾으려면 다음을 시도해 보세요.

  • 쿼리의 테이블 또는 구체화된 뷰가 열 엔진에 있는지 확인합니다.

  • EXPLAIN 문을 사용하여 열 형식 엔진의 사용을 확인합니다.

  • 다음 단계