열 스토어 콘텐츠 수동 관리

이 페이지에서는 열을 수동으로 추가하고 삭제하여 columnar 엔진의 열 저장소를 관리하는 방법을 설명합니다.

워크로드에 따라 열 스토어에 열을 수동으로 추가하거나 테이블 또는 구체화된 뷰의 일부 또는 모든 열을 열 스토어에서 삭제할 수 있습니다. 쿼리 평가에서는 저장된 열 형식 데이터를 자동으로 사용하여 쿼리에 응답합니다.

열 저장소에 추가할 테이블, 구체화된 뷰, 열을 선택할 때는 열 저장소의 크기와 워크로드의 모양을 모두 고려하세요. 선택하기에 적합한 후보에는 자주 스캔되는 대규모 테이블 또는 뷰가 포함됩니다. 이러한 테이블 또는 뷰 내에서 OLAP 워크로드에서 사용되는 중복되지 않는 대형 인덱스를 식별합니다. 이러한 색인의 열을 열 저장소에 추가하고 색인을 삭제하여 기본 인스턴스에서 유지관리와 관련된 성능 비용을 없앨 수 있습니다.

다음 방법 중 하나를 사용하여 열 형식 엔진의 열 저장소 콘텐츠를 관리합니다.

열 스토어에 표, 열, 구체화된 뷰를 추가할 때 사용할 수 있는 데이터 유형과 데이터 소스에 관한 자세한 내용은 열 스토어에 추가할 수 있는 데이터를 참고하세요.

시작하기 전에

  • 사용 중인 Google Cloud 프로젝트에 다음 IAM 역할 중 하나가 있어야 합니다.
    • roles/alloydb.admin (AlloyDB 관리자가 사전 정의한 IAM 역할)
    • roles/owner(소유자 기본 IAM 역할)
    • roles/editor(편집자 기본 IAM 역할)

    이러한 역할이 없는 경우 조직 관리자에게 문의하여 액세스 권한을 요청하세요.

데이터베이스 플래그를 업데이트하여 열 저장소 콘텐츠 관리

google_columnar_engine.relations 데이터베이스 플래그를 업데이트하여 열 스토어 콘텐츠를 수동으로 관리할 수 있습니다. 플래그에는 열 스토어의 모든 데이터 소스를 지정하는 단일 값이 있습니다. 다시 시작하는 동안 이 플래그에 지정된 열은 열 저장소에 자동으로 채워집니다.

이 플래그는 자동 열 구성과 함께 사용할 수 있습니다. 열 엔진에 google_columnar_engine.relations 플래그를 통해 지정한 열을 채운 후 사용할 수 있는 메모리가 있으면 자동 열 변환이 필요에 따라 열 저장소에 추가 열을 추가합니다.

Google Cloud CLI 또는 Google Cloud 콘솔을 사용하여 인스턴스의 데이터베이스 플래그를 설정하는 방법에 대한 자세한 내용은 인스턴스의 데이터베이스 플래그 구성을 참고하세요.

플래그를 사용하여 열 추가

열 저장소에 열을 추가하려면 인스턴스의 google_columnar_engine.relations 플래그를 정의합니다. 값을 쉼표로 구분된 항목 목록으로 설정합니다. 각 항목은 특정 테이블에서 포함할 열 목록을 다음 형식으로 지정합니다.

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)

다음을 바꿉니다.

  • DATABASE_NAME: 열 스토어에 추가할 열이 포함된 데이터베이스입니다.

  • SCHEMA_NAME: 열 저장소에 추가할 테이블 또는 구체화된 뷰를 식별하는 스키마입니다(예: public).

  • TABLE_NAME: 열 저장소에 추가할 열이 포함된 테이블 또는 구체화된 뷰입니다.

  • COLUMN_LIST: 열 저장소에 추가할 열의 쉼표로 구분된 목록입니다.

하나의 테이블 또는 하나의 구체화된 뷰의 모든 열을 추가하려면 열 목록을 생략합니다.

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME

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

명령줄 구문 참고사항

Google Cloud CLI를 사용하여 google_columnar_engine.relations 플래그를 설정하는 경우 대체 구분 기호 구문을 사용하여 설정한 데이터베이스 플래그를 구분해야 합니다. 열 목록이 쉼표로 구분되어 있으므로 동일한 명령줄 인수 내에서 플래그를 지정할 때 쉼표가 아닌 문자를 사용해야 합니다.

다음 예에서는 gcloud CLI를 사용하여 public 스키마의 두 열을 열 저장소에 추가하는 방법을 보여줍니다. 이 예에서는 열 형식 엔진을 사용 설정하는 별도의 플래그를 설정합니다. gcloud alloydb instance update 명령어를 사용하여 데이터베이스 플래그를 설정하면 이미 설정된 경우에도 기본값이 아닌 값을 갖도록 하려는 다른 모든 데이터베이스 플래그도 설정해야 하기 때문입니다.

gcloud alloydb instances update INSTANCE_NAME \
    --database-flags=^:^\
google_columnar_engine.relations='DATABASE_NAME.public.TABLE_NAME(COLUMN_1,COLUMN_2)'\
:google_columnar_engine.enabled=on\
[:FLAG_3=VALUE_3 ...] \
    --region=REGION_ID \
    --cluster=CLUSTER_ID

플래그를 사용하여 열 삭제

열 저장소에서 열을 삭제하려면 이전 섹션에 설명된 google_columnar_engine.relations 플래그의 새 값을 설정하고 삭제할 열을 제외합니다.

열 저장소에서 모든 열을 삭제하려면 인스턴스에서 google_columnar_engine.relations 플래그를 설정 해제하세요.

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

SQL 함수를 사용하여 열 저장소 콘텐츠 관리

SQL 함수를 사용하여 열 저장소 콘텐츠를 수동으로 관리할 수 있습니다.

SQL 함수를 사용하여 열 추가

google_columnar_engine_add SQL 함수를 실행하여 열 스토어에 열을 추가합니다.

이 메서드는 지정된 열을 열 저장소에 추가하고 연결된 노드의 열만 관리합니다. 새 열은 인스턴스 재시작 시 저장소 내에 유지되지 않습니다.

이 메서드는 google_columnar_engine.relations 데이터베이스 플래그를 변경하지 않습니다. 자동 열 형식화는 이 SQL 함수로 추가된 열을 고려하지 않습니다.

psql 클라이언트

SELECT google_columnar_engine_add(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
    다음을 바꿉니다.
  • 'TABLE_NAME': 테이블 또는 구체화된 뷰의 이름이 포함된 문자열입니다. 테이블 또는 뷰가 public 이외의 스키마에 있는 경우 스키마 이름, 점, 테이블 또는 뷰 이름을 지정합니다(예: 'myschema.mytable').
  • 'COLUMN_LIST': 추가할 열의 이름이 쉼표로 구분되고 대소문자를 구분하는 목록이 포함된 문자열입니다. 테이블 또는 구체화된 뷰의 모든 열을 열 저장소에 추가하려면 이 매개변수를 생략하세요.

SQL 함수를 사용하여 열 삭제

다음과 같이 google_columnar_engine_drop SQL 함수를 실행합니다.

psql 클라이언트

SELECT google_columnar_engine_drop(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
다음을 바꿉니다.
  • 'TABLE_NAME': 테이블 또는 구체화된 뷰의 이름이 포함된 문자열입니다. 테이블 또는 뷰가 public 이외의 스키마에 있는 경우 스키마 이름, 점, 테이블 또는 뷰 이름을 지정합니다(예: 'myschema.mytable').
  • 'COLUMN_LIST': 추가할 열의 이름이 쉼표로 구분되고 대소문자를 구분하는 목록이 포함된 문자열입니다. 테이블 또는 구체화된 뷰의 모든 열을 열 저장소에 추가하려면 이 매개변수를 생략하세요.

google_columnar_engine.relations 데이터베이스 플래그를 수정하여 추가된 열을 삭제하려면 google_columnar_engine_drop 함수를 사용하면 됩니다. 하지만 이렇게 하면 인스턴스가 다시 시작될 때 해당 열이 열 형식 저장소에 다시 추가됩니다.