Spaltenbasierte Engine in AlloyDB Omni konfigurieren

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie die spaltenbasierte Engine für einen AlloyDB Omni-Datenbankcluster aktivieren oder deaktivieren. Außerdem wird beschrieben, wie Sie eine geeignete Anfangsgröße für den Spaltenspeicher konfigurieren.

Eine konzeptionelle Übersicht über die spaltenbasierte Engine von AlloyDB finden Sie unter Übersicht über die spaltenbasierte Engine von AlloyDB Omni.

Spaltenbasierte Engine aktivieren

Wenn Sie die spaltenorientierte Engine für eine Instanz verwenden möchten, setzen Sie das Flag google_columnar_engine.enabled der Instanz auf on.

Kubernetes

Wenn Sie das Flag google_columnar_engine.enabled auf on setzen möchten, ändern Sie das Manifest des Datenbankclusters so, dass dem Abschnitt primarySpec das Attribut parameters hinzugefügt wird:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      databaseVersion: "16.8.0"
      primarySpec:
        parameters:
          google_columnar_engine.enabled: "on"

Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.

Größe des Spaltenspeichers konfigurieren

Wenn die spaltenbasierte Engine für eine Instanz aktiviert ist, weist AlloyDB Omni einen Teil des Instanzarbeitsspeichers zum Speichern der spaltenbasierten Daten zu. Wenn Sie Ihrem Spaltenspeicher Hochgeschwindigkeits-RAM zuweisen, kann AlloyDB Omni so schnell wie möglich auf die spaltenbasierten Daten zugreifen.

Arbeitsspeicher und Speichercache bilden zusammen die Gesamtkapazität der spaltenbasierten Engine.

Arbeitsspeicher konfigurieren

Sie können die Zuweisung mit dem Flag google_columnar_engine.memory_size_in_mb auf eine feste Größe festlegen.

Kubernetes

Wenn Sie das Flag google_columnar_engine.memory_size_in_mb festlegen möchten, ändern Sie das Manifest Ihres Datenbankclusters so, dass dem Abschnitt primarySpec das Attribut parameters hinzugefügt wird:

    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      databaseVersion: "16.8.0"
      primarySpec:
        parameters:
          google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.
  • COLUMN_MEMORY_SIZE: Die neue Größe des Spaltenspeichers in Megabyte, z. B. 256.

Speichercache konfigurieren

Kubernetes

Wenn Sie den Speichercache für Ihre Datenbank aktivieren möchten, ändern Sie das Manifest des Datenbankclusters so, dass dem Abschnitt features des Abschnitts primarySpec das Attribut columnarSpillToDisk hinzugefügt wird:

apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
  name: CLUSTER_NAME
spec:
  databaseVersion: "16.8.0"
  primarySpec:
    features:
      columnarSpillToDisk:
        cacheSize: STORAGE_CACHE_SIZE
      ultraFastCache:
        cacheSize: ULTRAFAST_CACHE_SIZE
        genericVolume:
          storageClass: "STORAGE_CLASS_NAME"
...

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.
  • STORAGE_CACHE_SIZE: die Größe des Spaltenspeichercaches, z. B. 5Gi. Wenn Sie keinen Wert für dieses Feld angeben, werden standardmäßig 5% des Festplatten-Cache der Spalten-Engine zugewiesen.
  • ULTRAFAST_CACHE_SIZE: die Größe des Cache, z. B. 100Gi. Es muss größer als shared_buffers sein. Dieses Feld ist optional. Wenn Sie den Wert dieses Felds nicht angeben, verwendet AlloyDB Omni den gesamten verbleibenden Speicherplatz auf der Festplatte. Dies gilt sowohl für AlloyDB Omni in einem Container als auch in einem Kubernetes-Cluster. Weitere Informationen zu Maßeinheiten finden Sie unter Arbeitsspeicherressourceneinheiten.
  • STORAGE_CLASS_NAME: Der Name der Speicherklasse des ultraschnellen Cache-Volumes, z. B. local-storage.

Vektorbasierten Join aktivieren

Die spaltenbasierte Engine verfügt über eine Funktion für vektorisierte Joins, mit der die Leistung von Joins verbessert werden kann, indem die vektorisierte Verarbeitung auf entsprechende Abfragen angewendet wird.

Nachdem Sie den vektorisierten Join aktiviert haben, kann der AlloyDB-Abfrageplaner den vektorisierten Join-Operator anstelle des Standard-PostgreSQL-Hash-Join-Operators anwenden. Der Planer trifft diese Entscheidung, indem er die Kosten für die Ausführung der Abfrage mit jeder Methode vergleicht.

Wenn Sie den vektorisierten Join für eine Instanz aktivieren möchten, setzen Sie das Flag google_columnar_engine.enable_vectorized_join der Instanz auf on.

Führen Sie den PostgreSQL-Befehl ALTER SYSTEM aus, um dieses Flag für eine Instanz festzulegen:

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

In AlloyDB Omni wird standardmäßig ein Thread für die Funktion für vektorisierte Joins zugewiesen. Sie können die Anzahl der für diese Funktion verfügbaren Threads erhöhen, indem Sie das Flag google_columnar_engine.vectorized_join_threads auf einen größeren Wert setzen. Der Höchstwert ist cpu_count * 2.

Spaltenbasierte Engine manuell aktualisieren

Wenn die spaltenbasierte Engine aktiviert ist, wird der Spaltenspeicher standardmäßig im Hintergrund aktualisiert.

Führen Sie die folgende SQL-Abfrage aus, um die Spalten-Engine manuell zu aktualisieren:

SELECT google_columnar_engine_refresh(relation =>'TABLE_NAME');

Ersetzen Sie TABLE_NAME durch den Namen der Tabelle oder materialisierten Ansicht, die Sie manuell aktualisieren möchten.

Spaltenbasierte Engine deaktivieren

Wenn Sie die Columbar-Engine für eine Instanz deaktivieren möchten, setzen Sie das Flag google_columnar_engine.enabled auf off.

Kubernetes

Wenn Sie das Flag google_columnar_engine.enabled auf off setzen möchten, ändern Sie das Manifest des Datenbankclusters so, dass dem Abschnitt primarySpec das Attribut parameters hinzugefügt wird:

  apiVersion: alloydbomni.dbadmin.goog/v1
  kind: DBCluster
  metadata:
    name: CLUSTER_NAME
  spec:
    databaseVersion: "16.8.0"
    primarySpec:
      parameters:
        google_columnar_engine.enabled: "off"

Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.

Nächste Schritte