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. der Stufenspeicher oder die Spaltenspeicher-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 durchgefü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

Durch das Auslösen einer Hauptkomprimierung wird die Rechenkapazität der Spanner-Instanz vorübergehend erhöht. Dies kann zu höheren Kosten führen.

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.

    Spanner-Instanz aufrufen

  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. Rufen Sie den folgenden Befehl auf, um die Komprimierung zu starten:

    CALL compact_all();
    

    Dieser Vorgang gibt eine Vorgangs-ID 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()");
  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";
  }
}

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 Vorgangs-ID mit langer Ausführungszeit abbrechen. Weitere Informationen finden Sie unter Vorgang mit langer Ausführungszeit für die Datenbank abbrechen.