Hybridtabellen

Eine Hybridtabelle ist ein Snowflake-Tabellentyp, der für hybride transaktionale und operative Workload optimiert ist, die eine niedrige Latenz und einen hohen Durchsatz bei kleinen zufälligen Lese- und Schreiboperationen erfordern. Eine Hybridtabelle unterstützt die Durchsetzung eindeutiger und referenzieller Integritätseinschränkungen, die für transaktionale Workloads entscheidend sind. Sie können eine Hybridtabelle zusammen mit anderen Snowflake-Tabellen und -Features verwenden, um Unistore-Workloads zu bewältigen, die transaktionale und analytische Daten in einer einzigen Plattform zusammenführen.

Zu den Anwendungsfällen, die von Hybridtabellen profitieren können, gehören:

  • Erstellen einer Kohorte für eine gezielte Marketingkampagne über eine interaktive Benutzeroberfläche.

  • Verwalten eines zentralen Workflow-Status zur Koordinierung großer paralleler Datentransformationspipelines.

  • Anbieten einer vorberechneten Werbebehandlung für Nutzer, die Ihre Website oder mobile App besuchen.

Architektur

Hybridtabellen werden nahtlos in die bestehende Snowflake-Architektur integriert. Die Kunden verbinden sich mit demselben Snowflake-Datenbankdienst. Abfragen werden in der Clouddiensteschicht kompiliert und optimiert und über dieselbe Abfrage-Engine der virtuellen Warehouses ausgeführt. Diese Architektur hat mehrere entscheidende Vorteile:

  • Die Features der Snowflake-Plattform, wie z. B. Data Governance, können sofort mit Hybridtabellen genutzt werden.

  • Sie können hybride Workloads ausführen, die operative und analytische Abfragen mischen.

  • Sie können Hybridtabellen mit anderen Snowflake-Tabellen verknüpfen und die Abfrage wird nativ und effizient in derselben Abfrage-Engine ausgeführt. Es ist keine Authentifizierung erforderlich.

  • Sie können eine atomare Transaktion über Hybridtabellen und andere Snowflake-Tabellen ausführen. Es besteht keine Notwendigkeit, ein eigenes zweistufiges Commit zu organisieren.

Unistore-Architektur

Hybridtabellen nutzen einen Zeilenspeicher als primären Datenspeicher, um eine hervorragende Leistung bei operativen Abfragen zu erzielen. Wenn Sie in eine Hybridtabelle schreiben, werden die Daten direkt in den Zeilenspeicher geschrieben. Die Daten werden asynchron in den Objektspeicher kopiert, um eine bessere Performance und Workload-Isolation für große Scans sicherzustellen, ohne die laufenden operativen Workloads zu beeinträchtigen. Einige Daten können auch im Spaltenformat in Ihrem Warehouse zwischengespeichert werden, um eine bessere Leistung bei analytischen Abfragen zu erzielen. Sie führen einfach SQL-Anweisungen auf der logischen Hybridtabelle aus, und die Abfrageoptimierung von Snowflake entscheidet, von wo die Daten gelesen werden sollen, um die beste Leistung zu erzielen. Sie erhalten eine einheitliche konsistente Sicht auf Ihre Daten, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen.

Bemerkung

Da der primäre Speicher für Hybridtabellen ein Zeilenspeicher ist, haben Hybridtabellen in der Regel einen größeren Speicherplatzbedarf als Standardtabellen. Der Hauptgrund für den Unterschied ist, dass spaltenförmige Daten für Standardtabellen oft eine höhere Komprimierung erzielen. Weitere Informationen zu den Speicherkosten finden Sie unter Kosten für Hybridtabellen.

Features

Hybridtabellen bieten einige zusätzliche Features, die von anderen Snowflake-Tabellentypen nicht unterstützt werden.

Feature

Hybridtabellen

Standardtabellen

Primärdatenlayout

Zeilenorientiert, mit sekundärer spaltenweiser Speicherung

Spaltenweise Mikropartitionen

Sperre

Sperren auf Zeilenebene

Partitionen- oder Tabellensperre

PRIMARY KEY-Einschränkungen

Erforderlich, erzwungen

Optional, nicht erzwungen

FOREIGN KEY-Einschränkungen

Optional, erzwungen (referenzielle Integrität)

Optional, nicht erzwungen

UNIQUE-Einschränkungen

Optional, erzwungen

Optional, nicht erzwungen

NOT NULL-Einschränkungen

Optional, erzwungen

Optional, erzwungen

Indizes

Unterstützt für Leistung; beim Schreiben synchron aktualisiert

Der Suchoptimierungsdienst indiziert Spalten für eine bessere Point-Lookup-Leistung; Batchaktualisierung/-verwaltung asynchron

Eine Einschränkung ist erzwungen, wenn sie eine Spalte davor schützt, auf bestimmte Weise aktualisiert zu werden. Zum Beispiel kann eine Spalte, die als NOT NULL deklariert ist, keinen NULL-Wert enthalten. Der Versuch, einen NULL-Wert in eine NOT NULL-Spalte zu kopieren oder einzufügen, führt immer zu einem Fehler. Bei Hybridtabellen können Sie die Eigenschaft NOT ENFORCED nicht für PRIMARY KEY-, FOREIGN KEY- und UNIQUE-Einschränkungen festlegen. Die Einstellung dieser Eigenschaft führt zum Fehler „invalid constraint property“ (ungültige Einschränkungseigenschaft).

Eine Einschränkung ist erforderlich, wenn eine oder mehrere Spalten in einer Tabelle eine solche Einschränkung haben müssen, was nur für PRIMARY KEY-Einschränkungen auf Hybridtabellen zutrifft.

Ermitteln, wann eine Hybridtabelle verwendet werden sollte

Während Sie von Snowflake-Standardtabellen eine bessere Leistung bei großen analytischen Abfragen erwarten sollten, ermöglichen Hybridtabellen schnellere Ergebnisse bei operativen Abfragen mit kurzer Ausführungszeit. Die folgenden Typen von Abfragen profitieren am ehesten von Hybridtabellen:

  • Zufällige Punktleseoperationen mit hoher Parallelität vs. Leseoperationen mit großem Umfang.

  • Zufällige Schreiboperationen mit hoher Parallelität vs. große sequenzielle Schreiboperationen (z. B. Massenladen).

  • Abrufen einer kleinen Anzahl vollständiger Datensätze (z. B. Kundenobjekt) vs. enge Projektionen mit analytischen Funktionen (z. B. Aggregationen oder GROUP BY-Abfragen).

Wenn Ihre Abfragen zu einem dieser Modelle passen, sind Hybridtabellen möglicherweise die beste Wahl für die Speicherung Ihrer Daten.