Allgemeines und Konzepte von Streaming ETL

F: Was ist Streaming ETL?

Streaming ETL ist die Verarbeitung und Verschiebung von Echtzeitdaten von einem Ort an einen anderen. „ETL“ ist die Abkürzung der Datenbankfunktionen Extrahieren, Transformieren und Laden. „Extrahieren“ bezieht sich auf das Erfassen der Daten von einer Quelle. „Transformieren“ bezieht sich auf jegliche Verarbeitungen dieser Daten. „Laden“ bezieht sich auf das Senden der verarbeiteten Daten an einen Zielort, wie ein Warehouse, ein Data Lake oder ein Analysetool.

F: Was ist Amazon Data Firehose?

Data Firehose ist eine Streaming-ETL-Lösung. Dies ist die einfachste Methode zum Laden von Streaming-Daten in Datenspeicher und Analytik-Tools. Sie kann Streaming-Daten erfassen, umwandeln und in Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Snowflake und Splunk laden. Auf diese Weise ermöglicht sie nahezu Echtzeit-Analysen mit vorhandenen Business Intelligence Tools und Dashboards, die Sie bereits heute verwenden. Es handelt sich um einen vollständig verwalteten Service, der automatisch so skaliert wird, dass er mit dem Durchsatz Ihrer Daten übereinstimmt und keine weitere Verwaltung erfordert. Er kann die Daten vor dem Laden auch in Batches unterteilen, komprimieren und verschlüsseln, um den am Zielort verwendeten Speicherplatz zu minimieren und die Sicherheit zu erhöhen.

F: Was ist eine Quelle in Firehose?

Eine Quelle ist der Ort, an dem Ihre Streaming-Daten kontinuierlich generiert und erfasst werden. Eine Quelle kann z. B. ein Protokollierungsserver sein, der auf Amazon-EC2-Instances ausgeführt wird, eine Anwendung, die auf einem Mobilgerät ausgeführt wird, oder ein Sensor auf einem IoT-Gerät. Sie können Ihre Quellen mit Firehose verbinden, indem Sie 1) die Amazon-Data-Firehose-API verwenden, die das AWS SDK für Java, .NET, Node.js, Python oder Ruby nutzt. 2) Kinesis Data Stream, wobei Firehose Daten einfach aus einem vorhandenen Kinesis Data Stream gelesen und in Firehose-Ziele geladen wird. 3) Amazon MSK, wobei Firehose die Daten einfach aus einem bestehenden Amazon-MSK-Cluster liest und in Amazon-S3-Buckets lädt. 4) AWS unterstützt Services wie AWS Cloudwatch, AWS EventBridge, AWS IOT oder AWS Pinpoint nativ. Eine vollständige Liste finden Sie im Entwicklerhandbuch von Amazon Data Firehose. 5) Kinesis Agents, welche eine eigenständige Java-Softwareanwendung ist, die laufend eine Reihe von Dateien überwacht und neue Daten an Ihren Stream sendet. 6) Fluentbit, ein Open-Source-Log-Processor und Forwarder. 7) AWS Lambda, ein Serverless-Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen und verwalten zu müssen. Sie können Ihre Lambda-Funktion schreiben und basierend auf einem ausgelösten Ereignis Verkehr von S3 oder DynamoDB an Firehose senden.

F: Was ist ein Reiseziel in Firehose?

Ein Ziel ist der Datenspeicher, an den Ihre Daten geliefert werden. Firehose unterstützt derzeit Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Splunk, Datadog, NewRelic, Dynatrace, Sumo Logic, LogicMonitor, MongoDB und HTTP End Point als Ziele.

F: Was verwaltet Firehose in meinem Namen?

Data Firehose verwaltet die gesamte grundlegende Infrastruktur, den Speicher, das Netzwerk und die Konfiguration, die zum Erfassen und Laden Ihrer Daten in Amazon S3, Amazon Redshift, Amazon OpenSearch Service oder Splunk erforderlich sind. Sie müssen sich keine Gedanken über Bereitstellung, laufende Wartung von Hardware, Software machen oder andere Anwendungen zur Verwaltung dieses Prozesses schreiben. Data Firehose skaliert auch elastisch ohne weiteres Zutun und erfordert keinerlei Entwickleraufwand in diesem Zusammenhang. Außerdem repliziert Data Firehose synchron Daten an drei Standorten einer AWS-Region und erzielt so eine hohe Verfügbarkeit und Beständigkeit für die Daten während des Transports zu diesen Zielen.

F: Wie verwende ich Firehose?

Nachdem Sie sich bei Amazon Web Services angemeldet haben, können Sie Firehose mit den folgenden Schritten verwenden:

  • Erstellen Sie einen Firehose-Stream über die Firehose-Konsole oder mit dem Vorgang CreateDeliveryStream. Sie können optional eine AWS Lambda-Funktion in Ihren Firehose-Stream integrieren, um die Rohdaten vor dem Laden der Daten vorzubereiten und umzuwandeln.
  • Konfigurieren Sie Ihre Datenproduzenten so, dass sie über den Amazon Kinesis Agent oder die Firehose-API kontinuierlich Daten an Ihren Firehose-Stream senden.
  • Firehose lädt Ihre Daten automatisch und kontinuierlich zu den von Ihnen angegebenen Zielen.

F: Was ist ein Firehose-Stream in Firehose?

Ein Firehose-Stream ist die zugrunde liegende Einheit von Firehose. Sie verwenden Firehose, indem Sie einen Firehose-Stream erstellen und dann Daten dorthin senden. Sie können einen Firehose-Stream über die Firehose-Konsole oder mit dem Vorgang CreateDeliveryStream erstellen. Weitere Informationen finden Sie unter Erstellen eines Firehose-Streams.

F: Was ist ein Datensatz in Firehose?

Bei einem Datensatz handelt es sich um die gewünschten Daten, die Ihr Datenproduzent an einen Firehose-Stream sendet. Die maximale Größe eines Datensatzes (bevor Base64-Kodierung) beträgt 1 024 KB, wenn Ihre Datenquelle Direct PUT oder Kinesis Data Streams ist. Die maximale Größe eines Datensatzes (bevor Base64-Kodierung) beträgt 10 MB, wenn Ihre Datenquelle Amazon MSK ist.

F: Was sind die Grenzen von Firehose?

Informationen zu Limits finden Sie im Entwicklerhandbuch unter Amazon Data Firehose Limits.

Datenquellen

F: Welche Programmiersprachen oder Plattformen kann ich verwenden, um auf die Firehose-API zuzugreifen?

Die Firehose-API ist in den Amazon Web Services-SDKs verfügbar. Eine Liste der Programmiersprachen oder Plattformen für die Amazon Web Services SDKs finden Sie unter Tools für Amazon Web Services.

F: Was ist Amazon Kinesis Agent?

Kinesis Agent ist eine fertige Java-Anwendung, die eine einfache Methode zur Erfassung von Daten und zum Senden dieser Daten in Ihren Firehose-Stream bietet. Sie können den Agenten in Serverumgebungen auf Linux-Basis, auf Protokollservern und Datenbankservern installieren. Der Kundendienstmitarbeiter überwacht bestimmte Dateien und sendet fortlaufend Daten in Ihren Firehose-Stream. Amazon Kinesis Agent unterstützt derzeit Amazon Linux, Red Hat Enterprise Linux und Microsoft Windows. Weitere Informationen finden Sie unter Schreiben Sie mit Kundendienstmitarbeitern.

F: Wo bekomme ich Amazon Kinesis Agent?

Sie können Kinesis Agent mit dem folgenden Befehl und Link herunterladen und installieren:

  • Auf Amazon Linux: sudo yum install –y aws-kinesis-agent
  • Auf Red Hat Enterprise Linux: sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm
  • Aus GitHub: awlabs/amazon-kinesis-agent
  • In Windows: https://docs.aws.amazon.com/kinesis-agent-windows/latest/userguide/getting-started.html#getting-started-installation

F: Worin besteht der Unterschied zwischen den Vorgängen PutRecord und PutRecordBatch?

Sie können einem Firehose-Stream über Kinesis Agent oder über die Firehose-Vorgänge PutRecord und PutRecordBatch hinzufügen. Mit dem Vorgang PutRecord ist ein einzelner Datensatz in einem API-Aufruf möglich; der Vorgang PutRecordBatch lässt mehrere Datensätze in einem API-Aufruf zu. Weitere Informationen finden Sie unter PutRecord und PutRecordBatch.

F: Wie füge ich meinem Firehose-Stream Daten von meinem Amazon MSK hinzu?

Wenn Sie Ihren Firehose-Stream über die AWS-Konsole oder die Firehose-APIs erstellen oder aktualisieren, können Sie ein/en Amazon-MSK-Cluster/Thema als Quelle Ihres Firehose-Stream konfigurieren. Einmal konfiguriert, liest Firehose automatisch Daten aus Ihrem MSK-Thema und lädt die Daten in den/die angegebenen S3-Bucket(s).

F: Was sind die wichtigsten Vorteile der Integration von Amazon MSK und Firehose?

Sie können die Komplexität des Anwendungsbetriebs und den Overhead reduzieren, indem Sie Streaming-Daten aus Ihren Amazon-MSK-Themen in Amazon S3 transformieren und laden, ohne dass Code erforderlich ist. Mit Amazon MSK und Firehose erhalten Sie beispielsweise keinen Code, sondern integrierte Datenkonvertierungs- und -umwandlungsfunktionen wie Parquet/ORC-Formatkonvertierung, Datenpufferung und serviceseitige Datenvalidierung. Darüber hinaus erhalten Sie automatische Zustellversuche, Datenspeicherung, Auto Scaling und Redundanz, so dass die Daten zuverlässig zugestellt werden.

F: Welche Arten von Amazon-MSK-Endpunkten werden von Firehose unterstützt?

Um diese Funktion zu nutzen, müssen MSK-Cluster über öffentliche Endpunkte oder private Verbindungen verfügen.

F: Ist es möglich, Firehose mit einem Amazon-MSK-Cluster in einem anderen AWS-Konto zu verbinden?

Ja, Firehose kann eine Verbindung zu Amazon MSK-Clustern herstellen, die in verschiedenen AWS-Konten verfügbar sind. Firehose kann auch an S3-Buckets liefern, die zu unterschiedlichen Konten gehören.

F: Was ist die Prüfpunktzeit, um mit der Datennutzung aus dem Amazon-MSK-Thema zu beginnen?

Die Prüfpunktzeit für den Beginn der Datennutzung aus dem Amazon-MSK-Thema ist die Erstellungszeit des Firehose-Streams. Firehose liest nicht aus benutzerdefinierten Offset-Werten.

F: Wie füge ich meinem Firehose-Stream aus meinem Kinesis-Datenstrom Daten hinzu?

Wenn Sie Ihren Firehose-Stream über die AWS-Konsole oder die Firehose-APIs erstellen oder aktualisieren, können Sie einen Firehose-Stream als Quelle Ihres Firehose-Stream konfigurieren. Nach der Konfiguration liest Firehose automatisch Daten aus Ihrem Firehose-Stream und lädt sie an die angegebenen Ziele.

F: Wie oft liest Kinesis Firehose Daten aus meinem Kinesis-Stream?

Firehose ruft Kinesis Data Streams GetRecords() für jeden Kinesis-Shard einmal pro Sekunde auf.

F: Von wo liest Firehose Daten, wenn mein Kinesis-Datenstrom als Quelle meines Firehose-Stream konfiguriert ist?

Firehose liest Daten von der LETZTEN Position Ihres Kinesis-Datenstroms, wenn es als Quelle eines Firehose-Streams konfiguriert ist. Weitere Informationen über die Kinesis-Datenstromposition finden Sie unter GetShardIterator in der Kinesis Data Streams Service-API-Referenz.

F: Kann ich meinen Kinesis-Datenstrom als Quelle mehrerer Firehose-Streams konfigurieren?

Ja, das ist möglich. Bitte beachten Sie aber, dass der GetRecords()-Aufruf aus Firehose beim Gesamtdrossellimit Ihres Kinesis-Shard berücksichtigt wird. Sie müssen Ihren Firehose-Stream also mit Ihren anderen Kinesis-Anwendungen planen, um zu gewährleisten, dass es nicht zu einer Drosselung kommt. Weitere Informationen finden Sie im Kinesis Data Streams-Entwicklerhandbuch unter Kinesis Data Streams Limits.

F: Kann ich weiterhin Daten über Kinesis Agent oder die Vorgänge PutRecord und PutRecordBatch in Firehose dem Firehose-Stream hinzufügen, wenn mein Kinesis-Datenstrom als Quelle konfiguriert ist?

Nein, das ist nicht möglich. Ist ein Kinesis-Datenstrom als Quelle eines Firehose-Streams konfiguriert, werden die Vorgänge PutRecord und PutRecordBatch in Firehose deaktiviert. Stattdessen sollten Sie Daten mit den Kinesis-Datenstrom-Vorgängen PutRecord und PutRecords Ihrem Kinesis-Datenstrom hinzufügen.

F: Wie füge ich meinem Firehose-Stream aus AWS IoT Daten hinzu?

Sie können Ihrem Firehose-Stream aus AWS IoT Daten hinzufügen, indem Sie eine AWS IoT-Aktion erstellen, die Ereignisse an Ihren Firehose-Stream sendet. Für weitere Informationen: Siehe Schreiben in Amazon Data Firehose mithilfe von AWS IoT im Firehose-Entwicklerhandbuch.

F: Wie kann ich meine VPC-Flow-Protokolle zu Firehose streamen?

Wenn Sie Ihren Firehose-Stream über die AWS-Konsole oder die Firehose-APIs erstellen oder aktualisieren, können Sie Direct PUT als Quelle Ihres Firehose-Stream konfigurieren. Sobald der Firehose-Strom erstellt ist, können Sie ihn als Firehose-Stream konfigurieren in der Sektion Vended Logs der Konsole des VPC-Flow-Protokolls.

F: Wie füge ich meinem Firehose-Stream aus CloudWatch Logs Daten hinzu?

Sie können Ihrem Firehose-Stream aus CloudWatch Logs Daten hinzufügen, indem Sie einen CloudWatch-Protokoll-Abonnementfilter erstellen, der Ereignisse an Ihren Firehose-Stream sendet. Weitere Informationen finden Sie unter CloudWatch Logs Subscription Filter verwenden im Amazon CloudWatch-Benutzerhandbuch.

F: Wie füge ich meinem Firehose-Stream aus CloudWatch Events hinzu?

Sie können Daten über CloudWatch Events durch Erstellen einer CloudWatch-Events-Regel mit Ihrem Firehose-Stream als Ziel Ihrem Firehose-Stream hinzufügen. Weitere Informationen finden Sie unter Schreiben in Amazon Data Firehose mithilfe von CloudWatch Events im Firehose-Entwicklerhandbuch.

F: Wie füge ich meinem Amazon-Data-Firehose-Stream Daten aus AWS Eventbridge hinzu?

Sie fügen Ihrem Firehose-Stream Daten von der AWS-EventBridge-Konsole aus hinzu. Weitere Informationen finden Sie in der Dokumentation zu AWS EventBridge.

F: Welche Art von Verschlüsselung kann ich verwenden?

Bei Firehose können Sie Ihre Daten verschlüsseln, nachdem sie an Ihren Amazon S3-Bucket geliefert wurden. Wenn Sie Ihren Firehose-Stream erstellen, können Sie Ihre Daten mit einem AWS Key Management Service (KMS) verschlüsseln, den Sie bereits besitzen. Weitere Informationen über KMS finden Sie unter AWS Key Management Service.

F: Welche IAM-Rolle muss ich angeben, wenn ich einen Firehose-Stream einrichte?

Firehose übernimmt die von Ihnen angegebene IAM-Rolle für den Zugriff auf Ressourcen wie Ihren Amazon S3 Bucket und Ihre Amazon-OpenSearch-Domäne. Weitere Informationen finden Sie im Entwicklerhandbuch von Firehose unter Zugriffskontrolle Firehose.

Datentransformation und Formatkonvertierung

F: Wie bereite ich Daten in Firehose vor und wandle sie um?

Firehose unterstützt integrierte Datenformatkonvertierung von Rohdaten oder JSON in Formate wie Apache Parquet and Apache ORC umwandeln, die von Ihren Zieldatenspeichern verlangt werden, ohne eigene Datenverarbeitungs-Pipelines zu erstellen. Mit Firehose können Sie Ihre Streamingdaten auch dynamisch partitionieren, bevor Sie sie an S3 liefern, indem Sie statische oder dynamisch definierte Schlüssel wie „customer_id” oder „transaction_id” verwenden. Firehose gruppiert Daten nach diesen Schlüsseln und liefert sie in für die Schlüssel einmalige S3-Präfixe, damit Sie leichter leistungsstarke, kostengünstige Analytik in S3 mit Athena, EMR und Redshift Spectrum durchführen können.

Neben der integrierten Option der Formatkonvertierung in Amazon Data Firehose können Sie eine AWS Lambda-Funktion für die Vorbereitung und Umwandlung eingehender Rohdaten in Ihrem Firehose-Stream zu verwenden, bevor diese an ihre Ziele geladen werden. Sie können eine AWS Lambda-Funktion für die Datenumwandlung konfigurieren, wenn Sie einen neuen Firehose-Stream erstellen oder einen vorhandenen Firehose-Stream bearbeiten. Amazon hat mehrere Lambda-Blaupausen erstellt, aus denen Sie für Ihren Schnellstart wählen können. Eine vollständige Liste finden Sie im Entwicklerhandbuch von Amazon Data Firehose.

F: Welches Komprimierungsformat kann ich verwenden?

Mit Amazon Data Firehose können Sie Ihre Daten vor der Lieferung an Amazon S3 komprimieren. Der Service unterstützt aktuelle die Komprimierungsformate GZIP, ZIP und SNAPPY. Wenn die Daten weiter in Amazon Redshift geladen werden, wird nur GZIP unterstützt.

F: Wie funktioniert die Komprimierung, wenn ich die Abonnementfunktion in CloudWatch-Protokollen nutze?

Sie können die Abonnementfunktion in CloudWatch Logs nutzen, um Daten von CloudWatch Logs zu Firehose zu streamen. Sämtliche Ereignisprotokolle von CloudWatch-Protokollen sind bereits in das gzip-Format komprimiert worden. Darum sollten Sie die Komprimierungskonfiguration in Firehose unkomprimiert belassen, um eine doppelte Komprimierung zu vermeiden. Weitere Informationen zur Abonnementfunktion für CloudWatch Logs finden Sie im Amazon CloudWatch Logs Benutzerhandbuch unter Abonnementfilter mit Amazon Data Firehose.

F: Wie gebe ich vorbereitete und umgewandelte Daten von meiner AWS Lambda-Funktion zurück an Amazon Data Firehose?

Alle umgewandelten Datensätze von Lambda müssen mit folgenden drei Parametern zu Firehose zurückgegeben werden; ansonsten wird Firehose die Datensätze ablehnen und sie als Datenumwandlungsfehler behandeln.

  • recordId: Firehose gibt eine recordId zusammen mit jedem Datensatz an Lambda während des Aufrufs weiter. Jeder umgewandelte Datensatz sollte mit genau derselben recordId zurückgegeben werden. Jede Abweichung zwischen der ursprünglichen recordId und der zurückgegebenen recordId wird als Datenumwandlungsfehler behandelt.
  • result: Der Status des Umwandlungsergebnisses jedes Datensatzes. Folgende Werte sind für diesen Parameter zulässig: "Ok", wenn der Datensatz erfolgreich und wie erwartet umgewandelt wurde. "Dropped", wenn Ihre Verarbeitungslogik den Datensatz wie erwartet beabsichtigt verwirft. "ProcessingFailed", wenn der Datensatz nicht wie erwartet umgewandelt werden kann. Firehose behandelt zurückgegebene Datensätze mit Status "Ok" und "Dropped" als erfolgreich verarbeitete Datensätze und diejenigen mit Status "ProcessingFailed" als nicht erfolgreich verarbeitete Datensätze, wenn es die Metriken SucceedProcessing.Records und SucceedProcessing.Bytes generiert.
  • data: Die Nutzlast der umgewandelten Daten nach based64-Codierung.

F: Was ist Fehlerprotokollierung?

Wenn Sie Datenumwandlung mit Lambda aktivieren, kann Firehose alle Lambda-Aufruf- und Datenbereitstellungsfehler an Amazon CloudWatch Logs melden, sodass Sie die spezifischen Fehlerprotokolle anzeigen können, wenn die Lambda-Aufruf- oder Datenbereitstellung fehlschlägt. Weitere Informationen finden Sie unter Monitoring with Amazon CloudWatch Logs.

F: Was ist eine Quelldatensatzsicherung?

Wenn Sie Datenumwandlung mit Lambda verwenden, können Sie Quelldatensatzsicherung aktivieren, sodass Amazon Data Firehose die nicht umgewandelten Daten in einem separaten S3-Bucket bereitstellen wird. Sie können angeben, dass ein zusätzliches Präfix vor dem UTC-Zeitpräfix „YYYY/MM/DD/HH“ hinzugefügt wird, das von Firehose generiert wird.

Integrierte Datentransformation für Amazon S3

F: Wann sollte ich die Firehose dynamische Partitionierung verwenden?

Die Firehose dynamische Partitionierung beseitigt die Komplexität und die Verzögerung einer manuellen Partitionierung an der Quelle oder nach dem Speichern der Daten. Dadurch wird eine schnellere Analyse bei der Abfrage optimierter Datensätze ermöglicht. Datensätze sind somit direkt für Analysetools verfügbar, die ihre Abfragen effizient ausführen können, und es wird eine präzisere Zugriffskontrolle auf die Daten erreicht. So können beispielsweise Marketingautomatisierungkunden Daten spontan nach Kunden-ID partitionieren, wodurch kundenspezifische Abfragen zur Abfrage optimierter Datensätze und schnellerer Lieferung von Ergebnissen ermöglicht werden. IT-Operations- oder Sicherheitsüberwachungskunden können Gruppierungen basierend auf in Protokollen eingebetteten Ereignis-Zeitstempeln erstellen, damit sie optimierte Datensätze abfragen und schneller Ergebnisse erhalten können. Durch diese Funktion, zusammen mit der bestehenden Konvertierungsfunktion von JSON- in Parquet-Format in Amazon Data Firehose, ist Amazon Data Firehose die ideale Streaming-ETL-Option für S3.

F: Wie richte ich dynamische Partitionierung mit Firehose ein?

Sie können die Firehose dynamische Partitionierung über die AWS-Managementkonsole, CLIs oder SDKs einrichten. Wenn Sie einen Firehose-Stream einrichten oder aktualisieren, wählen Sie „Amazon S3“ als Bereitstellungsziel für den Firehose-Stream aus und aktivieren Sie die dynamische Partitionierung. Sie können Schlüssel angeben oder einen Ausdruck erstellen, der zur Laufzeit beurteilt wird, um die für die Partitionierung verwendeten Schlüssel zu definieren. Sie können zum Beispiel ein Datenfeld im eingehenden Strom auswählen, wie die Kunden-ID, und einen S3-Präfixausdruck definieren, wie customer_id=!{partitionKey:customer_id}/. Dieser wird während der Laufzeit basierend auf den erfassten Datensätzen beurteilt, um zu definieren, an welchen S3-Präfix die Datensätze geliefert werden.

F: Was für Transformationen und Datenverarbeitung kann ich mit dynamischer Partitionierung und Partitionierungsschlüsseln durchführen?

Firehose unterstützt sofort Parquet-/ORC-Konversion, wenn Sie Ihre Daten an Amazon S3 schreiben. Firehose lässt sich auch mit einer Lambda-Funktion integrieren, damit Sie Ihren eigenen Transformationscode schreiben können. Firehose bietet außerdem integrierte Unterstützung beim Extrahieren von wichtigen Datenfeldern aus Datensätzen im JSON-Format. Firehose unterstützt auch die JQ-Parsingsprache, um Transformation in diese Partitionsschlüssel zu ermöglichen. Weitere Informationen finden Sie im Firehose-Entwicklerhandbuch.

Datenbereitstellung und Ziele

F: Kann ich eine Kopie aller Rohdaten in meinem S3-Bucket aufbewahren?

Ja, Firehose kann alle nicht umgewandelten Datensätze in Ihren S3-Bucket sichern, während die umgewandelten Datensätze zum Ziel gelangen. Quelldatensatzsicherung kann aktiviert werden, wenn Sie Ihren Firehose-Stream erstellen oder aktualisieren.

F: Wie häufig liefert Firehose Daten an meinen Amazon S3-Bucket?

Die Häufigkeit der Datenlieferung an Amazon S3 wird von der S3-Puffergröße und dem Pufferintervall bestimmt, die bzw. das Sie für den Firehose-Stream konfiguriert haben. Firehose puffert eingehende Daten, bevor diese an Amazon S3 geliefert werden. Sie können die Werte für die Größe des S3-Puffers (1 MB bis 128 MB) oder das Pufferintervall (60 bis 900 Sekunden) festlegen und angeben, unter welcher Bedingung die erste Datenlieferung an Amazon S3 ausgelöst wird. Wenn Sie Apache-Parquet- oder dynamische Partitionierung aktiviert haben, wird Ihre Puffergröße in MB angegeben und reicht von 64 MB bis 128 MB beim Ziel Amazon S3, wobei 128 MB der Standardwert ist. Wenn die Datenlieferung an das Ziel langsamer erfolgt, als Daten dem Firehose-Stream zugeführt werden, erhöht Kinesis Data Firehose die Puffergröße automatisch, um den Vorgang zu beschleunigen und sicherzustellen, dass alle Daten zum Ziel übertragen werden.

F: Wie wird die Puffergröße angewendet, wenn ich die Option zum Komprimieren der Daten wähle?

Die Puffergröße wird vor der Komprimierung angewendet. Das hat zur Folge, dass die Größe der Objekte in Ihrem Amazon-S3-Bucket kleiner sein kann als die von Ihnen angegebene Puffergröße, falls Sie die Komprimierung auswählen.

F: Über welche Berechtigung muss der Amazon-Redshift-Benutzer verfügen, den ich beim Einrichten eines Firehose-Streams angeben muss?

Der Redshift-Benutzer muss über die Redshift-Berechtigung INSERT verfügen, um Daten von Ihrem Amazon-S3-Bucket in Ihrer Redshift-Instance kopieren zu können.

F: Was muss ich tun, wenn mein Amazon-Redshift-Instance in einem VPC ist?

Wenn sich Ihre Redshift-Instance in einer VPC befindet, müssen Sie Amazon Data Firehose Zugriff auf Ihre Redshift-Instance gewähren, indem Sie die Blockierung der IP-Adressen von Firehose in Ihrer VPC aufheben. Informationen zum Aufheben der Blockierung von IPs in Ihrer VPC finden Sie im Entwicklerhandbuch von Amazon Data Firehose unter Grant Firehose Access to an Amazon Redshift Destination (Firehose Zugriff auf ein Amazon-Redshift-Ziel gewähren).

F: Warum brauche ich einen Amazon-S3-Bucket, wenn ich Amazon Redshift als Ziel wähle?

Für die Redshift-Ziele liefert Amazon Data Firehose zuerst Daten an Ihren Amazon-S3-Bucket und gibt dann den Redshift-Befehl COPY aus, um die Daten von Ihrem S3-Bucket in Ihre Redshift-Instance zu laden.

F: Ist es möglich, dass ein einzelner Firehose-Stream Daten an mehrere Snowflake-Tabellen liefert?

Derzeit kann ein einzelner Firehose-Stream nur Daten an eine Snowflake-Tabelle liefern. Um Daten an mehrere Snowflake-Tabellen bereitzustellen, müssen Sie mehrere Firehose-Streams erstellen.

F: Welches Bereitstellungsmodell verwendet Firehose bei der Bereitstellung von Daten für Snowflake-Streaming?

Firehose verwendet für Snowflake die Semantik der genau einmaligen Zustellung. Dies bedeutet, dass jeder Datensatz genau einmal an Snowflake übermittelt wird, auch wenn Fehler oder Wiederholungsversuche auftreten. Eine exakt einmalige Übermittlung garantiert jedoch nicht, dass es in den umfassenden Daten keine Duplikate gibt, da die Daten möglicherweise vom Produzenten oder von anderen Teilen der ETL-Pipeline dupliziert werden.

F: Wie hoch ist die Mindestlatenz für die Bereitstellung an Snowflake-Streaming mit Firehose?

Wir gehen davon aus, dass die meisten Datenströme innerhalb von 5 Sekunden übermittelt werden.

F: Was ist Amazon OpenSearch Service?

Amazon OpenSearch Service vereinfacht die Durchführung von interaktiven Protokollanalysen, Anwendungsüberwachung in Echtzeit, Website-Suche und mehr. OpenSearch ist eine von Elasticsearch abgeleitete Open-Source-Suite für verteilte Suche und Analyse. Amazon OpenSearch Service bietet die neuesten Versionen von OpenSearch, Unterstützung für 19 Versionen von Elasticsearch (Versionen 1.5 bis 7.10) und Visualisierungsfunktionen mit OpenSearch Dashboards und Kibana (Versionen 1.5 bis 7.10). Klicken Sie hier für weitere Informationen zu Amazon OpenSearch.

F: Was ist die Index-Rotation für das Amazon-OpenSearch-Service-Ziel?

Firehose kann Ihren Amazon-OpenSearch-Service-Index zeitraumabhängig rotieren. Diesen Zeitraum können Sie beim Erstellen des Firehose-Streams konfigurieren. Weitere Informationen finden Sie unter Index Rotation für Amazon OpenSearch Ziele im Entwicklerhandbuch zu Amazon Data Firehose.

F: Warum muss ich einen Amazon-S3-Bucket angeben, wenn ich Amazon OpenSearch Service als Ziel wähle?

Beim Laden von Daten in den Amazon OpenSearch Service kann Firehose entweder alle Daten, oder nur die Daten, die nicht geliefert werden konnten, sichern. Um diese Funktion zu nutzen und jegliche Datenverluste zu vermeiden, müssen Sie zur Sicherung einen Amazon-S3-Bucket bereitstellen.

F: Kann ich die Konfigurationen meines Firehose-Streams ändern, nachdem er eingerichtet wurde?

Sie können die Konfiguration Ihres Firehose-Streams jederzeit nach dem Einrichten ändern. Sie können dies über die Firehose-Konsole oder den Vorgang UpdateDestination durchführen. Ihr Firehose-Stream bleibt im Status ACTIVE, während Ihre Konfigurationen aktualisiert werden, und Sie können weiterhin Daten an Ihren Firehose-Stream senden. Die aktualisierten Konfigurationen werden dann normalerweise innerhalb einiger Minuten aktiviert.

Beim Senden an ein Ziel in der VPC kann die Endpunkt-URL geändert werden, solange sich das neue Ziel über dieselbe VPC, Subnetze und Sicherheitsgruppen aufrufen lässt. Falls Änderungen an der VPC, den Subnetzen oder den Sicherheitsgruppen nötig sind, müssen Sie einen neuen Firehose-Stream erstellen.

F: Kann ich den Firehose-Stream eines Kontos verwenden, um meine Daten an ein VPC-Ziel mit Amazon-OpenSearch-Service-Domain eines anderen Kontos zu senden?

Firehose Delivery kann nur dann an ein anderes Konto in Amazon OpenSearch Service liefern, wenn Firehose und Amazon OpenSearch Service über einen öffentlichen Endpunkt verbunden sind.

Wenn Firehose und Amazon OpenSearch Service in einer privaten VPC miteinander verbunden sind. Dann müssen sich der Firehose-Stream und die Ziel-VPC der Amazon-OpenSearch-Service-Domain im selben Konto befinden.

F: Kann ich den Firehose-Stream einer Region verwenden, um meine Daten an ein VPC-Ziel mit Amazon-OpenSearch-Service-Domain einer anderen Region zu senden?

Nein, Ihr Firehose-Stream und die Amazon-OpenSearch-Service-Domain des Ziels müssen zur selben Region gehören.

F: Wie häufig liefert Firehose Daten an meine Amazon-OpenSearch-Domain?

Die Häufigkeit der Datenlieferung an Amazon OpenSearch Service wird durch die OpenSearch-Puffergröße und die Pufferintervallwerte bestimmt, die Sie für Ihren Firehose-Stream konfiguriert haben. Firehose puffert eingehende Daten, bevor sie an den Amazon OpenSearch Service übermittelt werden. Sie können die Werte für die OpenSearch-Puffergröße (1 MB bis 100 MB) oder das Pufferintervall (60 bis 900 Sekunden) konfigurieren. Die Bedingung, die zuerst erfüllt wird, löst die Datenlieferung an Amazon OpenSearch Service aus. Wenn die Datenlieferung an das Ziel langsamer erfolgt, als Daten dem Firehose-Stream zugeführt werden, erhöht Amazon Data Firehose die Puffergröße automatisch, um den Vorgang zu beschleunigen und sicherzustellen, dass alle Daten zum Ziel übertragen werden.

F: Wozu dient der Manifestordner in meinem Amazon-S3-Bucket?
Amazon Data Firehose generiert für das Ziel Amazon Redshift Manifestdateien, um Amazon-S3-Objekte in Batches in die Redshift-Instance zu laden. Im Manifestordner werden von Firehose generierte Manifestdateien gespeichert.

F: Wie werden gesicherte OpenSearch-Dokumente in meinem Amazon S3-Bucket dargestellt?
Wenn der Modus für „alle Dokumente“ verwendet wird, verkettet Amazon Data Firehose mehrerer eingehende Datensätze gemäß der Pufferkonfiguration Ihres Firehose-Streams. Diese Verkettungen werden anschließend als S3-Objekt an Ihr S3-Bucket geliefert. Unzustellbare Dokumente werden ungeachtet des konfigurierten Sicherungsmodus in einem bestimmten JSON-Format an Ihren S3-Bucket geliefert. Das Format enthält Informationen wie den Fehlercode und die Uhrzeit des Lieferversuchs. Weitere Informationen finden Sie im Entwicklerhandbuch von Amazon Data Firehose unter Amazon-S3-Backup für das Amazon-OpenSearch-Ziel.

F: Kann ein einzelner Firehose-Stream Daten an mehrere Amazon-S3-Buckets liefern?

Ein einzelner Firehose-Stream kann derzeit Daten nur an einen Amazon-S3-Bucket liefern. Wenn Daten an mehrere S3-Buckets geliefert werden sollen, können Sie mehrere Firehose-Streams einrichten.

F: Kann ein einzelner Firehose-Stream Daten an mehrere Amazon-Redshift-Instance oder -Tabellen liefern?

Ein einzelner Firehose-Stream kann derzeit nur Daten an eine Redshift-Instance und eine Tabelle liefern. Wenn Daten an mehrere Redshift-Instances oder -Tabellen geliefert werden sollen, können Sie mehrere Firehose-Streams einrichten.

F: Kann ein einzelner Firehose-Stream Daten an mehrere Amazon-OpenSearch-Service-Domains oder -Indizes liefern?

Ein einzelner Firehose-Stream kann derzeit nur Daten an eine Amazon-OpenSearch-Service-Domain und einen Index liefern. Wenn Sie Daten an mehrere Amazon-OpenSearch-Domains oder -Indexe liefern lassen möchten, können Sie mehrere Firehose-Streams erstellen.

F: Wie liefert Amazon Data Firehose Daten an meine Amazon OpenSearch-Service-Domain in einer VPC?

Wenn Sie Firehose aktivieren, um Daten an ein Amazon-OpenSearch-Service-Ziel in einer VPC zu liefern, erstellt Amazon Data Firehose eine oder mehrere kontoübergreifende elastische Netzwerkschnittstellen (ENI) in Ihrer VPC für jedes von Ihnen gewählte Subnetz. Amazon Data Firehose sendet die Daten mithilfe dieser ENIs an Ihre VPC. Die Anzahl der ENIs wird automatisch an die Serviceanforderungen angepasst.

Problembehandlung und Verwaltung von Firehose-Streams

F: Warum werde ich gedrosselt, wenn ich Daten an meinen Amazon-Data-Firehose-Stream sende?

Jeder Firehose-Stream kann standardmäßig bis zu 2 000 Transaktionen/Sekunde, 5 000 Datensätze/Sekunde und 5 MB/Sekunde aufnehmen. Diese Beschränkung kann sehr einfach erhöht werden, indem ein Formular zum Erhöhen von Service-Limits eingereicht wird.

F: Warum sehe ich doppelte Datensätze in meinem Amazon S3-Bucket, meiner Amazon Redshift-Tabelle, meinem Amazon OpenSearch-Index oder meinen Splunk-Clustern?

Amazon Data Firehose verwendet für die Datenübertragung mindestens einmal eine Semantik. In seltenen Fällen, etwa bei einem Anforderungs-Timeout während einer Datenübertragung, können durch die erneute Übertragung von Firehose doppelte Einträge entstehen, wenn die ursprüngliche Anforderung schließlich doch übermittelt wird.

F: Was geschieht, wenn Daten nicht an mein Amazon-S3-Bucket übertragen werden können?

Wenn Ihre Datenquelle Direct PUT ist und bei der Datenübertragung an Ihren Amazon-S3-Bucket ein Fehler auftritt, wiederholt Amazon Data Firehose die Übertragung maximal 24 Stunden lang alle 5 Sekunden. Besteht das Problem nach 24 Stunden weiterhin, verwirft Amazon Data Firehose die Daten.

Wenn Ihre Datenquelle Kinesis Data Streams ist und bei der Datenübertragung an Ihren Amazon-S3-Bucket ein Fehler auftritt, versucht Amazon Data Firehose alle 5 Sekunden erneut, Daten zu übermitteln, und zwar bis zu einem maximalen Zeitraum, der auf Kinesis Data Streams konfiguriert ist.

F: Was geschieht, wenn Daten nicht an meine Amazon-Redshift-Instance übertragen werden können?

Wenn bei der Datenübertragung an Ihre Redshift-Instances ein Fehler auftritt, wiederholt Amazon Data Firehose die Übertragung alle 5 Sekunden bis zu maximal 120 Minuten lang. Nach 120 Minuten überspringt Amazon Data Firehose den aktuellen Batch von S3-Objekten, die zum Kopieren bereit sind, und fährt mit dem nächsten Batch fort. Die Informationen über die übersprungenen Objekte werden Ihrem S3-Bucket als Manifestdatei im Fehlerordner zugestellt, den Sie dann zum manuellen Auffüllen verwenden können. Informationen zum manuellen Verwenden des COPY-Befehls mit Manifestdateien finden Sie unter Verwenden einer Manifestdatei zur Angabe von Datendateien.

F: Was passiert, wenn die Datenlieferung an meine Amazon-OpenSearch-Domain fehlschlägt?

Für Amazon-OpenSearch-Service-Ziele können Sie bei der Erstellung des Firehose-Streams eine Wiederholungsdauer zwischen 0 und 7 200 Sekunden angeben. Wenn Daten nicht an Ihre Amazon-OpenSearch-Domäne übertragen werden können, wiederholt Amazon Data Firehose den Vorgang für den festgelegten Zeitraum. Nach der Wiederholphase überspringt Amazon Data Firehose den aktuellen Daten-Batch und fährt mit dem nächsten Batch fort. Details zu übersprungenen Dokumenten werden in Ihrem S3-Bucket im Ordner opensearch_failed bereitgestellt, den Sie zum manuellen Auffüllen verwenden können.

F: Was passiert im Falle eines Datenumwandlungsfehlers?

Es gibt zwei Arten von Fehlerszenarien, wenn Firehose versucht, Ihre Lambda-Funktion für die Datenumwandlung aufzurufen:

  • Der erste Typ ist, wenn der Funktionsaufruf fehlschlägt, weil zum Beispiel die Zeit für das Erreichen des Netzwerks abgelaufen ist und Lambda-Aufrufgrenzen erreicht sind. Bei diesen Fehlerszenarien wiederholt Firehose den Aufruf standardmäßig dreimal und überspringt dann diesen Datensatzstapel. Die übersprungenen Datensätze werden als nicht erfolgreich verarbeitete Datensätze behandelt. Sie können für die Anzahl der Aufrufwiederholungen eine Anzahl zwischen 0 und 300 mithilfe der APIs CreateDeliveryStream und UpdateDeliveryStream konfigurieren. Für diesen Fehlertyp können Sie auch die Fehlerprotokollierungsfunktion von Firehose verwenden, um Aufruffehler an CloudWatch Logs weiterzugeben. Weitere Informationen finden Sie unter Monitoring with Amazon CloudWatch Logs.
  • Der zweite Typ von Fehlerszenario tritt auf, wenn das Umwandlungsergebnis eines Datensatzes auf „ProcessingFailed“ eingestellt ist, wenn dieser von Ihrer Lambda-Funktion zurückkehrt. Firehose behandelt diese Datensätze als nicht erfolgreich verarbeitete Datensätze. Für diesen Fehlertyp können Sie auch die Protokollierungsfunktion von Lambda verwenden, um Fehlerprotokolle an CloudWatch Logs weiterzugeben. Weitere Informationen finden Sie unter Accessing Amazon CloudWatch Logs for AWS Lambda.

Für beide Fehlerszenarien werden die nicht erfolgreich verarbeiteten Datensätze an Ihren S3-Bucket im Ordner „processing_failed“ übertragen.

F: Warum sind gelieferte S3-Objekten größer als die Puffergröße, die ich in meiner Konfiguration für den Firehose-Stream festgelegt habe?

Die Größe von gelieferten S3-Objekten sollte die festgelegte Puffergröße in den meisten Fällen widerspiegeln, wenn die Bedingung für die Puffergröße vor der Bedingung für das Pufferintervall erfüllt ist. Wenn jedoch die Datenlieferung an das Ziel langsamer ist als das Schreiben von Daten in den Firehose-Stream, erhöht Firehose die Puffergröße dynamisch, um den Vorgang zu beschleunigen und sicherzustellen, dass alle Daten an das Ziel geliefert werden. In diesem Fall können gelieferte S3-Objekten größer als die festgelegte Puffergröße sein.

F: Wozu dient der Fehler-Ordner in meinem Amazon-S3-Bucket?

Im Fehler-Ordner werden Manifestdateien gespeichert, die Informationen über S3-Objekte enthalten, die nicht in Ihre Redshift-Instance geladen werden konnten. Sie können diese Objekte über den Redshift-Befehl COPY manuell erneut laden. Informationen zum manuellen Verwenden des COPY-Befehls mit Manifestdateien finden Sie unter Verwenden einer Manifestdatei zur Angabe von Datendateien.

F: Wozu dient der Ordner opensearch_failed in meinem Amazon-S3-Bucket?

Der Ordner opensearch_failed speichert die Dokumente, die nicht in Ihre Amazon OpenSearch-Domain geladen werden konnten. Was passiert, wenn die Datenlieferung an meine Amazon OpenSearch-Domäne fehlschlägt? Domäne. Sie können diese Dokumente für einen manuellen Abgleich neu indizieren.

F: Wozu dient der Ordner "processing_failed" in meinem Amazon S3-Bucket?

Im Ordner "processing_failed" werden die Datensätze gespeichert, die nicht in Ihrer AWS Lambda-Funktion umgewandelt werden konnten. Sie können diese Datensätze manuell erneut verarbeiten.

F: Wie überwache ich Betrieb und Leistung meines Amazon-Data-Firehose-Streams?

Die Firehose-Konsole zeigt die wichtigsten Betriebs- und Leistungsmetriken an, wie etwa eingehendes Datenvolumen und geliefertes Datenvolumen. Amazon Data Firehose ist auch in Amazon CloudWatch-Metriken integriert, sodass Sie Metriken für die Firehose-Streams sammeln, anzeigen und analysieren können. Weitere Informationen zu Amazon-Data-Firehose-Metriken finden Sie im Entwicklerhandbuch von Amazon Data Firehose unter Monitoring with Amazon CloudWatch Metrics.

F: Wie überwache ich Datenumwandlungs- und Lieferfehler meines Amazon Data Firehose-Streams?

Amazon Data Firehose ist in Amazon CloudWatch Logs integriert. Bei einer fehlgeschlagenen Datenumwandlung oder -lieferung können Sie die zutreffenden Fehlerprotokolle überprüfen. Die Fehlerprotokollierung aktivieren Sie beim Erstellen des Firehose-Streams. Weitere Informationen finden Sie im Entwicklerhandbuch von Amazon Data Firehose unter Monitoring with Amazon CloudWatch Logs.

F: Wie kann ich den Zugriff auf meinen Amazon-Data-Firehose-Stream verwalten und steuern?

Amazon Data Firehose ist mit AWS Identity and Access Management integriert, einem Service, mit dessen Hilfe Sie den Zugriff auf Ihre AWS-Services und -Ressourcen für Ihre Benutzer sicher steuern können. Sie können zum Beispiel eine Richtlinie einrichten, der zufolge nur ein bestimmter Benutzer bzw. eine Gruppe dem Firehose-Stream Daten hinzufügen darf. Weitere Informationen zu Zugriffsverwaltung und -steuerung Ihres Streams finden Sie unter Zugriffssteuerung mit Amazon Data Firehose .

F: Wie kann ich API-Aufrufe an meinen Amazon-Data-Firehose-Stream für Sicherheitsanalysen und Fehlerbehebung protokollieren?

Amazon Data Firehose ist in AWS CloudTrail integriert, einem Service, der Aufrufe von AWS-APIs für Ihr Konto aufzeichnet und Protokolldateien an Sie übermittelt. Weitere Informationen zur Protokollierung von API-Aufrufen sowie eine Liste der unterstützten Amazon-Data-Firehose-API-Vorgänge finden Sie unter Protokollieren von Amazon-Data-Firehose-API-Aufrufen mit AWS CloudTrail.

Preise und Abrechnung

F: Ist Firehose über das kostenlose AWS-Nutzungskontingent verfügbar?

Nein. Firehose fällt derzeit nicht unter das kostenlose AWS-Nutzungskontingent. Das kostenlose Kontingent für AWS ist ein Programm, das einen kostenlosen Test bestimmter AWS-Services bietet. Weitere Informationen finden Sie unter Kostenloses AWS-Nutzungskontingent.

F: Wie viel kostet Firehose?

Für Firehose fallen nutzungsabhängige Gebühren an. Es gibt weder Vorlaufkosten noch Mindestgebühren. Sie zahlen nur für die Ressourcen, die Sie tatsächlich nutzen. Die Preise für Amazon Data Firehose basieren auf dem Datenvolumen (GB), das Firehose aufnimmt, wobei jeder Datensatz auf die nächsten 5 KB aufgerundet wird, wenn Direct PUT und Kinesis Datenstrom die Quelle ist. Für Vended Logs als Quelle basieren die Preise auf dem von Firehose aufgenommenen Datenvolumen (GB). Weitere Informationen zu Amazon Data Firehose finden Sie in der Amazon-Data-Firehose-Preisgestaltung.

F: Wie wird die 5-KB-Aufrundung berechnet, wenn ich den Vorgang PutRecordBatch verwende, um Daten an Amazon Data Firehose zu senden?

Die 5-KB-Aufrundung wird auf Datensatzebene, nicht auf API-Vorgangsebene berechnet. Wenn Ihr PutRecordBatch-Aufruf zum Beispiel zwei 1-KB-Datensätze enthält, wird dieses Datenvolumen als 10 KB gezählt. (5 KB pro Datensatz)

F: Sind in den Kosten für Firehose auch die Kosten für Amazon S3, Amazon Redshift, Amazon OpenSearch Service und AWS Lambda enthalten?

Nein, die Gebühren für die Nutzung von Amazon S3, Amazon Redshift, Amazon OpenSearch Service und AWS Lambda werden Ihnen separat in Rechnung gestellt, darunter auch die Kosten für Speicherplatz und Anfragen. Weitere Informationen finden Sie auf Preise zu Amazon S3, Preise zu Amazon Redshift, Preise zu Amazon OpenSearch Service und Preise zu AWS Lambda.

Service Level Agreement

F: Was garantiert mir der Amazon-Data-Firehose-SLA?

Unser Amazon Data Firehose-SLA garantiert für Amazon Data Firehose einen monatlichen Verfügbarkeitsprozentsatz von mindestens 99,9 %.

F: Wie erfahre ich, ob ich zu einer Gutschrift aus dem SLA berechtigt bin?

Sie kommen für eine SLA-Gutschrift für Amazon Data Firehose im Rahmen der Amazon Data Firehose-SLA in Frage, wenn mehr als eine Availability Zone, in der Sie eine Aufgabe ausführen, innerhalb derselben Region während eines beliebigen monatlichen Abrechnungszyklus einen monatlichen Verfügbarkeitsprozentsatz von weniger als 99,9 % aufweist.

Ausführliche Informationen zu allen Bestimmungen des SLA sowie Einzelheiten zur Geltendmachung eines Anspruchs finden Sie auf der Seite zum Amazon-Data-Firehose-SLA.

Weitere Informationen zu den Preisen von Amazon Data Firehose

Zur Preisseite
Sind Sie startbereit?
Registrieren
Haben Sie noch Fragen?
Kontakt