:quality(80)/images.vogel.de/vogelonline/bdb/1883400/1883452/original.jpg)
Tools und Workflows zur Datenspeicherung in der Cloud, Teil 4 Data-Ingest mit AWS Kinesis Data Firehose
Im Rahmen einer Data-Lake-Strategie sind mehrere Möglichkeiten vorstellbar, wie die zu verarbeitenden Daten nach AWS S3 gelangen. Soll oder muss dies in Echtzeit erfolgen, ist eine verwaltete Streaming-Lösung wie AWS Kinesis eine gute Wahl. Dann muss nur noch die Frage beantwortet werden, wie man die Daten mit einem Index versieht.
Anbieter zum Thema

In den folgenden Demonstrationen setzen wir einige der grundlegenden Services zum Erstellen eines serverlosen Data Lake in AWS auf. Zur Erinnerung: per Definition ermöglicht eine Data-Lake-Lösung in der Cloud eine kontinuierliche und skalierbare Datenaufnahme und Speicherung.
Gleichzeitig bietet der Data Lake einen Katalog/Index von Metadaten in einer permanenten Datenbank als Startpunkt für die nachgelagerte Verarbeitung. In Summe entsteht daraus eine vollständige Datenanalyse-Lösung. Der Data Lake stellt dabei drei Kernfunktions-Ebenen „Ingest“, „Speicherung/Lagerung“ sowie „Index und Suche“ bereit.
AWS Kinesis Data Firehose
Ein möglicher Ansatz des Baukasten-Prinzips von AWS besteht darin, für den Datenaufnahme-Layer Amazon Kinesis Data Firehose bzw. einen Firehose-Delivery-Stream zu verwenden. AWS Kinesis Data Firehose stellt Nutzern eine zuverlässige Methode zum Laden von Stream-Daten in einen Datenspeicher wie S3 und bei Bedarf zusätzliche Analyse-Tools zur Verfügung.
Der Dienst zeichnet Streaming-Daten auf, wandelt sie um und lädt sie wahlweise nach S3, Amazon Redshift, Amazon Elasticsearch Service oder Splunk (extern). Dies ermöglicht nachgelagerte Analysen mit vorhandenen Business-Intelligence-Tools und -Dashboards wie z. B. Elasticsearch mit Kibana.
Firehose und S3
Schicht 1 unseres Data Lake besteht aus Kinesis Firehose und S3. Dazu benötigen wir ein S3-Bucket für unseren Data Lake, der in der Management Console schnellt erstellt ist. Als nächstes benötigen wir einen Kinesis Firehose Delivery Stream. Ruft man die Kinesis Console zum ersten Mal auf, kann man mit der Schaltfläche „Create delivery stream“ einen passenden Assistenten starten.
Dieser leitet in vier Schritten durch die Konfiguration des Delivery Streams, wobei wir nach Eingabe eines „Delivery stream name“ im Schritt 1 für alle weiteren Einstellungen bis Schritt 3 im Wesentlichen die Voreinstellungen übernehmen und jeweils auf „Next“ klicken.
Das bedeutet im Schritt 1, dass „Source“ auf „Direct PUT or other sources“ steht, um Records über die Firehose-PUT-API zu senden, und dass im Schritt 2 „Process records“ keine weitere Transformation der Records erfolgt („Record transformation“ = Disabled, „Record format conversion“ = Disabled). Erst im Schritt 3 „Choose destination“ verweisen wir auf das oben erstellte S3-Bucket. AWS Firehose unterstützt alternativ aber auch „Amazon Redshift“, „Amazon Elasticsearch Service“ oder „Splunk“.
Im Schritt 4 „Configure settings“ konfigurieren wir schließlich noch eine Puffer-Bedingung, in diesem Fall ein „Buffer intervall“ von 60 Sekunden. Die S3-Pufferbedingungen steuern, wann Kinesis Daten an das Ziel liefert, d. h. wir müssen Firehose so konfigurieren, dass Daten innerhalb von 60 Sekunden nach dem Eintreffen von Daten bereitgestellt werden. Schließlich wählen wir am Fuß der Seite noch die Option, eine passende IAM-Rolle für Firehose automatisch erstellen zu lassen. Dazu genügt ein Klick auf den gleichnamigen Button. Nach Eingabe eines Rollen-Namens und dem Klick auf „Erlauben“ kehrt die GUI der IAM-Konsole automatisch zum Firehose-Assistenten zurück.
Nach der obligatorischen Anzeige der Zusammenfassung und einem Klick auf „Create delivery stream“ wird der Stream erstellt und ist im „Firehose delivery streams“-Dashboard sichtbar, wie in der letzten Abbildung zu sehen ist.
(ID:45679167)