Inhalte von Tabellenspeichern manuell verwalten

Auf dieser Seite wird beschrieben, wie Sie den Inhalt des Spaltenspeichers der spaltenorientierten Engine verwalten, indem Sie Spalten manuell hinzufügen und entfernen.

Je nach Arbeitslast können Sie dem Speicher manuell Spalten hinzufügen oder einige oder alle Spalten einer Tabelle oder einer materialisierten Ansicht aus dem Speicher entfernen. Bei der Abfragebewertung werden die gespeicherten spaltenorientierten Daten automatisch verwendet, um Abfragen zu beantworten.

Berücksichtigen Sie bei der Auswahl der Tabellen, materialisierten Ansichten und Spalten, die dem Tabellenspeicher hinzugefügt werden sollen, sowohl die Größe des Tabellenspeichers als auch die Form der Arbeitslast. Gute Kandidaten für die Auswahl sind große Tabellen oder Ansichten, die häufig gescannt werden. Ermitteln Sie in diesen Tabellen oder Ansichten alle großen nicht eindeutigen Indexe, die von der OLAP-Arbeitslast verwendet werden. Sie können die Spalten dieser Indexe dem Tabellenspeicher hinzufügen und die Indexe gegebenenfalls löschen, um die mit ihrer Wartung auf der primären Instanz verbundenen Leistungseinbußen zu vermeiden.

Sie haben folgende Möglichkeiten, den Inhalt des Spaltenspeichers der spaltenorientierten Engine zu verwalten:

Unter Welche Daten können dem Tabellenspeicher hinzugefügt werden? finden Sie Informationen zu den Datentypen und Datenquellen, die Sie verwenden können, wenn Sie dem Tabellenspeicher Tabellen, Spalten und materialisierte Ansichten hinzufügen.

Hinweise

  • Sie benötigen eine der folgenden IAM-Rollen im von Ihnen verwendeten Google Cloud -Projekt:
    • roles/alloydb.admin (die vordefinierte IAM-Rolle „AlloyDB Admin“)
    • roles/owner (die einfache IAM-Rolle „Inhaber“)
    • roles/editor (einfache IAM-Rolle „Bearbeiter“)

    Wenn Sie keine dieser Rollen haben, wenden Sie sich an den Administrator Ihrer Organisation, um Zugriff anzufordern.

Inhalte des Spaltenspeichers durch Aktualisieren von Datenbank-Flags verwalten

Sie können die Inhalte des Spaltenspeichers manuell verwalten, indem Sie das google_columnar_engine.relations-Datenbankflag aktualisieren. Das Flag hat einen einzelnen Wert, der alle Datenquellen Ihres Spaltenspeichers angibt. Beim Neustart werden die in diesem Flag angegebenen Spalten automatisch in den Spaltenspeicher eingefügt.

Sie können dieses Flag zusammen mit der automatischen Spaltenformatierung verwenden. Wenn der Speicher der spaltenorientierten Engine nach dem Ausfüllen der Spalten, die Sie über das Flag google_columnar_engine.relations angeben, noch verfügbar ist, werden dem Spaltenspeicher bei der automatischen Spaltenformatierung bei Bedarf weitere Spalten hinzugefügt.

Weitere Informationen zum Festlegen der Datenbank-Flags einer Instanz mit der Google Cloud CLI oder der Google Cloud Console finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

Spalten mithilfe von Flags hinzufügen

Wenn Sie dem Spaltenspeicher Spalten hinzufügen möchten, definieren Sie das google_columnar_engine.relations-Flag einer Instanz. Legen Sie den Wert als durch Kommas getrennte Liste von Elementen fest. Jedes Element gibt eine Liste der Spalten an, die aus einer bestimmten Tabelle eingeschlossen werden sollen. Verwenden Sie dazu dieses Format:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)

Ersetzen Sie Folgendes:

  • DATABASE_NAME: die Datenbank mit den Spalten, die dem Spaltenspeicher hinzugefügt werden sollen.

  • SCHEMA_NAME: das Schema, das die Tabellen oder materialisierten Ansichten angibt, die dem Tabellenspeicher hinzugefügt werden sollen, z. B. public.

  • TABLE_NAME: Tabelle oder materialisierte Ansicht mit den Spalten, die dem Spaltenspeicher hinzugefügt werden sollen.

  • COLUMN_LIST: Eine durch Kommas getrennte Liste der Spalten, die dem Spaltenspeicher hinzugefügt werden sollen.

Wenn Sie alle Spalten einer Tabelle oder einer materialisierten Ansicht hinzufügen möchten, lassen Sie die Spaltenliste aus:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME

Weitere Informationen zum Festlegen der Datenbank-Flags für eine Instanz finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

Hinweis zur Befehlszeilensyntax

Wenn Sie das Flag google_columnar_engine.relations mit der Google Cloud CLI festlegen, müssen Sie die alternative Trennzeichensyntax verwenden, um die von Ihnen festgelegten Datenbankflags zu trennen. Das liegt daran, dass die Spaltenliste durch Kommas getrennt ist. Sie müssen also ein anderes Zeichen als Komma verwenden, wenn Sie Flags innerhalb desselben Befehlszeilenarguments angeben.

Im folgenden Beispiel wird gezeigt, wie Sie mit der gcloud CLI dem Spaltenspeicher zwei Spalten im Schema public hinzufügen. Im Beispiel wird ein separates Flag festgelegt, um die spaltenorientierte Engine zu aktivieren. Wenn Sie mit dem Befehl gcloud alloydb instance update ein Datenbankflag festlegen, müssen auch alle anderen Datenbankflags festgelegt werden, für die Sie nicht die Standardwerte verwenden möchten, auch wenn sie bereits festgelegt sind.

gcloud alloydb instances update INSTANCE_NAME \
    --database-flags=^:^\
google_columnar_engine.relations='DATABASE_NAME.public.TABLE_NAME(COLUMN_1,COLUMN_2)'\
:google_columnar_engine.enabled=on\
[:FLAG_3=VALUE_3 ...] \
    --region=REGION_ID \
    --cluster=CLUSTER_ID

Spalten mithilfe von Flags löschen

Wenn Sie Spalten aus dem Spaltenspeicher entfernen möchten, legen Sie einen neuen Wert für das im vorherigen Abschnitt beschriebene Flag google_columnar_engine.relations fest und lassen Sie die Spalten aus, die Sie entfernen möchten.

Wenn Sie alle Spalten aus dem Spaltenspeicher löschen möchten, setzen Sie das Flag google_columnar_engine.relations in Ihrer Instanz auf „0“.

Weitere Informationen zum Festlegen von Datenbank-Flags für eine Instanz finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

Inhalte von Tabellenspeichern mit SQL-Funktionen verwalten

Sie können den Inhalt des Speichers für Spalten manuell mithilfe von SQL-Funktionen verwalten.

Spalten mithilfe von SQL-Funktionen hinzufügen

Führen Sie die SQL-Funktion google_columnar_engine_add aus, um dem Tabellenspeicher Spalten hinzuzufügen.

Bei dieser Methode werden die angegebenen Spalten dem Spaltenspeicher hinzugefügt und die Spalten werden nur im verbundenen Knoten verwaltet. Die neuen Spalten bleiben im Speicher nicht nach einem Neustart der Instanz erhalten.

Mit dieser Methode wird das google_columnar_engine.relations-Datenbankflag nicht geändert. Bei der automatischen Spaltenformatierung werden keine Spalten berücksichtigt, die mit dieser SQL-Funktion hinzugefügt wurden.

psql-Client

SELECT google_columnar_engine_add(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
    Ersetzen Sie Folgendes:
  • TABLE_NAME: Ein String, der den Namen der Tabelle oder der materialisierten Ansicht enthält. Wenn sich die Tabelle oder Ansicht in einem anderen Schema als public befindet, geben Sie den Namen des Schemas, einen Punkt und den Namen der Tabelle oder Ansicht an, z. B. 'myschema.mytable'.
  • COLUMN_LIST: Ein String mit einer durch Kommas getrennten Liste der Namen der Spalten, die Sie hinzufügen möchten. Die Groß- und Kleinschreibung ist dabei zu beachten. Wenn Sie dem Tabellenspeicher alle Spalten der Tabelle oder der materialisierten Ansicht hinzufügen möchten, lassen Sie diesen Parameter weg.

Spalten mithilfe von SQL-Funktionen löschen

Führen Sie die SQL-Funktion google_columnar_engine_drop so aus:

psql-Client

SELECT google_columnar_engine_drop(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
Ersetzen Sie Folgendes:
  • TABLE_NAME: Ein String, der den Namen der Tabelle oder der materialisierten Ansicht enthält. Wenn sich die Tabelle oder Ansicht in einem anderen Schema als public befindet, geben Sie den Namen des Schemas, einen Punkt und den Namen der Tabelle oder Ansicht an, z. B. 'myschema.mytable'.
  • COLUMN_LIST: Ein String mit einer durch Kommas getrennten Liste der Namen der Spalten, die Sie hinzufügen möchten. Die Groß- und Kleinschreibung ist dabei zu beachten. Wenn Sie dem Tabellenspeicher alle Spalten der Tabelle oder der materialisierten Ansicht hinzufügen möchten, lassen Sie diesen Parameter weg.

Mit der Funktion google_columnar_engine_drop können Sie hinzugefügte Spalten entfernen, indem Sie das google_columnar_engine.relations-Datenbankflag bearbeiten. Wenn Sie dies tun, werden diese Spalten jedoch beim Neustart der Instanz wieder dem spaltenbasierten Speicher hinzugefügt.