Automatic Clustering

Automatic Clustering ist ein Snowflake-Service, der bei Bedarf das gesamte Reclustering von Clustertabellen nahtlos und kontinuierlich verwaltet.

Beachten Sie, dass nach der Definition einer Clustertabelle das Reclustering nicht unbedingt sofort gestartet wird. Snowflake führt das Reclustering einer geclusterten Tabelle nur durch, wenn die Operation Vorteile bringt.

Bemerkung

Wenn in Ihrem Konto noch manuelles Reclustering verfügbar ist, ist Automatic Clustering für Ihr Konto möglicherweise noch nicht aktiviert. Weitere Details dazu finden Sie unter Manuelles Reclustering – Veraltet.

Unter diesem Thema:

Vorteile von Automatic Clustering

Wartungsfreundlichkeit

Durch Automatic Clustering müssen keine der folgenden Aufgaben ausgeführt werden:

  • Überwachen des Status von geclusterten Tabellen.

    Wenn DML für diese Tabellen ausgeführt wird, überwacht und bewertet Snowflake stattdessen die Tabellen, um festzustellen, ob sie von einem Reclustering profitieren würden, und führt das Reclustering bei Bedarf automatisch aus.

  • Festlegen von Warehouses in Ihrem Konto, die für das Reclustering verwendet werden sollen.

    Snowflake führt im Hintergrund ein automatisches Reclustering durch, und Sie müssen dafür kein Warehouse angeben.

Sie müssen lediglich einen Gruppierungsschlüssel für jede Tabelle definieren (falls geeignet), und Snowflake verwaltet alle zukünftigen Wartungsarbeiten.

Volle Kontrolle

Sie können Automatic Clustering für eine bestimmte Tabelle jederzeit anhalten und fortsetzen mit ALTER TABLE … SUSPEND / RESUME RECLUSTER. Während Automatic Clustering für eine Tabelle angehalten ist, erfolgt für die Tabelle unabhängig von ihrem Clustering-Status kein automatisches Reclustering, und es entstehen daher keine damit verbundenen Credit-Gebühren.

Sie können auch den Gruppierungsschlüssel einer Clustertabelle löschen, wodurch zukünftiges Reclustering in der Tabelle verhindert wird.

Keine Blockierung von DML

Automatic Clustering ist transparent und blockiert keine DML-Anweisungen, die auf Tabellen ausgeführt werden, die gerade einem Reclustering unterzogen werden.

Optimale Effizienz

Mit Automatic Clustering verwaltet Snowflake intern den Status von gruppierten Tabellen sowie die Ressourcen (Server, Speicher usw.), die für alle automatisierten Clustering-Operationen verwendet werden. Dies ermöglicht Snowflake, Ressourcen dynamisch nach Bedarf zuzuweisen, was ein effizienteres und effektiveres Reclustering ermöglicht.

Mit Automatic Clustering wird auch kein unnötiges Reclustering durchgeführt. Reclustering wird nur ausgelöst, wenn die Tabelle von der Operation profitieren würde.

Credit-Nutzung und Warehouse für Automatic Clustering

Beim Automatic Clustering werden zwar Snowflake-Credits verbraucht, Sie müssen aber kein virtuelles Warehouse bereitstellen. Stattdessen sorgt Snowflake intern für eine effiziente Ressourcennutzung beim Reclustering der Tabellen.

Ihr Konto wird nur für die tatsächlichen Credits in Rechnung gestellt, die durch automatische Clustering-Operationen für Ihre geclusterten Tabellen verbraucht werden.

Wichtig

Nach dem Aktivieren oder Fortsetzen von Automatic Clustering für eine gruppierte Tabelle kann es zu Reclustering-Aktivitäten (und entsprechenden Credit-Gebühren) kommen, wenn Snowflake die Tabelle nach einer längeren Zeit ohne Reclustering in einen optimal geclusterten Zustand bringen möchte. Sobald die Tabelle optimal geclustert ist, wird sich die Reclustering-Aktivität auf normalem Niveau einpendeln.

Ebenso kann das Definieren eines Gruppierungsschlüssels in einer vorhandenen Tabelle oder das Ändern des Gruppierungsschlüssels in einer geclusterten Tabelle das Reclustering und damit Credit-Gebühren auslösen.

Um unerwartete Credit-Gebühren zu vermeiden, empfehlen wir, mit einer oder zwei ausgewählten Tabellen zu beginnen und die Credit-Gebühren zu beobachten, die sich aus dem Erhalt des Clustering-Zustands der Tabellen bei Ausführung von DML ergeben. Auf diese Weise können Sie eine Ausgangsbasis für die Anzahl der durch Reclustering verbrauchten Credits bestimmen.

Aktivieren von Automatic Clustering für eine Tabelle

Es sind keine Aufgaben erforderlich, um Automatic Clustering für eine Tabelle zu aktivieren. Sie definieren einfach einen Gruppierungsschlüssel für die Tabelle.

Tipp

Berücksichtigen Sie die folgenden Bedingungen, bevor Sie einen Gruppierungsschlüssel für eine Tabelle definieren, da dies zu Reclustering-Aktivitäten (und damit zu entsprechenden Credit-Kosten) führt:

In diesem Fall empfehlen wir, mit einer oder zwei ausgewählten Tabellen zu beginnen und die Auswirkungen von Automatic Clustering auf diese Tabellen zu bewerten. Wenn Sie mit der Reclustering-Funktion von Automatic Clustering vertraut sind, können Sie für Ihre anderen Tabellen Gruppierungsschlüssel definieren.

Weitere Informationen zum Auswählen optimaler Gruppierungsschlüssel finden Sie unter Strategien zur Auswahl von Gruppierungsschlüsseln.

Anzeigen des Automatic Clustering-Status für eine Tabelle

Sie können SQL verwenden, um anzuzeigen, ob Automatic Clustering für eine Tabelle aktiviert ist:

Die Spalte AUTO_CLUSTERING_ON in der Ausgabe zeigt den Status von Automatic Clustering für jede Tabelle an, anhand dessen bestimmt wird, ob Automatic Clustering für eine bestimmte Tabelle angehalten oder fortgesetzt werden soll.

Darüber hinaus werden in der Spalte CLUSTER_BY (SHOW TABLES) oder CLUSTERING_KEY (TABLES-Ansicht) die Spalten angezeigt, die als Gruppierungsschlüssel für jede Tabelle definiert sind.

Bemerkung

Der Automatic Clustering-Status wird in der TABLES-Ansicht (der Account Usage freigegebenen Datenbank) noch nicht angezeigt. Es wird in einer zukünftigen Version hinzugefügt.

Anhalten von Automatic Clustering für eine Tabelle

Verwenden Sie den Befehl ALTER TABLE mit einer SUSPEND RECLUSTER-Klausel, um das automatische Clustering für eine Tabelle zu unterbrechen. Beispiel:

ALTER TABLE t1 SUSPEND RECLUSTER;

SHOW TABLES LIKE 't1';

+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
|           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes |  owner   | retention_time | automatic_clustering |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
| Thu, 12 Apr 2018 13:29:01 -0700 | T1   | TESTDB        | MY_SCHEMA   | TABLE |         | LINEAR(C1) | 0    | 0     | SYSADMIN | 1              | OFF                  |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+

Fortsetzen von Automatic Clustering für eine Tabelle

Verwenden Sie den Befehl ALTER TABLE mit einer RESUME RECLUSTER-Klausel, um Automatic Clustering für eine gruppierte Tabelle fortzusetzen. Beispiel:

ALTER TABLE t1 RESUME RECLUSTER;

SHOW TABLES LIKE 't1';

+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
|           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes |  owner   | retention_time | automatic_clustering |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+
| Thu, 12 Apr 2018 13:29:01 -0700 | T1   | TESTDB        | MY_SCHEMA   | TABLE |         | LINEAR(C1) | 0    | 0     | SYSADMIN | 1              | ON                   |
+---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+----------+----------------+----------------------+

Tipp

Bevor Sie Automatic Clustering für eine geclusterte Tabelle fortsetzen, sollten Sie folgende Bedingungen berücksichtigen, die zu einem Reclustering (und entsprechenden Credit-Gebühren) führen können:

  • Die Tabelle ist nicht optimal geclustert (z. B. wurden auf der Tabelle seit dem letzten Reclustering signifikante DML-Aktivitäten ausgeführt).

  • Der Gruppierungsschlüssel der Tabelle wurde geändert.

Weitere Details dazu finden Sie unter Mikropartitionen und Daten-Clustering und Gruppierungsschlüssel und geclusterte Tabellen.

Anzeigen der Automatic Clustering-Abrechnung

Benutzer mit der Rolle ACCOUNTADMIN können die Abrechnung für Automatic Clustering entweder über die Weboberfläche oder mit SQL anzeigen:

Weboberfläche

Klicken Sie auf Account Account tab » Billing & Usage.

Die Abrechnung für Automatic Clustering wird als ein separates von Snowflake bereitgestelltes Warehouse mit dem Namen Snowflake logo in blue (no text) AUTOMATIC_CLUSTERING angezeigt.

SQL

Führen Sie eine Abfrage auf einer der folgenden Optionen durch:

Bemerkung

Ressourcenmonitore bieten Kontrolle über die Nutzung von Credits für virtuelle Warehouses. Sie können sie jedoch nicht zur Kontrolle der Credit-Nutzung für die von Snowflake bereitgestellten Warehouses, einschließlich des Snowflake logo in blue (no text) AUTOMATIC_CLUSTERING-Warehouse, verwenden.