Spanner 데이터베이스에서 주요 압축을 수동으로 트리거

이 문서에서는 Spanner 데이터베이스에서 주요 압축을 수동으로 트리거하는 방법을 설명합니다.

Spanner의 스토리지 관련 기능(예: 계층 스토리지 또는 열 기반 엔진)은 완전히 사용 설정되기 전에 데이터베이스 전체의 주요 압축을 사용합니다. 기본적으로 주요 압축은 7일 기간 동안 모든 테이블에서 자동으로 발생합니다. 즉, 새로운 기능을 완전히 사용할 수 있게 되기까지 최대 7일이 걸릴 수 있습니다. 새 기능을 즉시 사용할 수 있도록 하려면 주요 압축을 수동으로 트리거하면 됩니다.

압축 프로세스는 장기 실행 작업 (LRO)입니다.

가격 책정

주 압축을 트리거하면 Spanner 인스턴스의 컴퓨팅 용량이 일시적으로 증가합니다. 이로 인해 비용이 증가할 수 있습니다.

성능

주요 압축은 백그라운드 작업으로 실행됩니다. 하지만 인스턴스의 CPU 사용량이 지속적으로 많은 경우 압축 워크로드가 다른 중요한 작업을 방해할 수 있습니다. 이러한 경우 압축 중에 안정적인 성능을 보장하기 위해 인스턴스를 일시적으로 확장할 수 있습니다.

주 압축 수동 트리거

Google Cloud 콘솔

  1. Google Cloud 콘솔을 열고 인스턴스를 선택합니다.

    Spanner 인스턴스로 이동

  2. 데이터베이스를 선택합니다.

  3. 탐색 메뉴에서 Spanner 스튜디오를 클릭합니다.

  4. 새 SQL 편집기 탭 또는 새 탭을 클릭하여 새 탭을 엽니다.

  5. 다음 명령어를 호출하여 압축을 시작합니다.

    CALL compact_all();
    

    이 작업은 작업 목록에서 작업을 찾는 데 사용할 수 있는 장기 실행 작업 (LRO) ID를 반환합니다.

  6. 압축 작업의 진행 상황을 모니터링하려면 탐색 메뉴에서 작업을 클릭합니다.

C++

C++ 클라이언트 라이브러리를 사용하여 프로그래매틱 방식으로 압축을 트리거하려면 다음 단계를 따르세요.

void Compact(google::cloud::spanner::Client client) {
  namespace spanner = ::google::cloud::spanner;

  spanner::SqlStatement select("CALL compact_all()");
  auto rows = client.ExecuteQuery(statement);
  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를 사용하여 진행 중인 주요 압축 요청을 취소할 수도 있습니다. 자세한 내용은 장기 실행 데이터베이스 작업 취소를 참고하세요.