Manuelles Auslösen der Hauptkomprimierung in einer Spanner-Datenbank

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

Mehrere speicherbezogene Funktionen in Spanner, z. B. Tiered Storage oder die spaltenbasierte Engine, erfordern eine datenbankweite Hauptverdichtung, bevor sie vollständig aktiviert werden. Standardmäßig werden wichtige Verdichtungen automatisch über alle Tabellen hinweg über einen Zeitraum von sieben Tagen durchgeführt. Es kann also bis zu sieben Tage dauern, bis eine neue Funktion vollständig verfügbar ist. Wenn Sie neue Funktionen sofort verfügbar machen möchten, können Sie manuell eine große Komprimierung auslösen.

Der Verdichtungsprozess ist ein Vorgang mit langer Ausführungszeit.

Preise

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

Leistung

Größere Verdichtungen werden als Hintergrundvorgänge ausgeführt. Wenn Ihre Instanz jedoch eine konstant hohe CPU-Auslastung aufweist, kann die Verdichtungsarbeitslast andere kritische Vorgänge beeinträchtigen. In solchen Fällen können Sie die Instanz vorübergehend hochskalieren, um während der Komprimierung eine stabile Leistung zu gewährleisten.

Manuelle Auslösung einer großen Komprimierung

Google Cloud Console

  1. Öffnen Sie die Google Cloud -Konsole 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. Rufen Sie den folgenden Befehl auf, um die Verdichtung zu starten:

    CALL 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 Verdichtungsvorgangs 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 lange laufenden Datenbankvorgangs prüfen. Sie können die laufende Anfrage für die Hauptverdichtung auch mit der LRO-ID abbrechen. Weitere Informationen finden Sie unter Instanzvorgang mit langer Ausführungszeit abbrechen.