Interaktive Tabellen und interaktive Warehouses in Snowflake¶
Übersicht¶
Interaktive Snowflake-Tabellen und interaktive Warehouses sind spezielle Typen von Snowflake-Objekten, die für Workloads mit niedriger Latenz und hoher Parallelität optimiert sind. Sie sind ideal für Anwendungsfälle wie Echtzeit-Dashboards, datengestützte APIs und die Bereitstellung von Workloads mit hoher Parallelität.
- Interaktives Warehouse
Ein Warehouse, das für interaktive Workloads mit niedriger Latenz optimiert ist. Das Warehouse enthält eine Abfrage-Engine, die für Abfragen mit niedriger Latenz bei hoher Parallelität optimiert ist.
- Interaktive Tabelle
Ein Typ von Snowflake-Tabelle, der für Workloads mit geringer Latenz bei hoher Parallelität optimiert ist, der gut mit interaktiven Warehouses funktioniert und mit Snowflake-Standard-Warehouses verwendet werden kann. Sie erhalten die besten Leistungssteigerungen, wenn Sie diese Tabellen über interaktive Warehouses abfragen.
Anwendungsfälle für interaktive Tabellen¶
- Echtzeit-Dashboards
Bereitstellen von Dashboard-Abfragen, die Tausende von Benutzeranfragen mit niedriger Latenz und hoher Parallelität unterstützen. Besonders nützlich für die Bereitstellung von Anwendungsfällen, bei denen einige Aggregationen und Flexibilität erforderlich sind.
- Datengestützte APIs
Bereitstellen von datengestützten APIs, die eine vorhersehbare Konsistenzlatenz erfordern, die sich wiederholende Abfrageform enthalten.
- Alerts und agentenbasierte AI-Workloads
Für Beobachtbarkeit und agentenbasierte AI-Workloads, die unvorhersehbare Abfragespitzen erzeugen können und niedrige Kosten pro Abfrage erfordern.
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 interaktiven 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.
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 regelmäßige Wartungsaktualisierungen verwendet.
Sie können optional auch INITIALIZATION_WAREHOUSE angeben, um erstmalige Aktualisierungen in einem separaten Warehouse auszuführen. Erstaktualisierungen verarbeiten oft mehr Daten als Wartungsaktualisierungen. In vielen Fällen können Sie ein größeres Warehouse, z. B. XL, für die erstmalige Aktualisierung und ein kleineres Warehouse, wie S, für laufende Wartungsaktualisierungen verwenden.
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:
Wenn Sie keine Einheit angeben, stellt die Zahl Sekunden dar. Der Mindestwert beträgt 60 Sekunden oder 1 Minute.
Die folgende CREATE INTERACTIVE TABLE-Anweisung definiert beispielsweise eine interaktive Tabelle, die nicht mehr als 20 Minuten hinter einer angegebenen Quelltabelle zurückbleibt, die ein größeres Warehouse für die erstmalige Aktualisierung verwendet und ein kleineres Warehouse für die laufenden Wartungsaktualisierungen nutzt:
Weitere Informationen zur Auswahl einer geeigneten Verzögerungszeit, die Kosten und Aktualität der Daten in Einklang bringt, finden Sie unter Wie Snowflake Aktualisierungen plant. Hinweise zur Verwendung separater Warehouses für Erst- und Wartungsaktualisierungen finden Sie unter Anpassen Ihrer Warehouse-Konfiguration. Für interaktive Tabellen gelten ähnliche Überlegungen wie für dynamische Tabellen.
Sie können eine Aktualisierung für eine dynamische interaktive Tabelle auch manuell auslösen, indem Sie Folgendes ausführen:
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:
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:
Nachdem Sie ein interaktives Warehouse erstellt haben, bleibt es so lange im Status „Angehalten“, bis Sie es fortsetzen. Sie können das automatische Anhalten und das automatische Fortsetzen für interaktive Warehouses konfigurieren. Das minimale Intervall für das automatische Anhalten bei einem interaktiven Warehouse beträgt 24 Stunden (86.400 Sekunden). Weitere Details dazu finden Sie unter Anhalten und Fortsetzen eines interaktiven Warehouses.
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 |
|---|---|
|
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. |
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. |
|
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. |
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:
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:
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.
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. Tatsächlich können viele Kunden die meisten ihrer Abfragen über den interaktiven Warehouse-Cache bedienen, auch wenn nur ein Teil ihrer Daten zwischengespeichert ist.
Wir empfehlen, mit den folgenden Warehouse-Größen zu beginnen, basierend auf der Größe des Arbeits-Datensets. (Änderungen und Hardwareunterschiede je nach Cloudanbieter und Region vorbehalten)
Arbeitsset |
Warehouse-Größe |
|---|---|
Weniger als ~350 GB |
XSMALL |
~350 GB bis ~600 GB |
SMALL |
~600 GB bis ~1,2 TB |
MEDIUM |
~1,2 TB bis ~2,5 TB |
LARGE |
~2,5 TB bis ~5,5 TB |
XLARGE |
~5,5 TB bis ~11 TB |
2XLARGE |
~11 TB bis ~22 TB |
3XLARGE |
~22 TB bis ~44 TB |
4XLARGE |
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 SSD-Cache, mit dem Snowflake die zuletzt verwendeten Daten zwischenspeichert. 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 ich kann nicht die erwartete Parallelität erreichen¶
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. Wenn MAX_CLUSTER_COUNT auf einen Wert gesetzt wird, der größer als der Wert für MIN_CLUSTER_COUNT ist, wird das Warehouse automatisch horizontal skaliert.
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 object not found 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.
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.
Diese Aktion startet den Cache-Aufbereitungsprozess. Die Aufbereitungszeit für den Cache richtet sich nach der Größe der Daten und der Größe des Warehouses. Die Aufbereitungszeit für ein XS-Warehouse liegt etwa bei 300 bis 350MB/s. Je größer die Tabelle, desto länger die Aufbereitungszeit für den Cache. Größere Warehouses werden schneller aufbereitet.
Der Aufbereitungsprozess hindert das Warehouse nicht daran, neue Abfragen zu akzeptieren. Priorität der Aufbereitung: 1. Vom Benutzenden ausgegebene Abfragen 2. Neu hinzugefügte Mikropartitionen durch automatische Aktualisierung oder andere Möglichkeiten der Datenaufnahme 3. Alle vorhandenen Daten
Da die Vorbereitung des Cache von Ihren Abfragen abhängt, können Sie am besten überwachen, ob der Cache aktiv ist, indem Sie den Prozentsatz der Remote-Leseoperationen in :ref:` Snowsight Query Profile<label-snowsight_query_profile>` überprüfen. Informationen für den programmgesteuerten Zugriff auf Abfrageoperatorstatistiken finden Sie unter GET_QUERY_OPERATOR_STATS. In idealen Ausführungsszenarios sollten Abfragen mit niedriger Latenz einen Remote-Lese-Prozentsatz von 0 % haben.
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.
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.
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.
Unterstützung von materialisierten Ansichten für interaktive Tabellen¶
Sie können materialisierte Ansichten für interaktive Tabellen erstellen. Eine interaktive materialisierte Ansicht berechnet und speichert die Ergebnisse einer Abfrage in einer interaktiven Tabelle, was die Abfrageleistung bei gängigen Aggregationsmustern weiter verbessern kann.
Um eine interaktive materialisierte Ansicht zu erstellen, verwenden Sie das INTERACTIVE Schlüsselwort in der CREATE MATERIALIZED VIEW-Anweisung:
Nachdem Sie die interaktive materialisierte Ansicht erstellt haben, müssen Sie sowohl die materialisierte Ansicht als auch die zugrunde liegende Basistabelle zu Ihrem interaktiven Warehouse hinzufügen:
Bewährte Methoden für interaktive materialisierte Ansichten¶
Beachten Sie diese Richtlinien, wenn Sie materialisierte Ansichten mit interaktiven Tabellen erstellen:
Die interaktive materialisierte Ansicht funktioniert genauso wie reguläre materialisierte Ansichten. Sie muss auf einer interaktiven Tabelle basieren.
Die interaktive materialisierte Ansicht und die interaktive Quelltabelle, auf der sie basiert, müssen demselben interaktiven Warehouse hinzugefügt werden. Andernfalls wird der Fehler
object not foundangezeigt, wenn Sie eine Abfrage in einer solchen materialisierten Ansicht aus dem interaktiven Warehouse ausführen.Verknüpfungen werden in materialisierten Ansichten nicht unterstützt – weder interaktiv noch standardmäßig. Strukturieren Sie Ihre Abfragen, um aus einer einzigen Basistabelle zu aggregieren oder zu filtern.
Sie können eine interaktive Tabelle oder eine interaktive materialisierte Ansicht nicht als Quelle für eine dynamische Tabelle verwenden.
Wenn Sie Kandidaten für interaktive materialisierte Ansichten in Betracht ziehen, wählen Sie Aggregationsabfragen, die häufig ausgeführt werden und deren Berechnung teuer ist.
Anhalten und Fortsetzen eines interaktiven 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:
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:
Automatisches Anhalten und automatisches Fortsetzen für interaktive Warehouses¶
Interaktive Warehouses unterstützen automatisches Anhalten und automatisches Fortsetzen. Sie können den Wert für die Eigenschaften AUTO_SUSPEND und AUTO_RESUME beim Erstellen oder Ändern eines interaktiven Warehouses festlegen.
Der AUTO_SUSPEND-Mindestwert für ein interaktives Warehouse beträgt 86.400 Sekunden (24 Stunden). Dieses Minimum stellt sicher, dass der Cache lange genug aktiv bleibt, um eine gleichbleibende Leistung bei niedriger Latenz zu bieten. Wenn Sie einen Wert kleiner als 86.400 angeben, verwendet Snowflake stattdessen 86.400.
Im folgenden Beispiel wird ein interaktives Warehouse mit automatischem Anhalten nach 24 Stunden Inaktivität und aktiviertem automatischen Fortsetzen erstellt:
Sie können diese Eigenschaften auch für ein bestehendes interaktives Warehouse festlegen:
Bemerkung
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. Das Anhalten und Fortsetzen eines interaktiven Warehouses (entweder manuell oder durch automatisches Anhalten) verursacht eine erhebliche Aufbereitungszeit des Cache. Prüfen Sie also, ob ein automatisches Anhalten für Ihr Workload-Muster geeignet ist.
Regionsverfügbarkeit¶
Interaktive Tabellen und interaktive Warehouses sind in den folgenden Amazon Web Services (AWS)-, Google Cloud Platform (GCP)- und Microsoft Azure-Regionen verfügbar. Weitere Informationen zu Snowflake-Regionen finden Sie unter Unterstützte Cloudregionen.
us-east-1– AWS US East (N. Virginia)us-west-2– AWS US West (Oregon)us-east-2– AWS US East (Ohio)ca-central-1– AWS Canada (Central)ap-northeast-1– AWS Asia Pacific (Tokyo)ap-southeast-2– AWS Asia Pacific (Sydney)eu-central-1– AWS EU (Frankfurt)eu-west-1– AWS EU (Ireland)eu-west-2– AWS Europe (London)us-central1– GCP US Central1 (Iowa)us-east4– GCP US East4 (N. Virginia)europe-west2– GCP Europe West2 (London)europe-west3– GCP Europe West3 (Frankfurt)europe-west4– GCP Europe West4 (Netherlands)australia-southeast2– GCP Australia Southeast2 (Melbourne)Azure: alle Azure-Regionen.
Aufgabenbasierte Multi-Cluster-Dimensionierung¶
Sie können die MIN_CLUSTER_COUNT-Parameter über geplante Aufgaben anpassen.
Es wird empfohlen, den Wert für MAX_CLUSTER_COUNT mithilfe von Richtlinien für die automatische Skalierung festzulegen, um Spitzen bei der Parallelität für Ihre Workload zu bewältigen.
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:
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.
Interaktive Tabellen und Speicherlebenszyklusrichtlinien¶
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.
Notfallwiederherstellung und Replikation¶
Wenn sie einer Replikationsgruppe hinzugefügt werden, werden interaktive Tabellen und Warehouses in das Zielkonto repliziert.
Die Replikation interaktiver Tabellen verhält sich genauso wie die Replikation von Standardtabellen. Die Replikation interaktiver Warehouses verhält sich genauso wie die Replikation von Standard-Warehouses, außer dass angenommen wird, dass interaktive Warehouses in der Zielregion unterstützt werden. Es gibt derzeit keine Validierung der Replikation interaktiver Warehouses in der Zielregion.
Das interaktive Warehouse im Zielkonto wird automatisch fortgesetzt. Aufgrund der Anforderungen an die Aufbereitungszeit für den Cache kann die Leistungsfähigkeit des Warehouses jedoch nicht garantiert werden. Um eine konsistente Leistung sicherzustellen, können Sie das Warehouse in der Zielregion weiter ausführen.
Hinweise zu Kosten und Abrechnung¶
Für interaktive Warehouses fallen, wenn sie aktiv sind, Computegebühren an. Der abrechenbare Mindestzeitraum für ein interaktives Warehouse beträgt eine Stunde, danach mit einer Granularität von einer Sekunde.
Bemerkung
Wenn Sie ein angehaltenes interaktives Warehouse fortsetzen (entweder manuell oder durch automatisches 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. Das Mindestintervall von 24 Stunden für das automatische Anhalten hilft, übermäßige Zyklen von Anhalten/Fortsetzen zu vermeiden.
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.
Einschränkungen bei interaktiven Warehouses und interaktiven Tabellen¶
Die folgenden Einschränkungen gelten für interaktive Warehouses und interaktive Tabellen. 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 sind für Abfragen mit kurzer Ausführungszeit optimiert. 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. Dies ist beabsichtigt, um zu verhindern, dass lang laufende Abfragen dem interaktiven Warehouse Ressourcen entziehen und die Leistung von Abfragen mit niedriger Latenz beeinträchtigt wird. Bestimmte Arten von Befehlen, wie z. B. SHOW und INSERT OVERWRITE, unterliegen nicht dem Timeout-Intervall von fünf Sekunden.
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. In der Regel kann die Anwendung einiger Techniken zur Leistungsoptimierung dabei helfen, die Latenz von Abfragen zu verringern. Siehe Hinweise zur Leistung interaktiver Tabellen für weitere Details.
Interaktive Warehouses unterstützen automatisches Anhalten und automatisches Fortsetzen mit einem minimalen automatischen Anhalteintervall von 24 Stunden (86.400 Sekunden). Wenn Sie ein interaktives Warehouse fortsetzen, müssen Sie mit erheblichen Abfragelatenzen rechnen, da der Datencache wieder aufbereitet werden muss. Weitere Informationen dazu finden Sie unter Anhalten und Fortsetzen eines interaktiven Warehouses.
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 :doc:` USE WAREHOUSE </sql-reference/sql/use-warehouse>` aus, um zum entsprechenden Warehouse-Typ zu wechseln.
Sie können maximal 10 interaktive Tabellen zu einem interaktiven Warehouse hinzufügen. Dies ist eine vorübergehende Beschränkung, um eine Überlastung des Systems zu verhindern. Dieses Limit wird in Zukunft erhöht. Wenn Sie mehr als 10 interaktive Tabellen hinzufügen möchten, wenden Sie sich an den Snowflake-Support.
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.
Einschränkungen bei interaktiven Tabellen¶
Interaktive Tabellen unterstützen die folgenden Features nicht:
Befehle der Datenbearbeitungssprache (DML) wie beispielsweise UPDATE und DELETE. Der empfohlene Workflow besteht darin, interaktive Tabellen mit automatischer Aktualisierung zu verwenden (d. h. durch Festlegen von TARGET_LAG) und stattdessen DML auf die Quelltabelle anzuwenden. Der automatische Aktualisierungsmechanismus ist effizienter und kostengünstiger als die Verwendung von DML für die interaktive Tabelle. Die einzige DML, die Sie ausführen können, ist INSERT OVERWRITE.
Fail-safe. Dieser Datenwiederherstellungsmechanismus ist für interaktive Tabellen nicht verfügbar. Sie können Time Travel jedoch weiterhin mit interaktiven Tabellen verwenden.
Zeilenzeitstempel. Sie können keine Zeilenzeitstempel für eine interaktive Tabelle aktivieren. Dies ist eine vorübergehende Beschränkung.
Abfrage-Erkenntnisse. Sie werden derzeit nicht für Abfragen gesammelt oder sind nicht für Abfragen verfügbar, die in interaktiven Tabellen ausgeführt werden, um die Latenz bei der Ausführung von Abfragen zu verringern.
Sie können die folgenden Operationen nicht ausführen:
Verwenden Sie eine interaktive Tabelle als Quelle für eine standardmäßige (nicht interaktive) materialisierte Ansicht. Um eine materialisierte Ansicht für eine interaktive Tabelle zu erstellen, verwenden Sie das INTERACTIVE-Schlüsselwort. Siehe Unterstützung von materialisierten Ansichten für interaktive Tabellen.
Ändern Sie die Eigenschaften einer interaktiven Tabelle mit ALTER TABLE Klauseln wie ADD COLUMN oder REMOVE COLUMN. Zu den ALTER TABLE-Operationen, die Sie ausführen können, gehören:
Umbenennen der Tabelle.
Ändern von Spalten, um Kommentare festzulegen oder zu löschen.
Festlegen oder Aufheben von Maskierungsrichtlinien für Spalten.
Hinzufügen oder Aufheben einer -Maskierungsrichtlinie, Verknüpfungsrichtlinie, Aggregationsrichtlinie oder Zeilenzugriffsrichtlinie für die Tabelle.
Hinzufügen einer Speicherlebenszyklusrichtlinie für die Tabelle oder Löschen der Speicherlebenszyklusrichtlinie für die 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.
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.
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.
CREATE MATERIALIZED VIEW: neues optionales INTERACTIVE Schlüsselwort zum Erstellen materialisierter Ansichten für interaktive Tabellen.