Hybridtabellen

Eine Hybridtabelle ist ein Snowflake-Tabellentyp, der durch indexbasierte zufällige Lese- und Schreibvorgänge für niedrige Latenzzeiten und hohen Durchsatz optimiert ist. Hybridtabellen bieten eine zeilenbasierte Speichermaschine, die Zeilensperren für hohe Gleichzeitigkeit unterstützt. Hybridtabellen erzwingen auch eindeutige und referenzielle Integritätsbeschrä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:

  • Metadaten für Anwendungen und Workflows, wie z. B. die Aufrechterhaltung des Status für einen Aufnahme-Workflow, der Aktualisierungen mit hoher Gleichzeitigkeit in einer einzigen Tabelle von Tausenden von parallelen Arbeitern erfordert.

  • Bereitstellung von vorberechneten Aggregaten mit geringerer Latenz über eine API oder eine Benutzeroberfläche.

  • Leichte transaktionale Anwendungen mit relationalen Datenmodellen.

Tipp

Bevor Sie Hybridtabellen erstellen und verwenden, sollten Sie sich mit einigen nicht unterstützten Features und Einschränkungen vertraut machen.

Architektur

Hybridtabellen fügen sich nahtlos in die bestehende Snowflake-Architektur ein. Die Kunden verbinden sich mit demselben Snowflake-Datenbankdienst. Abfragen werden in der Cloud-Services-Schicht kompiliert und optimiert und in derselben Abfrage-Engine und den virtuellen Warehouses wie Standardtabellen 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 verbinden; Abfragen werden 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 in Ihrem Warehouse im Spaltenformat zwischengespeichert werden, um eine bessere Leistung für analytische 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

Zeilenebene

Partition oder Tabelle

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 (außer für PRIMARY KEY), erzwungen

Optional, nicht erzwungen

NOT NULL-Einschränkungen

Optional (außer für PRIMARY KEY), 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). Weitere Informationen über Regeln für Einschränkungen finden Sie unter Einschränkungen für Hybridtabellen.

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.

Wann Sie eine Hybridtabelle verwenden sollten

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. Hybridtabellen bieten hohe Gleichzeitigkeit und niedrige Latenz für viele Workloads. Die folgenden Typen von Abfragen profitieren am ehesten von Hybridtabellen:

  • Indexbasierte Random-Point-Lesevorgänge, die eine kleine Anzahl von Datensätzen abrufen, wie z. B. Kundenobjekte

  • Zufällige Schreibvorgänge mit hoher Gleichzeitigkeit, einschließlich Einfügungen, Aktualisierungen und Zusammenführungen:

Anwendungen arbeiten in der Regel mit einer Mischung aus Hybridtabellen und Standardtabellen, wobei in jedem Tabellentyp unterschiedliche Datensätze gespeichert werden. Sie haben beispielsweise einige Daten, die Sie häufig in großen Mengen laden, scannen und zu Analysezwecken aggregieren, und andere Daten, auf die Sie Zeile für Zeile zugreifen, gefiltert nach einer Spalten-ID und mit hoher Gleichzeitigkeit. Sie können die Verwendung von Standardtabellen und Hybridtabellen in einer einzigen Datenbank je nach den Anforderungen Ihrer Workload mischen.