AWS Germany – Amazon Web Services in Deutschland
Snowflake und AWS: Eine Top-Kombination für Ihre Datenanforderungen
von Sébastien Stormacq, übersetzt von Felix John
Ganz gleich, ob Sie Prognosemodelle erstellen oder Anwendungen entwickeln, die auf Prognosedaten basieren, Snowflake und AWS können Ihnen dabei unter die Arme greifen.
In diesem Artikel zeigen wir Ihnen, wie Ihre Anwendungen, die Daten aufnehmen, speichern, analysieren oder visualisieren, von der Integration zwischen Snowflake- und AWS-Lösungen profitieren können. Snowflake stellt, wie AWS, den Kunden in den Mittelpunk. Darüber hinaus teilen unsere beiden Unternehmen unter anderem einen gemeinsamen Unternehmenswert: „Customer Obsession“.
Auf der Suche nach der besten Erfahrung für unsere Kunden lernen Sie in diesem Artikel einige der technischen Merkmale unserer Angebote und die Vorteile, die Sie daraus ziehen können, kennen, unabhängig davon, ob Sie „Data Engineer“, „Data Scientist“ oder „Application Developer“ sind.
Aber was ist die Snowflake Data Cloud [extern] überhaupt?
Die Snowflake Data Cloud ist eine Cloud-native Lösung für alle Arten der Datenverwendung. Die Lösung besteht aus:
• einer Datenplattform [extern], deren innovative Architektur es ermöglicht, Benutzerfreundlichkeit, Sicherheit und Leistung in Einklang zu bringen.
• Tausenden von Datenprodukten [EN, extern], die im globalen Netzwerk, das Snowflake ermöglicht, öffentlich verfügbar sind.
Snowflake lässt sich nativ mit mehr als 25 AWS-Services integrieren und deckt so den gesamten Lebenszyklus Ihrer Daten ab: Dabei spielt es keine Rolle, ob Sie Daten-Pipelines aufbauen, Prognosemodelle entwerfen oder auf diesen Daten basierende Anwendungen entwickeln.
Die Top-Kombination von Snowflake und AWS richtet sich an alle Kunden, die ihre Daten nutzen und verarbeiten möchten. In diesem Artikel konzentrieren wir uns insbesondere auf relevante Anwendungsfälle für drei Profile: „Data Engineers“, „Data Scientists“ und „Application Developers“. Wir haben uns auch entschieden, einige unserer Favoriten hervorzuheben. Diese Favoriten sind echte Beispiele dafür, wie unsere Kunden Snowflake- und AWS-Services kombinieren und integrieren, um ihren Geschäftsanforderungen gerecht zu werden.
Data Engineers: Erfassung, Speicherung und Transformation von Daten
Um die benötigten Daten zu sammeln, können sich Data Engineers auf Amazon Kinesis, Amazon Managed Streaming for Apache Kafka (MSK) in Verbindung mit Snowpipe [extern] und dem neuen Snowpipe Streaming [extern] für die kontinuierliche Erfassung verlassen, aber auch Amazon Appflow zur Synchronisation von SaaS-Anwendungen verwenden. Es ist auch möglich, Daten von Drittanbietern über Snowflake Secure Data Sharing [extern] nativ zu integrieren, um Unternehmensdaten anzureichern.
Um die auf diese Weise gesammelten Daten zu speichern, können Data Engineers zwischen dem internen Speicher von Snowflake [extern] oder auf Amazon S3 über das Apache Iceberg-Tabellenformat (in Kürze verfügbar) wählen.
Iceberg ist ein plattformübergreifender Open-Source-Standard, der auf Amazon S3 gespeicherte Datendateien (im Parquet-, Avro- oder ORC-Format) mit dessen Metadaten ergänzt und so die vollständige Interoperabilität von Snowflake mit Amazon Athena, Amazon EMR und AWS Glue, aber auch Apache Spark, Apache Flink, Apache Hive, Presto usw. ermöglicht.
Um Daten zu transformieren und Daten aufzubereiten, verwenden unsere Kunden ein ELT-Design (Extract, Load & Transform), Pipelines mit Transformationen in SQL oder Python, die von einer mehrsprachigen und leistungsstarken Engine ausgeführt werden, um Datenübertragungen zu minimieren und von der bestmöglichen Leistung zu profitieren.
Die Dynamischen Tabellen [extern] von Snowflake und der kombinierte Einsatz von DBT mit Amazon Managed Workflows for Apache Airflow (MWAA) ermöglichen beispielsweise die Implementierung eines solchen Ansatzes und vereinfachen gleichzeitig die Pipeline-Orchestrierung.
Schließlich kann Snowflake mit AWS Glue und Amazon EMR verbunden werden.
Unser „kleiner Favorit“: Ein konkretes Beispiel für eine robuste Echtzeit-Pipeline, die in wenigen Minuten einfach zu instanziieren ist:
SaaS-Anwendungen spielen eine immer wichtigere Rolle in den Datenbeständen von Unternehmen. Es ist wichtig, sie einfach mit der Datenplattform synchronisieren zu können. Dies ermöglicht Amazon AppFlow mit Snowflake mit nur wenigen Klicks. ❶
Moderne Datenpipelines ermöglichen die Aufnahme und Verarbeitung von Daten in Echtzeit. Amazon MSK ist eine vollständig verwaltete Implementierung des Open-Source-Standards für Echtzeit-Streaming-Plattformen: Apache Kafka [EN, extern]. Der native Snowflake-Konnektor für Kafka [extern] ermöglicht das direkte Streamen von Daten in Snowflake über Snowpipe Streaming [extern] mit einer geringen Latenz von nur wenigen Sekunden. ❷
Schließlich ermöglicht Snowflake Secure Data Sharing [extern] die sichere und schreibgeschützte gemeinsame Nutzung von Objekten (Tabellen, Ansichten, Funktionen usw.) zwischen einem Lieferantenkonto und einem Verbraucherkonto. Dieser direkte und kopierfreie Zugriff ermöglicht es somit, die Pipeline mit Live- und Qualitätsdaten anzureichern, insbesondere über den Snowflake Marketplace [EN, extern]. ❸
Sobald das Rohmaterial auf diese Weise gewonnen wurde, ist es sehr einfach, deklarative Datenpipelines mit Snowflake Dynamic Tables zu erstellen. Die durchzuführenden Transformationen und die erwartete Aktualität werden einfach in der DDL dieser Tabellen deklariert, die verknüpft werden können. ❹
Data Scientists: Modellierung von Geschäftsereignissen im Unternehmen
Die Nutzung von ML-Lösungen erfordert im Allgemeinen eine große Infrastruktur, eine Vielzahl von Softwarepaketen und ein Team hochqualifizierter Ingenieure.
Die Allianz zwischen Snowflake [extern] und Amazon SageMaker bietet Data Scientists eine breite Palette von Werkzeugen und Mechanismen, um den gesamten Lebenszyklus eines ML-Modells abzudecken.
Neben Unternehmensdaten, die das wichtigste Kapital darstellen, ist es üblich, Daten von Drittanbietern und öffentlichen Daten zu erwerben, um Analysen zu bereichern. Dank des Snowflake Marketplace [EN, extern] und des AWS Data Exchange ist dies mit nur wenigen Klicks möglich.
Sobald die Daten erfasst sind, besteht der erste Schritt darin, sie zu analysieren, zu bereinigen und für die weitere Verarbeitung vorzubereiten. Dieser wichtige erste Schritt, auch „Feature Engineering“ genannt, besteht darin, die wesentlichen Merkmale der Rohdaten zu extrahieren. Es ist besonders wichtig, um zu einem leistungsfähigen und entwicklungsfähigen Modell zu gelangen.
Sagemaker Data Wrangler, das Snowflake nativ als Datenquelle unterstützt, vereinfacht diese Vorgänge.
Um die Erstellung von ML-Prototypen zu beschleunigen und so die „Time-to-Market“ eines Datenprodukts zu verbessern, ist es möglich, die AutoML-Funktionen von Amazon SageMaker Autopilot direkt in SQL von Snowflake aufzurufen, um Modelle automatisch auszuwählen und zu optimieren.
Amazon Sagemaker Studio ermöglicht es Ihnen, die Auswahl der Algorithmen, das Datenvolumen und die damit verbundene Rechenleistung zu kontrollieren, um ML-Modelle anzupassen. Snowflake-Kunden verwenden in der Regel Snowpark [extern]-Bibliotheken in Amazon Sagemaker Notebooks, um Datenübertragungen zu minimieren und die bestmögliche Leistung zu erzielen.
Unser „kleiner Favorit“: Ein konkretes Beispiel für eine einfache und skalierbare datenzentrierte KI
Datenzentrierte KI [EN, extern], wie Andrew Ng, ein Pionier des maschinellen Lernens und seit über 20 Jahren Professor an der Stanford University, beschreibt, ist „die Disziplin der systematischen Verbesserung der Daten, die zum Aufbau eines KI-Systems verwendet werden“.
Ein datenzentriertes KI-System konzentriert sich also eher auf Daten als auf Code [EN, extern].
Dank der Tausenden von Datensätzen, die auf dem Snowflake Marketplace [EN, extern] verfügbar sind, kann der Feature-Store sehr schnell mit qualifizierten und relevanten Daten angereichert werden. ❶
Für das Feature-Engineering ermöglicht SageMaker Data Wrangler, das nativ und direkt mit Snowflake verbunden ist, die visuelle Erkundung und Transformation von Daten, ohne eine einzige Codezeile schreiben zu müssen. ❷
Um die iterativen Aufgaben der Auswahl von Algorithmen und der Validierung des Modells zu vermeiden, ermöglichen die von Amazon SageMaker Autopilot for Snowflake [EN, extern] bereitgestellten AutoML-Funktionen, Modelle direkt von Snowflake aus zu erstellen, zu trainieren und anzupassen. ❸
Mit der folgenden SQL-Abfrage wird beispielsweise anhand einer Reihe von Kundenprofildaten in Snowflake ein Modell generiert, das für die Vorhersage der Kundenabwanderung optimiert ist.
Amazon Sagemaker Studio Lab ist eine kostenlose, vollständig verwaltete Alternative zum Open-Source-JupyterLab-Standard. Verwenden Sie dann einfach die Snowpark DataFrame-API [extern] in den Notebooks, sodass die Berechnungen direkt auf Snowflake stattfinden. ❹
Application Developers: ein konkretes Beispiel für die Erstellung von Anwendungen… ganz einfach!
Mit nativen Konnektoren [extern] für Java [extern], Python [extern], Node.js [extern], .NET [extern] und Go [extern] bietet Snowflake Schnittstellen für die Entwicklung von Anwendungen in Ihrem bevorzugten Ökosystem.
Dies macht Application Developers leicht, ihre in Snowflake gespeicherten Daten zu bearbeiten. Als Reaktion auf das Feedback der Application Developers kündigte Snowflake kürzlich eine Optimierung des Python-Konnektors [EN, extern] an, wodurch die Größe der zugehörigen ausführbaren AWS Lambda-Dateien erheblich reduziert wurde.
Wenn Sie eine Sprache verwenden, die keinen nativen Konnektor hat, unterstützt Snowflake ODBC [EN, extern]– und JDBC [EN, extern]-Protokolle, die eine einheitliche Syntax für die Schnittstelle mit Ihren Daten standardisieren.
Darüber hinaus kündigte Snowflake kürzlich die Unterstützung für ADBC an [EN, extern]: das Arrow Database Connectivity-Projekt [EN, extern] der Apache Foundation. Dieser neue Standard [EN, extern], der für analytische Abfragen optimiert ist, verbessert die Leistung bei Sprachen wie Rust, R und Ruby erheblich.
Externe Snowflake-Funktionen [extern] sind benutzerdefinierte Funktionen, die außerhalb von Snowflake gespeichert und ausgeführt werden. Dies macht es einfach, Lambda-Funktionen aufzurufen, um die Unterstützung für jeden anderen benutzerdefinierten Code zu aktivieren, der außerhalb von Snowflake ausgeführt wird.
Um die Erstellung und Bereitstellung Ihrer Webanwendungen zu erleichtern, bietet Snowflake Streamlit [EN, extern], ein Open-Source-Framework für die schnelle Entwicklung von Anwendungen in Python. Es vereinfacht die Erstellung interaktiver Dashboards, dynamischer prädiktiver Analysen, Eingabeschnittstellen und vieler anderer Anwendungen, wie die unzähligen Beispiele in der Streamlit-Galerie [EN, extern] zeigen.
Zusätzlich zu der Open-Source-Version, die Sie auf einer Amazon Elastic Cloud Compute (EC2)-Instanz hosten können, bietet Snowflake eine vollständig verwaltete Version: Streamlit in Snowflake [extern].
Unser „kleiner Favorit“: Eine agile und skalierbare Entwicklungsumgebung
In allen gängigen Sprachen können Sie eine Verbindung zu Snowflake herstellen, um Daten mithilfe von Snowflake-Konnektoren [extern] direkt in Ihrer Anwendung zu bearbeiten.❶
Wenn Python Ihre bevorzugte Sprache ist, können Sie Ihre Anwendung direkt in Streamlit [extern] entwickeln und hosten, um die Vorteile der nativen und nahtlosen Integration mit Snowflake zu nutzen. ❷
Sie können sich auch dafür entscheiden, Snowflake in eine bestehende Anwendung zu integrieren, indem Sie Ihren Code in AWS hosten. ❸
Da Java, Python, Node.js und C# von AWS Lambda unterstützt werden, können Sie von Ihren Funktionen aus direkt auf Ihre in Snowflake gespeicherten Daten zugreifen und diese bearbeiten, indem Sie Snowflake-Bibliotheken importieren.
In diesem gemeinsam mit Snowflake verfassten Artikel haben wir gesehen, wie Data Engineers, Data Scientists and Application Developers die Vorteile der Integration zwischen AWS und Snowflake nutzen können, um:
- Daten zu erfassen, speichern und transformieren
- Geschäftsereignisse im Unternehmen zu modellieren
- Anwendungen zu erstellen… ganz einfach!
Um noch weiter zu gehen, starten Sie jetzt Ihre kostenlose Snowflake-Testversion [EN, extern] und schauen Sie sich die verfügbaren Ressourcen an:
- Snowflake-Dokumentation [EN, extern]
- Tech-Blog zu Snowflake [EN, extern]
- Snowflake-Entwicklerportal [EN, extern]
- YouTube-Kanal für Snowflake-Entwickler [EN, extern]
- Snowflake-Schnellstarts [EN, extern]
AWS organisiert Online- und Präsenzveranstaltungen und bringt die Cloud-Computing-Community zusammen, sodass Sie Kontakte knüpfen, zusammenarbeiten und von Fachkundigen lernen können. Ganz gleich, ob Sie Teil eines Design- oder Entwicklungsteams sind, hier finden Sie bevorstehende AWS-Veranstaltungen sowie alle Schulungen und Zertifizierungen, die für Sie verfügbar sind.
Sie können sich auch gerne an den Vertriebs-Support der AWS-Teams wenden.
Über die Autoren
Nicolas Lerose ist Sales Engineering Manager bei Snowflake. Als leidenschaftlicher Datenliebhaber unterstützt er seit über 16 Jahren seine Kunden bei der Implementierung von analytischen Lösungen, die auf ihre Bedürfnisse zugeschnitten sind. | |
Olivier Leplus ist Developer Advocate bei AWS. Als leidenschaftlicher Dev ist er immer auf der Suche nach einfachen und effektiven Lösungen, um Daten für seine Anwendungen zu nutzen. |