Manuelles Auslösen der Hauptkomprimierung in einer Spanner-Datenbank

In diesem Dokument wird beschrieben, wie Sie eine Hauptkomprimierung in einer Spanner-Datenbank manuell auslösen.

Mehrere speicherbezogene Funktionen in Spanner, z. B. abgestufter Speicher oder die spaltenorientierte Engine, erfordern eine datenbankweite Hauptkomprimierung, bevor sie vollständig aktiviert werden. Standardmäßig werden Hauptkomprimierungen automatisch über alle Tabellen hinweg in Zeiträumen von sieben Tagen ausgeführt. Das bedeutet, dass Sie möglicherweise bis zu sieben Tage warten müssen, bis eine neue Funktion vollständig verfügbar ist. Damit neue Funktionen sofort verfügbar sind, können Sie eine Hauptkomprimierung manuell auslösen.

Der Komprimierungsvorgang ist ein Vorgang mit langer Ausführungszeit (Long-Running Operation, LRO).

Preise

Wenn Sie eine Hauptkomprimierung manuell auslösen, erhöht sich die CPU-Auslastung in Ihrer Spanner Instanz vorübergehend. Wenn zusätzliche Rechenkapazität erforderlich ist, um diese Erhöhung der CPU-Auslastung auszugleichen, steigen die Kosten.

Leistung

Hauptkomprimierungen werden als Hintergrundvorgänge ausgeführt. Wenn die CPU-Auslastung Ihrer Instanz jedoch konstant hoch ist, kann die Komprimierungsarbeitslast andere kritische Vorgänge beeinträchtigen. In solchen Fällen können Sie die Instanz vorübergehend hochskalieren, um eine stabile Leistung während der Komprimierung zu gewährleisten.

Hauptkomprimierung manuell auslösen

Google Cloud Console

  1. Öffnen Sie die Google Cloud Console und wählen Sie Ihre Instanz aus.

    Zur Spanner-Instanz

  2. Wählen Sie eine Datenbank aus.

  3. Klicken Sie im Navigationsmenü auf Spanner Studio.

  4. Öffnen Sie einen neuen Tab, indem Sie auf Neuer SQL-Editor-Tab oder Neuer Tab klicken.

  5. Führen Sie je nach Datenbankdialekt einen der folgenden Befehle aus, um die Komprimierung zu starten:

    GoogleSQL

    CALL compact_all();
    

    PostgreSQL

    CALL spanner.compact_all();
    

    Dieser Vorgang gibt eine ID für einen Vorgang mit langer Ausführungszeit zurück, mit der Sie den Vorgang in der Liste Vorgänge finden können.

  6. Klicken Sie im Navigationsmenü auf Vorgänge , um den Fortschritt des Komprimierungsvorgangs zu verfolgen.

C++

So lösen Sie Komprimierungen programmatisch mit der C++-Clientbibliothek aus:

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";
  }
}

Sie können den Fortschritt eines Vorgangs mit langer Ausführungszeit für die Datenbank prüfen. Sie können die laufende Hauptkomprimierungsanfrage auch mit der LRO-ID abbrechen. Weitere Informationen finden Sie unter Vorgang mit langer Ausführungszeit für die Datenbank abbrechen.