이 문서에서는 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를 사용하여 진행 중인 주요 압축 요청을 취소할 수도 있습니다. 자세한 내용은 장기 실행 데이터베이스 작업 취소를 참고하세요.