이 문서에서는 Spanner 데이터베이스에서 주요 압축을 수동으로 트리거하는 방법을 설명합니다.
계층화된 스토리지 또는 열 기반 엔진과 같은 Spanner의 여러 스토리지 관련 기능은 완전히 사용 설정되기 전에 데이터베이스 전체의 주요 압축에 의존합니다. 기본적으로 주요 압축은 7일 동안 모든 테이블에서 자동으로 발생합니다. 즉, 새 기능을 완전히 사용할 수 있을 때까지 최대 7일을 기다려야 할 수 있습니다. 새 기능을 즉시 사용할 수 있도록 주요 압축을 수동으로 트리거할 수 있습니다.
압축 프로세스는 장기 실행 작업 (LRO)입니다.
가격 책정
주요 압축을 수동으로 트리거하면 Spanner 인스턴스의 CPU 사용률이 일시적으로 증가합니다. 이러한 CPU 사용률 증가를 상쇄하기 위해 추가 컴퓨팅 용량 이 필요한 경우 비용이 증가합니다.
성능
주요 압축은 백그라운드 작업으로 실행됩니다. 그러나 인스턴스의 CPU 사용량이 지속적으로 많으면 압축 워크로드가 다른 중요한 작업을 방해할 수 있습니다. 이러한 경우 압축 중에 안정적인 성능을 보장하기 위해 인스턴스를 일시적으로 확장할 수 있습니다.
주요 압축 수동 트리거
Google Cloud 콘솔
Google Cloud 콘솔을 열고 인스턴스를 선택합니다.
데이터베이스를 선택합니다.
탐색 메뉴에서 Spanner 스튜디오 를 클릭합니다.
새 SQL 편집기 탭 또는 새 탭을 클릭하여 새 탭을 엽니다.
데이터베이스 언어에 따라 다음 명령어 중 하나를 실행하여 압축을 시작합니다.
GoogleSQL
CALL compact_all();PostgreSQL
CALL spanner.compact_all();이 작업은 작업 목록에서 작업을 찾는 데 사용할 수 있는 장기 실행 작업 (LRO) ID를 반환합니다.
압축 작업의 진행 상황을 모니터링하려면 탐색 메뉴에서 작업 을 클릭합니다.
C++
C++ 클라이언트 라이브러리를 사용하여 프로그래매틱 방식으로 압축을 트리거하려면 다음 단계를 따르세요.
void Compact(google::cloud::spanner::Client client) {
namespace spanner = ::google::cloud::spanner;
spanner::SqlStatement select("CALL compact_all()");
using RowType = std::tuple<std::string>;
auto rows = client.ExecuteQuery(std::move(select));
for (auto& row : spanner::StreamOf<RowType>(rows)) {
if (!row) throw std::move(row).status();
std::cout << "Long-running operation ID: " << std::get<0>(*row) << "\n";
}
}
장기 실행 데이터베이스 작업의 진행 상황을 확인할 수 있습니다. LRO ID를 사용하여 진행 중인 주요 압축 요청을 취소할 수도 있습니다. 자세한 내용은 장기 실행 데이터베이스 작업 취소를 참조하세요.