Interaktive Tabellen und interaktive Warehouses in Snowflake

In diesem Thema werden interaktive Tabellen und interaktive Warehouses in Snowflake vorgestellt. Sie bieten eine Abfrageleistung mit niedriger Latenz für interaktive Workloads mit hoher Parallelität.

Bemerkung

Interaktive Tabellen unterstützen jetzt Verknüpfungsabfragen.

Überblick über interaktive Warehouses und interaktive Tabellen

Im Folgenden finden Sie die neuen Arten von Snowflake-Objekten, die Sie mit diesem Feature verwenden können. Sie können eine bessere Abfrageleistung erwarten, wenn Sie Abfragen in interaktiven Tabellen mit interaktiven Warehouses ausführen.

Interaktives Warehouse

Ein neuer Typ von Warehouse, der für interaktive Workloads mit niedriger Latenz optimiert ist.

Ein interaktives Warehouse stimmt die Snowflake-Engine speziell für interaktive Workloads mit niedriger Latenz ab. Es nutzt zusätzliche Metadaten und Indexinformationen in den zugrunde liegenden interaktiven Tabellen, um Abfragen zu beschleunigen. Dieser Typ von Warehouse ist für eine kontinuierliche Ausführung optimiert, die eine große Anzahl gleichzeitiger Abfragen bedient. Alle interaktiven Warehouses laufen auf der Hardware der neuesten Generation.

Interaktive Tabelle

Ein neuer Typ von Snowflake-Tabelle, der auf interaktive Abfragen mit niedriger Latenz spezialisiert ist.

Sie erhalten die besten Leistungssteigerungen, wenn Sie diese Tabellen über interaktive Warehouses abfragen. Interaktive Tabellen verfügen über verschiedene Methoden für die Datenaufnahme und unterstützen eine begrenzte Anzahl von SQL-Anweisungen und Abfrageoperatoren als Standard-Snowflake-Tabellen.

Abbildung, die zeigt, wie Benutzende mit interaktiven Warehouses und interaktiven Tabellen arbeiten.

Anwendungsfälle für interaktive Tabellen

Die interaktiven Snowflake-Tabellen sind für schnelle, einfache Abfragen optimiert, wenn Sie konsistente Antworten mit niedriger Latenz benötigen. Interaktive Warehouses stellen die erforderlichen Computeressourcen zur Verfügung, um diese Abfragen effizient zu bedienen. Gemeinsam ermöglichen sie Anwendungsfälle wie Echtzeit-Dashboards, datengestützte APIs und die Bereitstellung von Workloads mit hoher Parallelität.

Die einfachen Abfragen, die am besten mit interaktiven Tabellen funktionieren, sind in der Regel SELECT-Anweisungen mit selektiven WHERE-Klauseln, optional einschließlich einer GROUP BY-Klausel für einige Dimensionen. Vermeiden Sie Abfragen mit großen Verknüpfungen und großen Unterabfragen. Die Leistung von Abfragen, die andere Features verwenden, wie z. B. Fensterfunktionen, hängt in hohem Maße von den Formen der Daten ab, die Sie abfragen.

Regionsverfügbarkeit

Interaktive Tabellen und interaktive Warehouses sind in den folgenden Amazon Web Services (AWS)-Regionen verfügbar. Weitere Informationen zu Snowflake-Regionen finden Sie unter Supported cloud regions.

  • us-east-1 – US East (N. Virginia)

  • us-west-2 – US West (Oregon)

  • us-east-2 - US East (Ohio)

  • ca-central-1 - Canada (Central)

  • ap-northeast-1 – Asien-Pazifik (Tokio)

  • ap-southeast-2 – Asien-Pazifik (Sydney)

  • eu-central-1 – EU (Frankfurt)

  • eu-west-1 – EU (Irland)

  • eu-west-2 - Europe (London)

Einschränkungen bei interaktiven Warehouses und interaktiven Tabellen

The following limitations apply to interactive warehouses and interactive tables. Some limitations are due to architectural differences between interactive tables and standard Snowflake tables; those limitations are intended to be permanent.

Einschränkungen bei interaktiven Warehouses

  • Snowflake interactive warehouses don’t support long-running queries. The query timeout for SELECT commands defaults to five seconds. After five seconds, the query is canceled. You can reduce the query timeout value, but you can’t increase it. Other kinds of commands, such as SHOW and INSERT OVERWRITE, aren’t subject to the five-second timeout interval.

    If a query consistently times out, that’s a signal that it might not be suitable for use with interactive warehouses. Otherwise, you need to apply some of the performance tuning techniques to reduce the time to less than five seconds.

  • An interactive warehouse is always up and running by design. It doesn’t automatically suspend when idle. Although you can manually suspend an interactive warehouse, expect significant query latency when you resume the warehouse.

  • You can’t query standard Snowflake tables from an interactive warehouse. To query both standard tables and interactive tables in the same session, run USE WAREHOUSE to switch to the appropriate warehouse type depending on the type of table.

  • If an interactive warehouse is a multi-cluster warehouse, it doesn’t auto-scale. In a multi-cluster interactive warehouse, always keep MIN_CLUSTER_COUNT and MAX_CLUSTER_COUNT set to the same value.

  • You can’t run CALL commands to call stored procedures in an interactive warehouse.

  • You can’t use the ->> pipe operator. That operator uses stored procedures behind the scenes.

  • Interactive warehouses currently don’t support replication. They aren’t included in failover groups and replication groups.

Einschränkungen bei interaktiven Tabellen

  • Interaktive Tabellen unterstützen die folgenden Features nicht:

    • Data manipulation language (DML) commands such as UPDATE and DELETE. The only DML that you can perform is INSERT OVERWRITE.

    • Replication. They aren’t included in failover groups and replication groups.

    • Fail-safe. Dieser Datenwiederherstellungsmechanismus ist für interaktive Tabellen nicht verfügbar. Sie können Time Travel weiterhin mit interaktiven Tabellen verwenden.

  • Query insights are currently not collected or available for queries executing on interactive tables.

  • Interaktive Tabellen unterstützen derzeit nicht den Suchoptimierungsdienst.

  • Sie können die folgenden Operationen nicht ausführen:

    • Use an interactive table as the source for a materialized view.

    • Modify properties of an interactive table by using ALTER TABLE clauses such as ADD COLUMN or REMOVE COLUMN. ALTER TABLE operations that you can perform include:

    • Use streams with an interactive table.

    • Create a dynamic table with an interactive table as a base table.

    • Use the RESAMPLE clause for queries on an interactive table.

    • Legen Sie die Aufbewahrungsfrist für Time Travel mit CREATE INTERACTIVE TABLE oder ALTER TABLE fest. Interaktive Tabellen erben den DATA_RETENTION_TIME_IN_DAYS-Wert aus dem übergeordneten Schema, der Datenbank oder dem übergeordneten Konto.

Erste Schritte mit interaktiven Tabellen

Um mit interaktiven Tabellen zu beginnen, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie eine interaktive Tabelle unter Verwendung eines Standard-Warehouses. Weitere Informationen dazu finden Sie unter Erstellen einer interaktiven Tabelle.

  2. Erstellen Sie ein interaktives Warehouse. Weitere Informationen dazu finden Sie unter Erstellen eines interaktiven Warehouses.

  3. Setzen Sie das interaktive Warehouse fort. Weitere Informationen dazu finden Sie unter Anhalten und Fortsetzen eines Warehouses.

  4. Fügen Sie die interaktive Tabelle zum interaktiven Warehouse hinzu. Weitere Informationen dazu finden Sie unter Hinzufügen einer interaktiven Tabelle zu einem interaktiven Warehouse.

  5. Starten Sie das Abfragen der interaktiven Tabelle über das interaktive Warehouse. Weitere Informationen dazu finden Sie unter Abfragen einer interaktiven Tabelle.

Arbeiten mit interaktiven Tabellen und interaktiven Warehouses

Die folgenden Prozeduren erklären, wie Sie alle erforderlichen Objekte erstellen und verwalten, um Abfragen über interaktive Tabellen auszuführen. Wenn Sie dieses Feature zum ersten Mal testen, führen Sie diese Prozeduren in der folgenden Reihenfolge durch.

Erstellen einer interaktiven Tabelle

Die Tabellenerstellung erfolgt nach der standardmäßigen Syntax CTAS (CREATE TABLE AS SELECT) mit dem zusätzlichen INTERACTIVE-Schlüsselwort, das den Tabellentyp definiert.

Der CREATE INTERACTIVE TABLE-Befehl erfordert auch eine CLUSTER BY-Klausel. Geben Sie eine oder mehrere Spalten in der CLUSTER BY-Klausel an, die mit den WHERE-Klauseln in Ihren zeitkritischen Abfragen übereinstimmt. Die Spalten, die Sie in der CLUSTER BY-Klausel angeben, können die Leistung von Abfragen in der interaktiven Tabelle erheblich beeinträchtigen. Wählen Sie daher Clustering-Spalten sorgfältig aus. Weitere Informationen zum Auswählen der optimalen Clustering-Spalten finden Sie unter Gruppierungsschlüssel und geclusterte Tabellen.

Bemerkung

Sie führen den CREATE INTERACTIVE TABLE-Befehl mit einem Standard-Warehouse aus. Sie verwenden das interaktive Warehouse nur in späteren Schritten, um die interaktive Tabelle abzufragen.

Der folgende Befehl erstellt eine interaktive Tabelle, die dieselben Spalten und Daten wie eine Standardtabelle enthält. Die CLUSTER BY-Klausel bezieht sich auf eine Spalte mit dem Namen id aus der Quelltabelle.

CREATE INTERACTIVE TABLE
  IF NOT EXISTS orders
  CLUSTER BY (id)
AS
  SELECT * FROM demoSource;
Copy

Festlegen der automatischen Aktualisierung für eine interaktive Tabelle

Damit eine interaktive Tabelle automatisch mit Daten aus einer anderen Tabelle aktualisiert wird, geben Sie die TARGET_LAG-Klausel mit einem Intervall an. Wenn Sie TARGET_LAG angeben, müssen Sie auch die WAREHOUSE-Klausel und den Namen eines Standard-Warehouses angeben, das Snowflake für das Ausführen von Aktualisierungsoperationen verwendet.

Mit dem Zeitintervall für die TARGET_LAG-Klausel können Sie die maximale Verzögerung in Form einer bestimmten Anzahl von Sekunden, Minuten, Stunden oder Tagen angeben:

TARGET_LAG = '<num> { seconds | minutes | hours | days }'
Copy

Wenn Sie keine Einheit angeben, stellt die Zahl Sekunden dar. Der Mindestwert beträgt 60 Sekunden oder 1 Minute.

Zum Beispiel definiert die folgende CREATE INTERACTIVE TABLE-Anweisung eine dynamische interaktive Tabelle, die nicht mehr als 20 Minuten hinter einer angegebenen Quelltabelle zurückbleibt. Darüber hinaus wird ein Standard-Warehouse namens my_standard_warehouse verwendet, um Aktualisierungsoperationen auszuführen:

CREATE INTERACTIVE TABLE my_dynamic_interactive_table
  CLUSTER BY (c1, c2)
  TARGET_LAG = '20 minutes'
  WAREHOUSE = my_standard_warehouse
AS SELECT c1, SUM(c2) FROM my_source_table GROUP BY c1;
Copy

Weitere Informationen zur Auswahl einer geeigneten Verzögerungszeit, die Kosten und Aktualität der Daten in Einklang bringt, finden Sie unter Optimale Zielverzögerung einer dynamischen Tabelle bestimmen. Für interaktive Tabellen gelten ähnliche Hinweise wie für dynamische Tabellen.

Erstellen eines interaktiven Warehouses

Nachdem Sie eine interaktive Tabelle erstellt haben, erfordert die Abfrage dieser Tabelle mit optimaler Leistung ein interaktives Warehouse. Geben Sie das Schlüsselwort INTERACTIVE im Befehl CREATE WAREHOUSE oder CREATE OR REPLACE WAREHOUSE an.

Optional können Sie auch eine TABLES-Klausel mit einer durch Kommas getrennten Liste der Namen interaktiver Tabellen angeben. Wenn Sie diese Klausel verwenden, werden diese interaktiven Tabellen sofort mit dem interaktiven Warehouse verknüpft.

Der folgende Befehl erstellt ein interaktives Warehouse, das mit der interaktiven Tabelle namens orders verbunden ist. In diesem Fall können Sie sofort einen USE WAREHOUSE-Befehl für das interaktive Warehouse ausführen und mit der Ausführung von Abfragen für die interaktive Tabelle beginnen:

CREATE OR REPLACE INTERACTIVE WAREHOUSE interactive_demo
  TABLES (orders)
  WAREHOUSE_SIZE = 'XSMALL';
Copy

Der folgende Befehl erstellt ein interaktives Warehouse ohne zugehörige interaktive Tabellen. In diesem Fall führen Sie ALTER WAREHOUSE-Befehle aus, um interaktive Tabellen mit dem interaktiven Warehouse zu verknüpfen:

CREATE or REPLACE INTERACTIVE WAREHOUSE interactive_demo
  WAREHOUSE_SIZE = 'XSMALL';
Copy

Nachdem Sie ein interaktives Warehouse erstellt haben, bleibt dieses Warehouse standardmäßig auf unbestimmte Zeit aktiv. Anders als ein herkömmliches Warehouse bietet ein interaktives Warehouse keine Option, um es automatisch anzuhalten, wenn es eine bestimmte Zeit lang nicht genutzt wird.

Hinweise zur Leistung interaktiver Tabellen

In den folgenden Abschnitten wird erläutert, wie Sie Leistungsprobleme lösen können, die aufgrund der besonderen Eigenschaften interaktiver Tabellen und der Workloads, für die sie am besten geeignet sind, auftreten können.

Abfragen von bewährten Verfahren für interaktive Warehouses

Interaktive Warehouses sind für Abfragen mit selektiven Workloads optimiert. Das bedeutet, dass Abfragen mit guter Selektivität wesentlich mehr Leistungsverbesserungen aufweisen als andere Abfragetypen.

Erwarten Sie mehr Leistungsvorteile mit interaktiven Warehouses

Erwarten Sie nur begrenzte Leistungsvorteile mit interaktiven Warehouses

SELECT col1, col4, AVG(col_x)
  FROM my_table
  GROUP BY col1, col2;
Copy

Diese Abfrage ist sehr selektiv, da sie nur wenige Spalten benötigt. Snowflake kann nur das Laden von Spalten optimieren, die für diese eine Abfrage erforderlich sind.

SELECT * FROM my_table;
Copy

Diese Abfrage verarbeitet alle Spalten. Obwohl die Abfrage einfach ist, muss Snowflake eine große Datenmenge verarbeiten, die die Größe des Cache übersteigen kann. Selbst wenn der Inhalt der Tabelle in den Cache passt, bleibt weniger Platz für das Zwischenspeichern von Daten aus anderen Abfragen, was zu einer geringeren Parallelität führt.

SELECT col1, col2
  FROM my_table
  WHERE
    col_x IN (1,4,7,8)
    AND event_time >=
      DATEADD(hour, -1, CURRENT_TIMESTAMP());
Copy

Die Bedingungen in der WHERE-Klausel machen diese Abfrage sehr selektiv. Die IN-Klausel schränkt die Ergebnisse auf relativ wenige Elemente ein, und der Zeitvergleich schränkt die Daten weiter auf einen bestimmten Zeitraum ein.

SELECT col1, col2
  FROM my_table
  WHERE
    event_time >=
      DATEADD(day, -365, CURRENT_TIMESTAMP());
Copy

Wenn Sie nach Daten für ein ganzes Jahr fragen, wird diese Abfrage weniger selektiv. Wenn Ihr Datenset groß ist, verarbeitet diese Abfrage möglicherweise alle Zeilen der Tabelle.

Andere Komplexitäten, wie große Verknüpfungen (z. B. das Verknüpfen von zwei Faktentabellen) oder rechenintensive Ausdrücke, wie beispielsweise reguläre Ausdrücke, können aufgrund der höheren Nutzung von Computeressourcen zu einer geringeren Parallelität führen. Siehe Auswählen der Größe eines interaktiven Warehouses für Informationen zur Optimierung für diese Situationen.

Best Practices für das Datenlayout von interaktiven Tabellen

Interaktive Tabellen folgen den standardmäßigen Best Practices von Snowflake für die Leistung. Insbesondere profitieren interaktive Tabellen von einer ** gut geclusterten Tabelle** – einer Tabelle, die auf der Grundlage derselben Spalte oder derselben Spalten sortiert ist, nach denen Sie filtern. Beispiel: Wenn Ihre Abfrage häufig nach einer TIMESTAMP-Spalte wie sale_date filtert, dann ist es sinnvoll, diese Spalte beim Erstellen der interaktiven Tabelle als Gruppierungsschlüssel zu verwenden. Sie können die interaktive Tabelle zum Beispiel wie folgt erstellen:

CREATE INTERACTIVE TABLE product_sales (<column definitions>) CLUSTER BY (sale_date);
Copy

Auf diese Weise können SELECT-Abfragen, die nach sale_date filtern, schnell alle irrelevanten Daten überspringen und Ergebnisse zurückgeben. Die folgende Abfrage filtert zum Beispiel nach einem Datumsbereich, indem die sale_date-Spalte getestet wird:

SELECT ... WHERE sale_date > '2025-10-24' AND ...
Copy

Weitere Informationen zum Auswählen der optimalen Gruppierungsschlüssel finden Sie unter Gruppierungsschlüssel und geclusterte Tabellen.

Auswählen der Größe eines interaktiven Warehouses

Sobald Sie alle Ihre Abfragen und Layout-Optimierungen abgeschlossen haben, sollten Sie erwägen, Ihr Warehouse zu skalieren, um den Bedarf zu decken. Interaktive Warehouses haben einen Größenbereich von XSMALL bis 3XLARGE sowie Multi-Cluster-Warehouses.

Wir empfehlen, dass Sie zunächst die Größe Ihres Warehouses anhand der ungefähren Größe des Arbeits-Datensets in der interaktiven Tabelle anpassen. Das Arbeits-Datenset bezieht sich auf den Teil der Daten, der häufig abgefragt wird. Wenn zum Beispiel Ihre Abfragen normalerweise nur die Umsatzdaten der letzten sieben Tage abfragen, besteht das Arbeitsset aus dem Teil der interaktiven Tabelle, der diesen sieben Tagen entspricht.

Das liegt daran, dass das interaktive Warehouse Lokalspeicher-Caching verwendet. Während die Daten Ihres gesamten Datensets (Tabelle) immer zugänglich sind, führt der Zugriff auf nicht zwischengespeicherte Daten beim ersten Lesen zu einer höheren Leselatenz.

Wählen Sie eine Warehouse-Größe, die den Anforderungen Ihrer Workloads entspricht. Experimentieren Sie mit Ihren speziellen Daten und Ihrem Workload, um die optimale Größe für Ihr interaktives Warehouse zu ermitteln. Sie können ein Multi-Cluster-Warehouse erstellen, das interaktiv ist. Derzeit müssen die minimale und maximale Anzahl der Cluster jedoch gleich sein. Das heißt, das interaktive Multi-Cluster-Warehouse wird nicht automatisch skaliert.

Tipp

Für eine gute Leistung müssen Sie nicht den gesamten Arbeitssatz Ihrer Abfragen in den Cache aufnehmen. Wählen Sie eine Cachegröße, die ausreicht, um Ihre Hot Data aufzunehmen, d. h. die Daten aus den Zeilen, auf die Sie häufig zugreifen.

Wir empfehlen, mit den folgenden Warehouse-Größen zu beginnen, basierend auf der Größe des Arbeits-Datensets.

Arbeitsset

Warehouse-Größe

Weniger als 500 GB

XSMALL

500 GB bis 1 TB

SMALL

1 TB bis 2 TB

MEDIUM

2 TB bis 4 TB

LARGE

4 TB bis 8 TB

XLARGE

8 TB bis 16 TB

2XLARGE

Größer als 16 TB

3XLARGE

Behebung von Leistungsproblemen bei interaktiven Tabellen

Problem 1: Meine einzelne Abfrage dauert zu lange

Dies ist wahrscheinlich darauf zurückzuführen, dass für die Fertigstellung Ihrer Abfrage mehr Computeressourcen erforderlich sind. Es ist möglich, dass Ihre Abfrage sehr komplex verarbeitet ist und daher mehr CPUs erfordert. Zum Beispiel Abfragen mit vielen Filtern für reguläre Ausdrücke und CASE-Klauseln. Es ist auch möglich, dass Ihre Abfragen viel Speicher benötigen, z. B. Abfragen, die eine große Anzahl von COUNT(DISTINCT ...) ausführen. Um die Laufzeit einer einzelnen Abfrage zu verkürzen, sollten Sie eine größere Warehouse-Größe in Betracht ziehen. Beginnen Sie mit der oben empfohlenen Größe, und erhöhen Sie die Größe des Warehouses so lange, bis Sie mit der Latenz einer einzelnen Abfrage zufrieden sind.

Problem 2: Die Ausführung meiner Abfragen dauert plötzlich sehr lange (hohe laterale Latenz, hohe P95-Latenz).

Ein plötzlicher Anstieg der Abfragezeit ist wahrscheinlich auf ein unzureichendes Caching zurückzuführen. Jede Warehouse-Größe hat einen lokalen SDD-Cache, mit dem die zuletzt verwendeten Daten zwischengespeichert werden. Snowflake verwaltet den Cache, um nur Teile der Tabelle zu speichern, auf die häufig zugegriffen wird. Wenn Ihre Abfragen selektiv sind, kann eine Vergrößerung des Warehouses möglicherweise die Latenzzeit im generierten Warehouse verringern.

Beachten Sie auch, dass das neu gestartete Warehouse eine Weile benötigt, um den Cache aufzubereiten. Snowflake aktualisiert die neu hinzugefügten Daten proaktiv. Warten Sie beim Benchmarking eine Weile, bevor Sie das Benchmark starten, damit der Cache Zeit zum Aufbereiten hat. Die Aufbereitungsgeschwindigkeit für den Cache hängt von der Größe des Warehouses und der Tabellengröße ab. Je größer Ihre interaktive Tabelle ist, desto länger dauert es, bis Snowflake den Cache aufbereitet hat. Je größer die Größe ist, die Sie für das interaktive Warehouse angeben, desto kürzer ist die Aufbereitungszeit.

Problem 3: Meine Abfrage befindet sich in der Warteschlange oder kann die Parallelität der Abfrage nicht erfüllen

Sie können Ihr Warehouse horizontal skalieren, indem Sie die Parameter MIN_CLUSTER_COUNT und MAX_CLUSTER_COUNT einstellen. Auf diese Weise können Sie ein interaktives Multi-Cluster-Warehouse erstellen. Derzeit unterstützen interaktive Multi-Cluster-Warehouses keine automatische Skalierung. Geben Sie daher denselben Wert für die minimale und maximale Anzahl der Cluster an. Da es einige Zeit dauert, ein Warehouse aufzubereiten, ist die manuelle Skalierung in der Regel kostengünstiger für unsere Benutzenden und ermöglicht gleichzeitig eine vorhersehbare Leistung.

Hinzufügen einer interaktiven Tabelle zu einem interaktiven Warehouse

Um eine optimale Abfrageleistung für eine interaktive Tabelle zu erzielen, sollten Sie ein interaktives Warehouse verwenden.

Bevor Sie die interaktive Tabelle von einem interaktiven Warehouse aus abfragen können, müssen Sie eine einmalige Operation ausführen, um die interaktive Tabelle zum interaktiven Warehouse hinzuzufügen. Andernfalls wird der Fehler „Objekt nicht gefunden“ angezeigt, wenn Sie eine Abfrage in einer solchen Tabelle aus dem interaktiven Warehouse ausführen. Wenn Sie die interaktiven Tabellen, die mit den interaktiven Warehouses verknüpft werden sollen, nicht unter Verwendung der TABLES-Klausel in Ihrem CREATE INTERACTIVE WAREHOUSE-Befehl angegeben haben, können Sie dies später mit einem ALTER WAREHOUSE-Befehl tun.

Der folgende Befehl verknüpft die orders-Tabelle mit dem interactive_demo-Warehouse. Mit der ADD TABLES-Klausel können Sie mehrere Tabellennamen angeben, die durch Kommas getrennt sind.

ALTER WAREHOUSE interactive_demo ADD TABLES (orders);
Copy

Diese Aktion startet den Cache-Aufbereitungsprozess. Dieser Prozess kann einige Zeit in Anspruch nehmen.

Wenn die interaktive Tabelle bereits mit dem interaktiven Warehouse verknüpft ist, ist der Befehl erfolgreich, hat aber keine Auswirkungen.

Sie können eine interaktive Tabelle mit mehreren interaktiven Warehouses verknüpfen.

Entfernen einer interaktiven Tabelle aus einem interaktiven Warehouse

Sie können eine oder mehrere interaktive Tabellen von einem interaktiven Warehouse trennen, indem Sie einen ALTER WAREHOUSE-Befehl mit der DROP TABLES-Klausel ausführen.

ALTER WAREHOUSE interactive_demo DROP TABLES (orders, customers);
Copy

Bemerkung

Die interaktiven Tabellen sind nach dieser Operation immer noch vorhanden. Diese ALTER WAREHOUSE-Klausel ist nicht dasselbe wie das Ausführen des SQL-Befehls DROP TABLE.

Anhalten und Fortsetzen eines Warehouses

Der folgende Befehl setzt ein interaktives Warehouse fort. Dies müssen Sie tun, nachdem Sie das Warehouse erstellt haben, da es in einem angehaltenen Zustand erstellt wird:

ALTER WAREHOUSE interactive_demo RESUME;
Copy

Sie tun dies auch, um Abfragen über das Warehouse auszuführen, wenn Sie das Warehouse manuell angehalten haben.

Abfragen werden langsam sein, während der Cache nach dem Fortsetzen aufbereitet wird. Dies kann einige Minuten bis zu einer Stunde dauern, je nachdem, wie viele Daten Sie in dieser Tabelle haben.

Mit dem folgenden Befehl wird ein interaktives Warehouse angehalten:

ALTER WAREHOUSE interactive_demo SUSPEND;
Copy

Sie können das Warehouse in Entwicklungs- und Testumgebungen anhalten, in denen es viele Stunden lang nicht mehr verwendet wird. In einer Produktionsumgebung verwenden Sie in der Regel interaktive Warehouses für Workloads, in denen viele Abfragen rund um die Uhr ausgeführt werden, oder wenn für Abfragen eine niedrige Latenz entscheidend ist. Daher setzen Sie interaktive Warehouses, die Sie in der Produktion verwenden, in der Regel nicht aus. Snowflake hält interaktive Warehouses nicht automatisch an.

Löschen eines interaktiven Warehouses

Sie können den Befehl DROP WAREHOUSE ausführen, um ein interaktives Warehouse vollständig zu entfernen. Wenn Sie ein interaktives Warehouse löschen, werden die Zuordnungen zwischen diesem Warehouse und interaktiven Tabellen entfernt. Sie können jedoch auch andere interaktive Warehouses verwenden, um dieselben interaktiven Tabellen abzufragen.

Abfragen einer interaktiven Tabelle

Stellen Sie in Ihrer Abfragesitzung sicher, dass das Warehouse Ihrer aktuellen Sitzung ein interaktives Warehouse ist:

USE WAREHOUSE interactive_demo;
Copy

Danach können Sie Ihre interaktive Tabelle normal abfragen.

Bemerkung

  • In einem interaktiven Warehouse können Sie nur interaktive Tabellen abfragen. Um andere Typen von Snowflake-Tabellen abzufragen, wie z. B. Standardtabellen oder Hybridtabellen, wechseln Sie zunächst zu einem Standard-Warehouse.

  • Bestimmte Typen von Abfragen eignen sich besonders für interaktive Tabellen. Weitere Informationen dazu finden Sie unter Anwendungsfälle für interaktive Tabellen.

Best Practices für Benchmarking

Wenn Sie die Leistung interaktiver Tabellen in einer Testumgebung bewerten, beachten Sie folgende bewährte Verfahren, um inkonsistente oder irreführende Ergebnisse zu vermeiden:

  • Deaktivieren Sie den Abfrageergebnis-Cache, damit die Benchmark-Ergebnisse zwischen mehreren Benchmark-Ausführungen konsistent sind. Sie können den Abfrageergebnis-Cache auf Konto-, Benutzer- und Sitzungsebene deaktivieren, indem Sie die USE_CACHED_RESULT Sitzungsparameter einstellen. Auf diese Weise verwenden die Abfragen nur den Tabellendaten-Cache aus dem interaktiven Warehouse. Wenn Sie das Ergebnis-Caching in Ihrer Produktionsumgebung aktivieren, können Sie die gleiche oder eine bessere Leistung erwarten als bei Ihren Benchmark-Tests.

  • Da ein interaktives Warehouse einige Zeit benötigt, um den Datencache für die Tabelle aufzufrischen, sollten Sie nach dem Erstellen oder Fortsetzen eines interaktiven Warehouse eine Weile warten, bevor Sie die Abfrageleistung testen. Dies simuliert die typische Produktionskonfiguration, bei der das Warehouse über lange Zeiträume aktiv bleibt. Snowflake wendet Optimierungen auf den Cache-Wartungsprozess an. Daher ist es effizienter, diesen Prozess Snowflake erledigen zu lassen, als den Cache selbst durch Ausführen von Beispielabfragen aufzufüllen.

  • Wenn Sie die Leistung von interaktiven Tabellen mit der Leistung von Standard-Snowflake-Tabellen vergleichen, dürfen Sie die Abfragen nicht zwischen Standard- und interaktiven Tabellen verschachteln. Führen Sie stattdessen die vollständige Benchmark auf Standardtabellen aus und führen Sie dann dieselben Tests auf interaktiven Tabellen aus.

  • Wenn Sie vergleichende Benchmarks mit anderen Datenbanksystemen durchführen, stellen Sie sicher, dass die Clustering-Spalten in Ihren interaktiven Tabellen mit den WHERE-Klausel-Prädikaten in Ihren Abfragen übereinstimmen. Weitere Informationen zum Auswählen der optimalen Clustering-Spalten finden Sie unter Gruppierungsschlüssel und geclusterte Tabellen. Insbesondere sollten Sie nicht auf Spalten mit hoher Kardinalität clustern, z. B. eindeutige IDs oder Zeitstempel.

  • Wenn Ihre Abfragen kurz und einfach sind, können Sie eine höhere Parallelität erreichen, indem Sie den Parameter MAX_CONCURRENCY_LEVEL auf einen höheren Wert für Ihr interaktives Warehouse einstellen.

Interactive tables and storage lifecycle policies

Sie können Speicherlebenszyklusrichtlinien nutzen, um bestimmte Tabellenzeilen auf der Grundlage der von Ihnen definierten Bedingungen, wie z. B. das Alter der Daten oder andere Kriterien, zu archivieren oder ablaufen zu lassen.

Derzeit können Sie keine Speicherlebenszyklusrichtlinien für interaktive Tabellen verwenden, die eine automatische Aktualisierung verwenden. Sie können den Parameter TARGET_LAG oder eine Speicherlebenszyklusrichtlinie verwenden, aber nicht beides.

Hinweise zu Kosten und Abrechnung

Interactive warehouses incur compute charges when active. The minimum billable period for an interactive warehouse is one hour, and at one-second granularity thereafter.

Bemerkung

Wenn Sie ein angehaltenes interaktives Warehouse fortsetzen, führt dieser Vorgang zu einer neuen Gebühr für den Mindestabrechnungszeitraum. Diese Gebühr gilt auch dann, wenn Ihnen dieser Zeitraum bereits aufgrund anderer Aktivitäten im Warehouse in Rechnung gestellt wurde. Vermeiden Sie daher das mehrfache Anhalten und Fortsetzen eines interaktiven Warehouse innerhalb eines kurzen Zeitraums, um z. B. die Anzahl der Cluster in einem interaktiven Multi-Cluster-Warehouse anzupassen.

Interaktive Tabellen verursachen Standardspeicherkosten. Der Preis für die Speicherung von interaktiven Tabellen ist derselbe wie für Standardtabellen. Interaktive Tabellen können aufgrund von Unterschieden in der Datencodierung und zusätzlichen Indizes größer sein als die entsprechenden Standardtabellen. Die größeren Datenmengen und Indizes werden in das Speichervolumen eingerechnet.

Weitere Informationen zu Kosten und Abrechnung für interaktive Warehouses und interaktive Tabellen finden Sie unter Snowflake Service Consumption Table.

Betroffene SQL-Anweisungen

Dieses Feature führt zu Änderungen bei den folgenden Snowflake SQL-Befehlen: