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.
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 Unterstützte Cloudregionen.
us-east-1– US East (N. Virginia)us-west-2– US West (Oregon)us-east-2- US East (Ohio)ap-northeast-1– Asien-Pazifik (Tokio)ap-southeast-2– Asien-Pazifik (Sydney)eu-central-1– EU (Frankfurt)eu-west-1– EU (Irland)
Einschränkungen bei interaktiven Warehouses und interaktiven Tabellen¶
Die folgenden Einschränkungen gelten für interaktive Warehouses und interaktive Tabellen während des Vorschauzeitraums. Einige Einschränkungen sind auf architektonische Unterschiede zwischen interaktiven Tabellen und Standard-Snowflake-Tabellen zurückzuführen. Diese Einschränkungen sollen dauerhaft sein.
Einschränkungen bei interaktiven Warehouses¶
Interaktive Snowflake-Warehouses unterstützen keine Abfragen mit langen Ausführungszeiten. Das Abfrage-Timeout für SELECT-Befehle ist standardmäßig auf fünf Sekunden eingestellt. Nach fünf Sekunden wird die Abfrage abgebrochen. Sie können den Wert für das Abfrage-Timeout verringern, aber nicht erhöhen. Andere Arten von Befehlen, wie z. B. SHOW und INSERT OVERWRITE, unterliegen nicht dem Timeout-Intervall von fünf Sekunden.
Interaktive Warehouses sind nicht für die Verwendung mit zeitintensiven Abfragen vorgesehen. Wenn eine Abfrage immer wieder ein Timeout aufweist, ist dies ein Zeichen dafür, dass sie möglicherweise nicht für die Verwendung mit interaktiven Warehouses geeignet ist. Andernfalls müssen Sie einige Techniken zur Leistungsoptimierung anwenden, um die Zeit auf weniger als fünf Sekunden zu reduzieren.
Ein interaktives Warehouse ist von Grund auf immer aktiv. Es wird nicht automatisch angehalten, wenn es inaktiv ist. Obwohl Sie ein interaktives Warehouse manuell anhalten können, müssen Sie beim Fortsetzen des Warehouse mit erheblichen Abfragelatenzen rechnen.
Sie können keine Standard-Snowflake-Tabellen aus einem interaktiven Warehouse abfragen. Um sowohl Standardtabellen als auch interaktive Tabellen in derselben Sitzung abzufragen, führen Sie USE WAREHOUSE aus, um je nach Tabellentyp zum entsprechenden Warehouse-Typ zu wechseln.
Wenn ein interaktives Warehouse ein Multi-Cluster-Warehouse ist, wird es nicht automatisch skaliert. Achten Sie darauf, dass in einem interaktiven Multi-Cluster-Warehouse MIN_CLUSTER_COUNT und MAX_CLUSTER_COUNT immer auf denselben Wert festgelegt sind.
Sie können CALL-Befehle nicht zum Aufrufen von gespeicherten Prozeduren in einem interaktiven Warehouse ausführen.
Sie können den
->>-Pipe-Operator nicht verwenden. Dieser Operator verwendet gespeicherte Prozeduren im Hintergrund.Interaktive Warehouses unterstützen derzeit keine Replikation. Sie sind nicht in Failover-Gruppen und Replikationsgruppen enthalten.
Einschränkungen bei interaktiven Tabellen¶
Interaktive Tabellen unterstützen die folgenden Features nicht:
Befehle der Datenbearbeitungssprache (DML), wie beispielsweise UPDATE und DELETE. Die einzige DML, die Sie ausführen können, ist INSERT OVERWRITE.
Replikation. Sie sind nicht in Failover-Gruppen und Replikationsgruppen enthalten.
Abfrage-Erkenntnisse werden derzeit nicht für Abfragen gesammelt oder sind nicht für Abfragen verfügbar, die in interaktiven Tabellen ausgeführt werden.
Sie können die folgenden Operationen nicht ausführen:
Verwenden Sie eine interaktive Tabelle als Quelle für eine materialisierte Ansicht.
Ändern Sie die Eigenschaften einer interaktiven Tabelle mit ALTER TABLE-Klauseln, wie beispielsweise ADD COLUMN oder REMOVE COLUMN. Die einzige ALTER TABLE-Änderung, die Sie vornehmen können, ist die Umbenennung der Tabelle.
Verwenden Sie Datenmaskierungsrichtlinien mit einer interaktiven Tabelle.
Verwenden Sie Verknüpfungsrichtlinien mit einer interaktiven Tabelle.
Verwenden Sie Aggregationsrichtlinien mit einer interaktiven Tabelle.
Verwenden Sie Zeilenzugriffsrichtlinien mit einer interaktiven Tabelle.
Verwenden Sie Streams mit einer interaktiven Tabelle.
Erstellen Sie eine dynamische Tabelle mit einer interaktiven Tabelle als Basistabelle.
Verwenden Sie die RESAMPLE-Klausel für Abfragen in einer interaktiven Tabelle.
Erste Schritte mit interaktiven Tabellen¶
Um mit interaktiven Tabellen zu beginnen, führen Sie die folgenden Schritte aus:
Erstellen Sie eine interaktive Tabelle unter Verwendung eines Standard-Warehouses. Weitere Informationen dazu finden Sie unter Erstellen einer interaktiven Tabelle.
Erstellen Sie ein interaktives Warehouse. Weitere Informationen dazu finden Sie unter Erstellen eines interaktiven Warehouses.
Setzen Sie das interaktive Warehouse fort. Weitere Informationen dazu finden Sie unter Anhalten und Fortsetzen eines Warehouses.
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.
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;
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 }'
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;
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';
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';
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;
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;
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());
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());
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);
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 ...
Weitere Informationen zum Auswählen der optimalen Gruppierungsschlüssel finden Sie unter Gruppierungsschlüssel und geclusterte Tabellen.
Verwenden der Suchoptimierung für Punktsuchabfragen¶
Wir empfehlen, die Suchoptimierung hinzuzufügen, wenn Sie Punktsuchabfragen in Ihrer interaktiven Tabelle durchführen. Punktsuchabfragen sind Abfragen, die nach einer einzelnen Spalte filtern, um eine oder mehrere Datenzeilen abzurufen. Ein gutes Beispiel ist WHERE some_id = some_UUID.
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);
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);
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;
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;
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;
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.
Hinweise zu Kosten und Abrechnung¶
Für interaktive Warehouses fallen, wenn sie aktiv sind, Computegebühren an.
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:
ALTER WAREHOUSE: neue Klauseln ADD TABLES und DROP TABLES.
CREATE INTERACTIVE TABLE: erstellt interaktive Tabellen mit der erforderlichen CLUSTER BY-Klausel.
CREATE INTERACTIVE WAREHOUSE: erstellt interaktive Warehouses mit einer optionalen TABLES-Klausel.