AlloyDB 열 기반 엔진의 개념적 개요는 AlloyDB Omni 열 기반 엔진 개요를 참고하세요.
열 기반 엔진 사용 설정
인스턴스에서 열 기반 엔진을 사용하려면 인스턴스의 google_columnar_engine.enabled
플래그를 on
로 설정합니다.
Kubernetes
google_columnar_engine.enabled
플래그를 on
로 설정하려면 데이터베이스 클러스터 매니페스트를 수정하여 primarySpec
섹션에 parameters
속성을 추가합니다.
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "15.12.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "on"
CLUSTER_NAME
을 데이터베이스 클러스터 이름으로 바꿉니다. 데이터베이스 클러스터를 만들 때 선언한 데이터베이스 클러스터 이름과 동일합니다.
열 저장소 크기 구성
인스턴스에서 열 형식 엔진이 사용 설정되어 있는 동안 AlloyDB Omni는 열 형식 데이터를 저장하기 위해 인스턴스 메모리의 일부를 할당합니다. 고속 RAM을 열 스토어에 전용으로 할당하면 AlloyDB Omni가 열 형식 데이터에 최대한 빠르게 액세스할 수 있습니다.
메모리와 스토리지 캐시를 합한 값이 열 기반 엔진의 전체 용량을 나타냅니다.
메모리 구성
google_columnar_engine.memory_size_in_mb
플래그를 사용하여 할당을 고정 크기로 설정할 수 있습니다.
Kubernetes
google_columnar_engine.memory_size_in_mb
플래그를 설정하려면 데이터베이스 클러스터 매니페스트를 수정하여 primarySpec
섹션에 parameters
속성을 추가하세요.
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "15.12.0"
primarySpec:
parameters:
google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"
다음을 바꿉니다.
CLUSTER_NAME
: 데이터베이스 클러스터의 이름입니다. 데이터베이스 클러스터를 만들 때 선언한 데이터베이스 클러스터 이름과 동일합니다.COLUMN_MEMORY_SIZE
: 열 저장소의 새 크기(MB)(예:256
)
스토리지 캐시 구성
Kubernetes
데이터베이스의 스토리지 캐시를 사용 설정하려면 데이터베이스 클러스터 매니페스트를 수정하여 primarySpec
섹션의 features
섹션에 columnarSpillToDisk
속성을 추가하세요.
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "15.12.0"
primarySpec:
features:
columnarSpillToDisk:
cacheSize: STORAGE_CACHE_SIZE
ultraFastCache:
cacheSize: ULTRAFAST_CACHE_SIZE
genericVolume:
storageClass: "STORAGE_CLASS_NAME"
...
다음을 바꿉니다.
CLUSTER_NAME
: 데이터베이스 클러스터의 이름입니다. 데이터베이스 클러스터를 만들 때 선언한 데이터베이스 클러스터 이름과 동일합니다.STORAGE_CACHE_SIZE
: 열 형식 스토리지 캐시의 크기입니다(예:5Gi
). 이 필드의 값을 지정하지 않으면 기본적으로 디스크 캐시의 5% 가 열 형식 엔진에 할당됩니다.ULTRAFAST_CACHE_SIZE
: 캐시 크기입니다(예:100Gi
).shared_buffers
보다 커야 합니다. 이 필드는 선택사항입니다. 이 필드의 값을 지정하지 않으면 AlloyDB Omni가 디스크에 남은 모든 공간을 사용합니다. 이는 컨테이너와 Kubernetes 클러스터의 AlloyDB Omni에 모두 적용됩니다. 측정 단위에 대한 자세한 내용은 메모리 리소스 단위를 참고하세요.STORAGE_CLASS_NAME
: 초고속 캐시 볼륨의 스토리지 클래스 이름입니다(예:local-storage
).
벡터화된 조인 사용 설정
열 형식 엔진에는 적격한 쿼리에 벡터화된 처리를 적용하여 조인 성능을 개선할 수 있는 벡터화된 조인 기능이 있습니다.
벡터화된 조인을 사용 설정하면 AlloyDB 쿼리 플래너가 표준 PostgreSQL 해시 조인 연산자 대신 벡터화된 조인 연산자를 적용할 수 있습니다. 계획자는 각 방법을 사용하여 쿼리를 실행하는 비용을 비교하여 이 결정을 내립니다.
인스턴스에서 벡터화된 조인을 사용 설정하려면 인스턴스의 google_columnar_engine.enable_vectorized_join
플래그를 on
로 설정합니다.
인스턴스에서 이 플래그를 설정하려면 ALTER SYSTEM
PostgreSQL 명령어를 실행합니다.
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
AlloyDB Omni는 기본적으로 벡터화된 조인 기능에 하나의 스레드를 할당합니다. google_columnar_engine.vectorized_join_threads
플래그를 더 큰 값으로 설정하여 이 기능에 사용할 수 있는 스레드 수를 늘릴 수 있습니다. 최댓값은 cpu_count * 2
입니다.
열 기반 엔진 수동으로 새로고침
기본적으로 열 기반 엔진이 사용 설정되면 백그라운드에서 열 스토어를 새로고침합니다.
열 엔진을 수동으로 새로고침하려면 다음 SQL 쿼리를 실행하세요.
SELECT google_columnar_engine_refresh(relation =>'TABLE_NAME');
TABLE_NAME
을 수동으로 새로고침하려는 테이블 또는 구체화된 뷰의 이름으로 바꿉니다.
열 기반 엔진 사용 중지
인스턴스에서 columbar 엔진을 사용 중지하려면 google_columnar_engine.enabled
플래그를 off
로 설정합니다.
Kubernetes
google_columnar_engine.enabled
플래그를 off
로 설정하려면 데이터베이스 클러스터 매니페스트를 수정하여 primarySpec
섹션에 parameters
속성을 추가합니다.
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "15.12.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "off"
CLUSTER_NAME
을 데이터베이스 클러스터 이름으로 바꿉니다. 데이터베이스 클러스터를 만들 때 선언한 데이터베이스 클러스터 이름과 동일합니다.
열 기반 엔진 문제 해결
insufficient shared memory
오류 수정
열 형식 엔진이 사용할 공유 메모리가 충분하지 않은 상태로 AlloyDB Omni를 실행하면 다음 오류가 표시될 수 있습니다.
Insufficient shared memory for generating the columnar formats.
AlloyDB Omni 컨테이너에서 사용할 수 있는 공유 메모리 양을 지정하여 이 문제를 해결할 수 있습니다. 이 작업은 호스트 운영체제에 따라 다릅니다.
Linux
/etc/fstab
파일 수정과 같은 기법을 사용하여 호스트 머신의 /dev/shm
파티션 크기를 늘립니다.
macOS
--shm-size
플래그에 더 큰 공유 메모리 값을 지정하여 새 AlloyDB Omni 컨테이너를 설치합니다.
열이 채워지지 않는 문제 해결
열 기반 엔진에 열이 채워지지 않으면 다음 중 하나에 해당할 수 있습니다.
추가하려는 열에 지원되지 않는 데이터 유형이 포함되어 있습니다.
열 기반 엔진의 요구사항이 충족되지 않습니다.
이 문제를 해결하려면 다음을 시도해 보세요.
다음 단계
열 기반 엔진 데이터베이스 플래그의 전체 목록을 참고하세요.
AlloyDB Omni에서 열 기반 엔진으로 분석 쿼리 가속화 Google Codelab 튜토리얼을 살펴봅니다.