AlloyDB 열 기반 엔진의 개념적 개요는 AlloyDB Omni 열 기반 엔진 개요를 참고하세요.
열 기반 엔진 사용 설정
인스턴스에서 열 기반 엔진을 사용하려면 인스턴스의
google_columnar_engine.enabled
플래그를 on으로 설정합니다.
google_columnar_engine.enabled 매개변수를 on으로 설정하려면 다음 단계를 완료하세요.
DBCluster데이터베이스 클러스터 매니페스트를 엽니다.primarySpec섹션에서google_columnar_engine.enabled매개변수를parameters블록에 추가합니다.DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on"DB_CLUSTER_NAME을 데이터베이스 클러스터 이름으로 바꿉니다.RPM 오케스트레이터가 매개변수 변경사항을 적용하기 위해 데이터베이스를 자동으로 다시 시작합니다. 다음 방법 중 하나를 사용하여 업데이트된
DBCluster매니페스트를 적용합니다.alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
Ansible
update.yml플레이북 파일을 만듭니다.--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update다음을 바꿉니다.
SSH_USER: SSH를 사용하여 클러스터의 노드에 연결하는 데 사용하는 사용자 이름입니다.SSH_KEY_PATH: 노드에 연결하는 데 사용되는 SSH 비공개 키 파일의 로컬 경로입니다.
제어 노드에서 플레이북을 실행하고 리소스 사양을 추가 변수로 전달합니다.
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
열 스토어 크기 구성
인스턴스에서 열 기반 엔진이 사용 설정되어 있는 동안 AlloyDB Omni는 열 형식 데이터를 저장하기 위해 인스턴스 메모리 일부를 할당합니다. 고속 RAM을 열 스토어 전용으로 지정하면 AlloyDB Omni가 열 형식 데이터에 최대한 빠르게 액세스할 수 있는지 확인할 수 있습니다.
메모리와 스토리지 캐시를 합한 값이 열 기반 엔진 총 용량을 나타냅니다.
메모리 구성
google_columnar_engine.memory_size_in_mb 플래그를 사용하여 할당을 고정 크기로 설정할 수 있습니다.
google_columnar_engine.memory_size_in_mb 매개변수를 설정하려면 다음 단계를 완료하세요.
DBCluster데이터베이스 클러스터 매니페스트를 엽니다.primarySpec섹션에서 열 기반 엔진 구성을parameters블록에 추가합니다.DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on" google_columnar_engine.memory_size_in_mb: "MEMORY_SIZE_MB"다음을 바꿉니다.
DB_CLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.MEMORY_SIZE_MB: 열 기반 엔진에 할당할 메모리 양(MB)입니다.
RPM 오케스트레이터가 매개변수 변경사항을 적용하기 위해 데이터베이스를 자동으로 다시 시작합니다. 다음 방법 중 하나를 사용하여 업데이트된
DBCluster매니페스트를 적용합니다.alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
Ansible
update.yml플레이북 파일을 만듭니다.--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update다음을 바꿉니다.
SSH_USER: SSH를 사용하여 클러스터의 노드에 연결하는 데 사용하는 사용자 이름입니다.SSH_KEY_PATH: 노드에 연결하는 데 사용되는 SSH 비공개 키 파일의 로컬 경로입니다.
제어 노드에서 플레이북을 실행하고 리소스 사양을 추가 변수로 전달합니다.
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
스토리지 캐시 구성
전용 기기나 공유 기기에서 열 기반 엔진 스토리지 캐시를 구성할 수 있습니다.
전용 기기
열 기반 엔진 스토리지 캐시의 전용 기기를 구성하려면 다음 단계를 완료하세요.
DBCluster데이터베이스 클러스터 매니페스트를 엽니다.primarySpec섹션에서columnarSpillToDisk속성을cacheSize및localVolume.path와 함께features블록에 추가합니다.DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... features: columnarSpillToDisk: cacheSize: STORAGE_CACHE_SIZE localVolume: path: COLUMNAR_CACHE_DIR_PATH다음을 바꿉니다.
DB_CLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.STORAGE_CACHE_SIZE: 열 기반 엔진 스토리지 캐시의 크기 제한(예:50Gi)입니다.COLUMNAR_CACHE_DIR_PATH: 열 기반 엔진 스토리지 캐시의 전용 디렉터리 파일 시스템 경로(예:/mnt/disks/columnarcache)입니다.
alloydbctl또는 Ansible을 사용하여 업데이트된DBCluster매니페스트를 적용합니다.alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
Ansible
update.yml플레이북 파일을 만듭니다.--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update다음을 바꿉니다.
SSH_USER: SSH를 사용하여 클러스터의 노드에 연결하는 데 사용하는 사용자 이름입니다.SSH_KEY_PATH: 노드에 연결하는 데 사용되는 SSH 비공개 키 파일의 로컬 경로입니다.
제어 노드에서 플레이북을 실행하고 리소스 사양을 추가 변수로 전달합니다.
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
공유 기기
columnarSpillToDisk에서 localVolume.path를 지정하지 않으면 열 기반 엔진 스토리지 캐시가 ultraFastCache에서 구성된 디스크 캐시 스토리지를 공유합니다.
공유 기기에서 열 기반 엔진 스토리지 캐시를 구성하려면 다음 단계를 완료하세요.
DBCluster데이터베이스 클러스터 매니페스트를 엽니다.primarySpec섹션에서columnarSpillToDisk및ultraFastCache속성을features블록에 추가합니다.DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... features: columnarSpillToDisk: cacheSize: STORAGE_CACHE_SIZE ultraFastCache: cacheSize: ULTRAFAST_CACHE_SIZE localVolume: path: DISK_CACHE_DIR_PATH다음을 바꿉니다.
DB_CLUSTER_NAME: 데이터베이스 클러스터의 이름입니다.STORAGE_CACHE_SIZE: 열 기반 스토리지 캐시의 크기(예:50Gi)입니다. 이 필드 값을 지정하지 않으면 기본적으로 디스크 캐시의 5% 가 열 기반 엔진에 할당됩니다.ULTRAFAST_CACHE_SIZE: AlloyDB Omni에서 예약한 초고속 캐시 버퍼의 최대 크기(예:100Gi)입니다. 설정하지 않으면localVolume.path의 나머지 디스크 공간이 모두 사용됩니다.DISK_CACHE_DIR_PATH: 초고속 캐시 파일의 폴더 경로(예:/mnt/disks/chillcache)입니다.
alloydbctl또는 Ansible을 사용하여 업데이트된DBCluster매니페스트를 적용합니다.alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
Ansible
update.yml플레이북 파일을 만듭니다.--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update다음을 바꿉니다.
SSH_USER: SSH를 사용하여 클러스터의 노드에 연결하는 데 사용하는 사용자 이름입니다.SSH_KEY_PATH: 노드에 연결하는 데 사용되는 SSH 비공개 키 파일의 로컬 경로입니다.
제어 노드에서 플레이북을 실행하고 리소스 사양을 추가 변수로 전달합니다.
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
벡터화된 조인 사용 설정
열 기반 엔진에는 적격한 쿼리에 벡터화된 처리를 적용하여 조인 성능을 향상시킬 수 있는 벡터화된 조인 기능이 있습니다.
벡터화된 조인을 사용 설정하면 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을 수동으로 새로고침하려는 테이블이나 구체화된 뷰의 이름으로 바꿉니다.
열 기반 엔진 사용 중지
인스턴스에서 열 기반 엔진을 사용 중지하려면 google_columnar_engine.enabled 플래그를 off로 설정합니다.
google_columnar_engine.enabled 매개변수를 off로 설정하려면 다음 단계를 완료하세요.
DBCluster데이터베이스 클러스터 매니페스트를 엽니다.primarySpec섹션에서google_columnar_engine.enabled매개변수를parameters블록에서off로 설정합니다.DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "off"DB_CLUSTER_NAME을 데이터베이스 클러스터 이름으로 바꿉니다.RPM 오케스트레이터가 매개변수 변경사항을 적용하기 위해 데이터베이스를 자동으로 다시 시작합니다. 다음 방법 중 하나를 사용하여 업데이트된
DBCluster매니페스트를 적용합니다.alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.
Ansible
update.yml플레이북 파일을 만듭니다.--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update다음을 바꿉니다.
SSH_USER: SSH를 사용하여 클러스터의 노드에 연결하는 데 사용하는 사용자 이름입니다.SSH_KEY_PATH: 노드에 연결하는 데 사용되는 SSH 비공개 키 파일의 로컬 경로입니다.
제어 노드에서 플레이북을 실행하고 리소스 사양을 추가 변수로 전달합니다.
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"다음을 바꿉니다.
DEPLOYMENT_SPEC_PATH: 배포 사양 디렉터리의 경로입니다.DBCLUSTER_SPECIFICATION: 수정한DBCluster매니페스트의 경로입니다.