열 기반 엔진 구성

이 페이지에서는 PostgreSQL용 AlloyDB 인스턴스에서 열 기반 엔진을 사용 설정하거나 사용 중지하는 방법을 설명합니다. 또한 최적의 성능을 위해 열 스토어의 적절한 초기 크기, 메모리 및 스토리지 캐시 설정을 구성하는 방법도 설명합니다.

AlloyDB Omni를 사용할 때 열 기반 엔진을 사용하려면 AlloyDB Omni에서 열 기반 엔진 사용 설정을 참고하세요.

이러한 각 작업에는 AlloyDB 인스턴스 중 하나의 데이터베이스 플래그 값을 변경하는 작업이 포함됩니다. 데이터베이스 플래그 설정에 대한 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.

AlloyDB 열 기반 엔진의 개념 개요는 AlloyDB 열 기반 엔진 정보를 참조하세요.

열 기반 엔진 사용 설정

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

이 플래그를 설정하면 인스턴스가 자동으로 다시 시작됩니다.

AlloyDB에서 데이터베이스 플래그를 설정하는 방법에 대한 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.

열 스토어 크기 구성

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

메모리와 스토리지 캐시를 합한 값이 열 기반 엔진 총 용량을 나타냅니다.

열 기반 엔진의 메모리 구성

열 스토어가 인스턴스의 할당된 메모리 부분보다 커지면 AlloyDB는 인스턴스의 기본 캐시 레이어를 자동으로 사용하여 추가 열 데이터를 저장합니다.

AlloyDB에서는 관계, 구체화된 뷰, ScaNN 색인을 모두 열 기반 엔진에 로드하여 쿼리 성능을 가속화할 수 있습니다.

기본적으로 AlloyDB는 인스턴스의 메모리 중 30% 를 열 스토어에 할당하며, 인스턴스의 크기를 조절하면 총 할당량이 자동으로 조정됩니다. 인스턴스의 메모리를 최대 50%까지 수정할 수 있습니다. 인스턴스에 권장되는 열 기반 엔진 메모리 크기를 확인하려면 열 저장소 메모리 크기 추천을 참고하세요.

google_columnar_engine.memory_size_in_mb 플래그를 사용하여 할당을 고정된 특정 크기로 설정할 수도 있습니다. AlloyDB가 기본 할당으로 돌아가도록 하려면 인스턴스에서 플래그를 삭제하세요.

플래그 설정 또는 삭제에 대한 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.

열 기반 엔진으로 ScaNN 색인 로드 구성

열 형식 엔진은 ScaNN 색인이 채워지면 벡터 검색을 가속화합니다.

열 기반 색인 캐시를 사용 설정하려면 google_columnar_engine.enable_index_caching 플래그를 on로 설정합니다.

이 기능을 사용 중지하려면 플래그를 off로 설정합니다.

열 기반 엔진의 스토리지 캐시 구성

열 기반 엔진의 스토리지 캐시는 인스턴스 등급에 따라 프로비저닝됩니다.

인스턴스 등급 기본 열 형식 엔진 캐시 크기
N2 C4A
기본 복제본 풀 기본 또는 복제본 풀
vCPU 1개 해당 사항 없음 해당 사항 없음 0
2 vCPU 18.75GB 37.5GB 해당 사항 없음
vCPU 4개 18.75GB 37.5GB 18.75GB
8 vCPU 18.75GB 37.5GB 37.75GB
vCPU 16개 37.5GB 37.5GB 75GB
vCPU 32개 75GB 75GB 112.5GB
vCPU 48개 해당 사항 없음 해당 사항 없음 187.5GB
vCPU 64개 150GB 150GB 262.5GB
vCPU 72개 해당 사항 없음 해당 사항 없음 300GB
vCPU 96개 300GB 300GB 해당 사항 없음
vCPU 128개 450GB 450GB 해당 사항 없음

google_columnar_engine.storage_cache_size 플래그를 사용하면 다음 표에 나열된 최솟값 및 최댓값의 제한과 함께 열 형식 엔진 스토리지 캐시를 조정할 수 있습니다.

인스턴스 등급 최소 열 기반 엔진 캐시 크기 최대 열 기반 엔진 캐시 크기
N2 C4A
기본 복제본 풀 기본 또는 복제본 풀
vCPU 1개 해당 사항 없음 해당 사항 없음 해당 사항 없음 0
2 vCPU 0 187.5GB 375GB 해당 사항 없음
vCPU 4개 0 187.5GB 375GB 187.5GB
8 vCPU 0 187.5GB 375GB 375GB
vCPU 16개 0 375GB 375GB 750GB
vCPU 32개 0 750GB 750GB 1,125GB
vCPU 48개 해당 사항 없음 해당 사항 없음 해당 사항 없음 1,125GB
vCPU 64개 0 1,500GB 1,500GB 2,625GB
vCPU 72개 해당 사항 없음 해당 사항 없음 해당 사항 없음 3,000GB
vCPU 96개 0 3,000GB 3,000GB 해당 사항 없음
vCPU 128개 0 4,500GB 4,500GB 해당 사항 없음

열 기반 엔진의 스토리지 캐시 데이터 모니터링

열 기반 엔진의 스토리지 캐시에 대한 데이터를 보고 모니터링하려면 다음 명령어를 사용하면 됩니다.

명령어 설명
SELECT google_columnar_engine_storage_cache_used(); 사용된 열 기반 엔진 스토리지 캐시의 크기를 반환합니다.
SELECT google_columnar_engine_storage_cache_available(); 사용되지 않는 열 기반 엔진 스토리지 캐시의 크기를 반환합니다.
SHOW google_columnar_engine.storage_cache_size; 열 기반 엔진의 구성된 스토리지 캐시의 총 크기를 반환합니다.

벡터화된 조인 사용 설정

열 기반 엔진에는 적격한 쿼리에 벡터화된 처리를 적용하여 조인 성능을 향상시킬 수 있는 벡터화된 조인 기능이 있습니다.

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

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

데이터베이스 플래그 설정에 대한 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.

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

수동으로 열 기반 엔진 새로고침

기본적으로 열 기반 엔진을 사용 설정하면 백그라운드에서 열 스토어를 자동으로 새로고침하도록 설정됩니다.

INSERT, UPDATE 또는 DELETE 작업이 빈번한 것과 같이 데이터 수정 비율이 높은 워크로드의 경우 이러한 변경사항이 적용된 후 열 형식 저장소를 수동으로 새로고침하여 색인을 최신 상태로 유지할 수 있습니다.

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

SELECT google_columnar_engine_refresh('TABLE_NAME');

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

열 기반 엔진 사용 중지

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

AlloyDB에서 데이터베이스 플래그를 설정하는 방법에 대한 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.

이 플래그를 설정하면 인스턴스가 자동으로 다시 시작됩니다.

열 기반 엔진 문제 해결

열 기반 엔진에서 열이 채워지지 않으면 다음 중 하나가 원인일 수 있습니다.

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

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

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

  • 인스턴스의 감사 로그를 검토합니다.

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

  • EXPLAIN 문을 사용하여 열 기반 엔진 사용을 확인합니다.

다음 단계