Schlüsselkonzepte und Architektur

Snowflake ist ein analytisches Data Warehouse, das als Software-as-a-Service (SaaS) bereitgestellt wird. Snowflake bietet ein Data Warehouse, das im Vergleich zu herkömmlichen Data Warehouse-Angeboten schneller, benutzerfreundlicher und flexibler ist.

Das Data Warehouse von Snowflake basiert nicht auf einer vorhandenen Datenbank oder einer „Big Data“-Softwareplattform wie Hadoop. Das Snowflake Data Warehouse verwendet eine neue SQL-Datenbank-Engine mit einer einzigartigen Architektur, die für die Cloud entwickelt wurde. Aus Sicht des Benutzers hat Snowflake viel Ähnlichkeit mit anderen Enterprise Data Warehouses, verfügt aber auch über zusätzliche Funktionen und einzigartige Fähigkeiten.

Unter diesem Thema:

Data Warehouse als Clouddienst

Das Data Warehouse von Snowflake ist ein echtes SaaS-Angebot. Genauer gesagt:

  • Es gibt keine Hardware (virtuell oder physisch), die Sie auswählen, installieren, konfigurieren oder verwalten müssen.

  • Es gibt keine Software, die Sie installieren, konfigurieren oder verwalten müssen.

  • Die laufende Wartung, Verwaltung und Feinabstimmung wird von Snowflake übernommen.

Snowflake wird komplett auf Cloudinfrastruktur ausgeführt. Alle Komponenten des Snowflake-Services (mit Ausnahme eines optionalen Befehlszeilenclients) werden über die Infrastruktur einer öffentlichen Cloud ausgeführt.

Snowflake verwendet virtuelle Computeinstanzen für seine Verarbeitungsanforderungen und einen Speicherservice für die persistente Speicherung von Daten. Snowflake kann nicht auf privaten Cloudinfrastrukturen (lokal oder gehostet) betrieben werden.

Snowflake ist kein Softwarepaket, das von einem Benutzer installiert werden kann. Snowflake verwaltet alle Aspekte der Softwareinstallation und Updates.

Snowflake-Architektur

Die Architektur von Snowflake ist eine Mischung aus herkömmlichen Shared-Disk- und Shared-Nothing-Datenbankarchitekturen. Ähnlich wie bei Shared-Disk-Architekturen verwendet Snowflake ein zentrales Datenrepository für persistente Daten, das von allen Computeknoten im Data Warehouse aus zugänglich ist. Aber ähnlich wie bei Shared-Nothing-Architekturen verarbeitet Snowflake Abfragen mit MPP-Computeclustern (massive parallele Verarbeitung), wobei jeder Knoten im Cluster einen Teil des gesamten Datasets lokal speichert. Dieser Ansatz bietet die Einfachheit der Datenverwaltung einer Shared-Disk-Architektur, aber mit den Performance- und Skalierungsvorteilen einer Shared-Nothing-Architektur.

Architecture overview

Die einzigartige Architektur von Snowflake besteht aus drei Hauptschichten:

Datenbankspeicher

Wenn Daten in Snowflake geladen werden, ordnet Snowflake diese Daten in sein intern optimiertes, komprimiertes, spaltenförmiges Format um. Snowflake speichert diese optimierten Daten in einem Cloudspeicher.

Snowflake verwaltet alle Aspekte der Speicherung dieser Daten wie Organisation, Dateigröße, Struktur, Komprimierung, Metadaten, Statistiken usw. Die von Snowflake gespeicherten Datenobjekte sind weder direkt sichtbar noch für Kunden zugänglich; sie sind nur durch SQL-Abfrageoperationen zugänglich, die mit Snowflake ausgeführt werden.

Abfrageverarbeitung

Die Ausführung der Abfrage erfolgt in der Verarbeitungsschicht. Snowflake verarbeitet Abfragen mithilfe von „virtuellen Warehouses“. Jedes virtuelle Warehouse ist ein MPP-Computecluster, der aus mehreren Serverknoten besteht, die von einem Cloudanbieter über Snowflake zugewiesen werden.

Jedes virtuelle Warehouse ist ein unabhängiger Computecluster, der keine Computeressourcen mit anderen virtuellen Warehouses teilt. Dadurch hat keines der virtuellen Warehouses Einfluss auf die Leistung irgendeines anderen virtuellen Warehouses.

Weitere Informationen dazu finden Sie unter Virtuelle Warehouses.

Clouddienste

Die Clouddienstschicht ist eine Sammlung von Services, die die Aktivitäten in Snowflake koordinieren. Diese Services verbinden alle Komponenten von Snowflake miteinander, um Benutzeranforderungen von der Anmeldung bis zur Abfrageverarbeitung zu erfüllen. Die Clouddienstschicht wird auch auf Computeinstanzen ausgeführt, die vom Cloudanbieter über Snowflake bereitgestellt werden.

Folgende Services gehören zu dieser Schicht:

  • Authentifizierung

  • Infrastrukturverwaltung

  • Metadatenverwaltung

  • Abfrageanalyse und -optimierung

  • Zugriffssteuerung

Verbinden mit Snowflake

Snowflake unterstützt folgende Verbindungsmöglichkeiten mit dem Service:

  • Webbasierte Benutzeroberfläche, über die alle Aspekte der Verwaltung und Nutzung von Snowflake zugänglich sind.

  • Befehlszeilenclients (z. B. SnowSQL), die auch Zugang zu allen Aspekten der Verwaltung und Nutzung von Snowflake haben.

  • ODBC- und JDBC-Treiber, die von anderen Anwendungen (z. B. Tableau) für die Verbindung mit Snowflake verwendet werden können.

  • Native Konnektoren (z. B. Python), die zur Entwicklung von Anwendungen für das Verbinden mit Snowflake entwickelt werden können.

  • Konnektoren von Drittanbietern, die zur Verbindung von Anwendungen wie ETL-Tools (z. B. Informatica) oder BI-Tools mit Snowflake verwendet werden können.

Weitere Informationen dazu finden Sie unter Anmelden bei Snowflake.