Streamen von Daten an Tabellen mit Amazon Data Firehose - Amazon Simple Storage Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Streamen von Daten an Tabellen mit Amazon Data Firehose

Amazon Data Firehose ist ein vollständig verwalteter Service für die Bereitstellung von Echtzeit-Streaming-Daten an Ziele wie Amazon S3, Amazon Redshift, Amazon OpenSearch Service,Splunk, Apache Iceberg Tabellen und benutzerdefinierte HTTP-Endpunkte oder HTTP-Endpunkte, die von unterstützten Drittanbietern betrieben werden. Mit Amazon Data Firehose müssen Sie keine Anwendungen schreiben oder Ressourcen verwalten. Sie konfigurieren Ihre Datenproduzenten zum Senden von Daten an Firehose. Die Daten werden dann automatisch an das angegebene Ziel geliefert. Sie können Firehose auch so konfigurieren, dass die Daten vor der Bereitstellung transformiert werden. Weitere Informationen zu Amazon Data Firehose finden Sie unter Was ist Amazon Data Firehose?

Gehen Sie wie folgt vor, um Firehose-Streaming zu Tabellen in S3-Tabellen-Buckets einzurichten:

  1. Sie integrieren Ihre Tabellen-Buckets in AWS -Analytikdienste.

  2. Konfigurieren Sie Firehose so, dass Daten in Ihre S3-Tabellen übertragen werden. Dazu erstellen Sie eine AWS Identity and Access Management (IAM) -Servicerolle, die Firehose den Zugriff auf Ihre Tabellen ermöglicht.

  3. Erteilen Sie der Firehose-Dienstrolle explizite Berechtigungen für Ihre Tabelle oder den Namespace der Tabelle. Weitere Informationen finden Sie unter Erteilen Lake Formation Formation-Berechtigungen für Ihre Tabellenressourcen.

  4. Erstellen Sie einen Firehose-Stream, der Daten an Ihre Tabelle weiterleitet.

Erstellen einer Rolle für Firehose zur Verwendung von S3 Tables als Ziel

Firehose benötigt eine IAM-Dienstrolle mit spezifischen Berechtigungen für den Zugriff auf AWS Glue Tabellen und das Schreiben von Daten in S3-Tabellen. Sie müssen diese IAM-Rolle angeben, wenn Sie einen Firehose-Stream erstellen.

  1. Öffnen Sie unter https://console.aws.amazon.com/iam/ die IAM-Konsole.

  2. Wählen Sie im linken Navigationsbereich Richtlinien aus.

  3. Wählen Sie im Richtlinien-Editor Richtlinie erstellen und JSON aus.

  4. Fügen Sie die folgende Inline-Richtlinie hinzu, die Berechtigungen für alle Datenbanken und Tabellen in Ihrem Datenkatalog erteilt. Wenn Sie möchten, können Sie nur bestimmten Tabellen und Datenbanken Berechtigungen erteilen. Wenn Sie diese Richtlinie verwenden möchten, ersetzen Sie user input placeholders durch eigene Informationen.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "S3TableAccessViaGlueFederation", "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetDatabase", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:region:account-id:catalog/s3tablescatalog/*", "arn:aws:glue:region:account-id:catalog/s3tablescatalog", "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/*", "arn:aws:glue:region:account-id:table/*/*" ] }, { "Sid": "S3DeliveryErrorBucketPermission", "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::error delivery bucket", "arn:aws:s3:::error delivery bucket/*" ] }, { "Sid": "RequiredWhenUsingKinesisDataStreamsAsSource", "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Sid": "RequiredWhenDoingMetadataReadsANDDataAndMetadataWriteViaLakeformation", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Sid": "RequiredWhenUsingKMSEncryptionForS3ErrorBucketDelivery", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/KMS-key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::error delivery bucket/prefix*" } } }, { "Sid": "LoggingInCloudWatch", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Sid": "RequiredWhenAttachingLambdaToFirehose", "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ] }

    Diese Richtlinie enthält Anweisungen, die den Zugriff auf Kinesis Data Streams, das Aufrufen von Lambda-Funktionen und den Zugriff auf Schlüssel ermöglichen. AWS KMS Wenn Sie keine dieser Ressourcen verwenden, können Sie die entsprechenden Anweisungen entfernen.

    Wenn die Fehlerprotokollierung aktiviert ist, sendet Firehose auch Datenübermittlungsfehler an Ihre CloudWatch Protokollgruppe und Ihre Streams. Dazu müssen Sie Namen für Protokollgruppen und Protokoll-Streams konfigurieren. Informationen zu Protokollgruppen- und Protokollstreamnamen finden Sie unter Überwachen von Amazon Data Firehose mithilfe von CloudWatch Protokollen.

  5. Nachdem Sie die Richtlinie erstellt haben, erstellen Sie eine IAM-Rolle und wählen als vertrauenswürdigen Entitätstyp AWS -Service aus.

  6. Wählen Sie für Service or use case (Service oder Anwendungsfall) die Option Kinesis aus. Wählen Sie für Use case (Anwendungsfall) die Option Kinesis Firehose aus.

  7. Wählen Sie Next (Weiter) und dann die zuvor erstellte Richtlinie aus.

  8. Geben Sie Ihrer Rolle einen Namen. Prüfen Sie die Rollendetails und wählen Sie Create Role (Rolle erstellen). Die Rolle wird die folgende Vertrauensrichtlinie haben.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "firehose.amazonaws.com" ] } } ] }

Einen Firehose-Stream zu S3-Tabellen erstellen

Das folgende Verfahren zeigt, wie Sie einen Firehose-Stream erstellen, um Daten mithilfe der Konsole an S3-Tabellen zu liefern. Die folgenden Voraussetzungen müssen erfüllt sein, um einen Firehose-Stream zu S3 Tables einzurichten.

Um Firehose Routing-Informationen zur Verfügung zu stellen, wenn Sie einen Stream konfigurieren, verwenden Sie Ihren Namespace als Datenbanknamen und den Namen einer Tabelle in diesem Namespace. Sie können diese Werte im Abschnitt für eindeutige Schlüssel einer Firehose-Stream-Konfiguration verwenden, um Daten an eine einzelne Tabelle weiterzuleiten. Sie können diese Werte auch verwenden, um Daten mithilfe von JSON-Abfrageausdrücken an eine Tabelle weiterzuleiten. Weitere Informationen finden Sie unter Eingehende Datensätze an eine einzelne Iceberg-Tabelle weiterleiten.

So richten Sie einen Firehose-Stream für S3 Tables ein (Konsole)
  1. Öffnen Sie die Firehose-Konsole unter https://console.aws.amazon.com/firehose/.

  2. Wählen Sie Create Firehose stream (Firehose-Stream erstellen) aus.

  3. Wählen Sie unter Source (Quelle) eine der folgenden Quellen aus:

    • Amazon Kinesis Data Streams

    • Amazon MSK

    • Direkt PUT

  4. Wählen Sie als Ziel die Option Apache IcebergTabellen aus.

  5. Geben Sie einen Namen für den Firehose-Stream ein.

  6. Konfigurieren Sie Ihre Source settings (Quelleneinstellungen).

  7. Wählen Sie unter Zieleinstellungen die Option Girokonto aus, um zu Tabellen in Ihrem Konto zu streamen, oder Kontoübergreifend für Tabellen in einem anderen Konto.

    • Wählen Sie für Tabellen im Girokonto Ihren S3 Tables-Katalog aus der Dropdownliste Katalog aus.

    • Geben Sie für Tabellen in einem Cross-account den Katalog-ARN des Katalogs, in den Sie streamen möchten, in einem anderen Konto ein.

  8. Konfigurieren Sie Datenbank- und Tabellennamen mithilfe von Unique Key-Konfigurationen, JSONQuery Ausdrücken oder in einer Lambda-Funktion. Weitere Informationen finden Sie unter Eingehende Datensätze an eine einzelne Iceberg-Tabelle weiterleiten und Eingehende Datensätze an verschiedene Iceberg-Tabellen weiterleiten im Amazon Data Firehose Developer Guide.

  9. Geben Sie unter Backup settings (Backup-Einstellungen) einen S3-Backup-Bucket an.

  10. Wählen Sie für Existing IAM roles (Vorhandene IAM-Rollen) unter Advanced settings (Erweiterte Einstellungen) die IAM-Rolle aus, die Sie für Firehose erstellt haben.

  11. Wählen Sie Create Firehose stream (Firehose-Stream erstellen) aus.

Weitere Informationen zu den anderen Einstellungen, die Sie für einen Stream konfigurieren können, finden Sie unter Den Firehose-Stream einrichten im Amazon Data Firehose Developer Guide.