Amazon Simple Storage Service
Entwicklerhandbuch (API-Version 2006-03-01)

Amazon S3-Bestand

Amazon S3 Inventory ist eines der Tools, die Amazon S3 bereitstellt, um Ihnen bei der Verwaltung Ihres Speichers zu helfen. Sie können es für die Prüfung und Meldung des Replikations- und Verschlüsselungsstatus Ihrer Objekte für Unternehmens-, Compliance- und regulatorische Anforderungen verwenden. Außerdem können Sie Business Workflows und Big Data-Aufgaben mithilfe von Amazon S3 Inventory vereinfachen und beschleunigen. Es bietet Ihnen eine geplante Alternative zur Amazon S3-synchronen List-API-Operation.

Der Amazon S3-Bestand stellt Comma Separated Values (CSV), Apache Optimized Row Columnar (ORC) oder Apache Parquet (Parquet)-Ausgabedateien bereit, die Ihre Objekte und die zugehörigen Metadaten auf täglicher oder wöchentlicher Basis für einen S3-Bucket oder ein gemeinsam verwendetes Präfix (das heißt, Objekte, deren Namen mit einer allgemeinen Zeichenfolge beginnen) auflisten. Weitere Informationen zu den Amazon S3 Inventory-Preisen finden Sie unter Amazon S3-Preise.

Sie können mehrere Bestandslisten für einen Bucket konfigurieren. Sie können konfigurieren, welche Objekt-Metadaten in den Bestand aufgenommen werden sollen, ob alle Objektversionen aufgelistet werden oder nur die aktuellen Versionen, wo die Dateiausgabe der Bestandsliste gespeichert werden soll und ob das Bestandsverzeichnis täglich oder wöchentlich generiert werden soll. Sie können auch angeben, dass die Bestandslistendatei verschlüsselt wird.

Sie können den Amazon S3-Bestand auch mittels Standard-SQL abfragen, indem Sie , Amazon Athena, Amazon Redshift Spectrum und weitere Tools wie Presto, Apache Hive und Apache Spark verwenden. Sie können Athena problemlos verwenden, um Abfragen zu Ihren Bestandsdateien auszuführen. Sie können Athena für Amazon S3-Inventory-Abfragen in allen Regionen verwenden, in denen Athena verfügbar ist.

Wie richte ich Amazon S3 Inventory ein?

In diesem Abschnitt wird beschrieben, wie ein Bestand, einschließlich der Details über den Bestand an Quell- und Ziel-Buckets, eingerichtet wird.

Quell- und Ziel-Buckets für Amazon S3 Inventory

Der Bucket, dessen Objekte die Bestandserfassung auflistet, wird als Quell-Bucket bezeichnet. Der Bucket, in dem die Datei mit der Bestandsliste gespeichert ist, wird als Ziel-Bucket bezeichnet.

Quell-Bucket

Der Bestand listet die Objekte auf, die im Quell-Bucket gespeichert sind. Sie können Bestandslisten für einen ganzen Bucket oder nach einem Präfix (Objektschlüsselname) gefiltert erhalten.

Der Quell-Bucket:

  • Enthält die Objekte, die im Bestand aufgelistet sind.

  • Enthält die Konfiguration für den Bestand.

Ziel-Bucket

Amazon S3 Inventory listet Dateien auf, die in den Ziel-Bucket geschrieben werden. Um alle Bestandslistendateien an einem gemeinsamen Standort im Ziel-Bucket zu gruppieren, können Sie ein Ziel-Präfix (Objektschlüsselname) in der Bestandskonfiguration angeben.

Der Ziel-Bucket:

  • Enthält die Dateilisten für den Bestand.

  • Enthält die Manifestdateien, die alle Bestandslisten der Datei auflisten, die im Ziel-Bucket gespeichert sind. Weitere Informationen finden Sie unter Was ist ein Bestandsmanifest?

  • Braucht eine Bucket-Richtlinie, um Amazon S3 die Berechtigung zu erteilen, das Eigentum am Bucket zu überprüfen, ebenso wie die Berechtigung, Dateien in den Bucket zu schreiben.

  • Muss sich in derselben AWS-Region wie der Quell-Bucket befinden.

  • Kann gleich dem Quell-Bucket sein.

  • Kann einem anderen AWS-Konto gehören als das Konto, dem der Quell-Bucket gehört.

Einrichten von Amazon S3 Inventory

Amazon S3 Inventory hilft Ihnen, Ihren Speicher zu verwalten, indem nach einem definierten Zeitplan Listen der Objekte in einem S3-Bucket erstellt werden. Sie können mehrere Bestandslisten für einen Bucket konfigurieren. Die Bestandslisten werden in CSV-, ORC,- oder Parquet-Dateien in einem Ziel-Bucket veröffentlicht.

Die einfachste Möglichkeit, einen Bestand einzurichten, ist die Verwendung der AWS Management Console, Sie können aber auch REST-API, AWS CLI oder AWS SDKs verwenden. Die Konsole führt den ersten Schritt des folgenden Verfahrens für Sie durch: Hinzufügen einer Bucket-Richtlinie zum Ziel-Bucket.

So richten Sie einen Amazon S3-Bestand für meinen S3-Bucket ein:

  1. Fügen Sie eine Bucket-Richtlinie für den Ziel-Bucket hinzu.

    Sie müssen eine Bucket-Richtlinie für den Ziel-Bucket einrichten, um Amazon S3 die Berechtigung zu erteilen, Objekte in den Bucket an dem definierten Standort zu schreiben. Eine Beispielrichtlinie finden Sie unter Gewähren von Berechtigungen für Amazon S3-Bestand und Amazon S3-Analysen.

  2. Konfigurieren Sie eine Bestandsliste, um die Objekte in einem Quell-Bucket aufzulisten und die Liste in einem Ziel-Bucket zu veröffentlichen.

    Wenn Sie eine Bestandsliste für einen Quell-Bucket konfigurieren, geben Sie den Ziel-Bucket an, in dem die Liste gespeichert werden soll, und ob Sie möchten, dass die Liste täglich oder wöchentlich generiert werden soll. Sie können auch konfigurieren, welche Objekt-Metadaten aufgenommen werden sollen, und ob alle Objektversionen oder nur die aktuellen Versionen aufgelistet werden sollen.

    Sie können festlegen, dass die Bestandsdatei verschlüsselt wird, indem Sie von Amazon S3 verwaltete Schlüssel (SSE-S3) oder kundenverwaltete Schlüssel (CMKs) verwenden, die in AWS Key Management Service (AWS KMS) gespeichert sind. Weitere Informationen zu SSE-S3 und SSE-KMS finden Sie unter Schützen von Daten mithilfe serverseitiger Verschlüsselung. Wenn Sie die SSE-KMS-Verschlüsselung verwenden möchten, siehe Schritt 3.

    • Informationen zur Verwendung der Konsole zum Konfigurieren einer Bestandsliste finden Sie unter Wie konfiguriere ich Amazon S3 Inventory? im Konsolenbenutzerhandbuch für Amazon Simple Storage Service.

    • Um mit der Amazon S3-API eine Bestandsliste zu konfigurieren, verwenden Sie die REST-API PUT Bucket-Bestandskonfiguration oder das Äquivalent aus der AWS CLI oder den AWS SDKs.

  3. Um die Bestandsdatei mit SSE-KMS zu verschlüsseln, erteilen Sie Amazon S3 die Berechtigung, den in AWS KMS gespeicherten CMK zu verwenden.

    Sie können die Verschlüsselung für die Bestandslistendatei konfigurieren, indem Sie die AWS Management Console, die REST-API, AWS CLI oder AWS SDKs verwenden. Wie auch immer Sie sich entscheiden, Sie müssen Amazon S3 die Berechtigung erteilen, den AWS KMS-CMK zur Verschlüsselung der Bestandsdatei zu verwenden. Sie erteilen Amazon S3 die Berechtigung, indem Sie die Schlüsselrichtlinie für den AWS KMS-CMK ändern, der für die Verschlüsselung der Bestandsdatei verwendet wird. Weitere Informationen finden Sie im folgenden Abschnitt, Amazon S3 die Berechtigung zum Verschlüsseln mit Ihrem AWS KMS-CMK erteilen.

Amazon S3 die Berechtigung zum Verschlüsseln mit Ihrem AWS KMS-CMK erteilen

Sie müssen Amazon S3 mit einer Schlüsselrichtlinie die Berechtigung erteilen, mit Ihrem AWS KMS-CMK zu verschlüsseln. Im folgenden Verfahren wird beschrieben, wie Sie mit der AWS Identity and Access Management (IAM)-Konsole die Schlüsselrichtlinie für den AWS KMS-CMK ändern, der für die Verschlüsselung der Bestandsdatei verwendet wird.

So erteilen Sie Berechtigungen für die Verschlüsselung mit Ihrem AWS KMS-CMK:

  1. Melden Sie sich bei der AWS Management Console mit dem AWS-Konto an, zu dem der AWS KMS-CMK gehört, und öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Encryption keys (Verschlüsselungsschlüssel).

  3. Wählen Sie unter Region die entsprechende AWS-Region aus. Verwenden Sie nicht die Regionsauswahl in der Navigationsleiste (oben rechts).

  4. Wählen Sie den Alias des CMKs aus, mit dem Sie den Bestand verschlüsseln möchten.

  5. Wählen Sie im Abschnitt Key Policy (Schlüsselrichtlinie) der Seite die Option Switch to policy view (Zur Richtlinienansicht wechseln) aus.

  6. Fügen Sie mithilfe des Key Policy (Schlüsselrichtlinie)-Editors folgende Schlüsselrichtlinie in die vorhandene Richtlinie ein. und wählen Sie dann Save Changes (Änderungen speichern) aus. Gegebenenfalls möchten Sie die Richtlinie an das Ende der vorhandenen Richtlinie kopieren.

    { "Sid": "Allow Amazon S3 use of the key", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*" ], "Resource": "*" }

Sie können auch die AWS KMS-PUT-Schlüsselrichtlinien-API PutKeyPolicy verwenden, um die Schlüsselrichtlinie in den CMK zu kopieren, der für die Verschlüsselung der Bestandsdatei verwendet wird. Weitere Informationen zum Erstellen und Bearbeiten von AWS KMS-CMKs finden Sie unter Getting Started (Erste Schritte) im AWS Key Management Service Developer Guide.

Was ist in einem Amazon S3 Inventory enthalten?

Eine Datei mit einer Bestandsliste enthält eine Liste der Objekte im Quell-Bucket sowie die Metadaten für jedes Objekt. Die Bestandslisten werden im Ziel-Bucket als mit GZIP komprimierte CSV-Datei, als für Apache optimierte und mit ZLIB komprimierte ORC-Datei oder als mit Snappy komprimierte Apache Parquet-Datei gespeichert.

Die Bestandsliste enthält eine Liste der Objekte in einem S3-Bucket sowie die folgenden Metadaten für jedes aufgelistete Objekt:

  • Bucket name (Bucket-Name) – Der Name des Buckets, für den der Bestand gilt.

  • Key name (Schlüsselname) – Name des Objektschlüssels (oder Schlüssel), der das Objekt in dem Bucket eindeutig identifiziert. Bei Verwendung des CSV-Dateiformats ist der Schlüsselname URL-kodiert und muss dekodiert werden, bevor Sie ihn verwenden können.

  • Version ID (Versions-ID) – ID der Objektversion. Wenn Sie das Versioning für einen Bucket aktivieren, weist Amazon S3 allen Objekten, die dem Bucket hinzugefügt werden, eine Versionsnummer zu. Weitere Informationen finden Sie unter Objekt-Versioning. (Dieses Feld ist nicht enthalten, wenn die Liste nur für die aktuelle Version der Objekte erstellt wird.)

  • IsLatest – Auf True gesetzt, wenn es sich bei dem Objekt um die aktuelle Version des Objekts handelt. (Dieses Feld ist nicht enthalten, wenn die Liste nur für die aktuelle Version der Objekte erstellt wird.)

  • Size (Größe) – Objektgröße in Bytes.

  • Last modified date (Letztes Änderungsdatum) – Datum der Erstellung oder der letzten Änderung des Objekts, je nachdem, welches Datum später liegt.

  • ETag – Der Entitäts-Tag ist ein Hashwert des Objekts. Das ETag gibt nur Änderungen am Inhalt eines Objekts wieder, nicht an seinen Metadaten. Das ETag kann ein MD5 Digest der Objektdaten sein, muss aber nicht. Dies hängt davon ab, wie das Objekt erstellt und verschlüsselt wurde.

  • Storage class (Speicherklasse) – Die für die Speicherung des Objekts verwendete Speicherklasse. Weitere Informationen finden Sie unter Amazon S3-Speicherklassen.

  • Multipart upload flag (Markierung für mehrteiligen Upload) – Auf True gesetzt, wenn das Objekt als mehrteiliger Upload hochgeladen wurde. Weitere Informationen finden Sie unter Überblick Multipart Upload.

  • Delete marker (Löschmarkierung) – Auf True gesetzt, wenn es sich bei dem Objekt um eine Löschmarkierung handelt. Weitere Informationen finden Sie unter Objekt-Versioning. (Dieses Feld wird dem Bericht automatisch hinzugefügt, wenn Sie den Bericht so konfiguriert haben, dass alle Versionen der Objekte aufgenommen werden.)

  • Replication status (Replikationsstatus) – auf PENDING, COMPLETED, FAILED oder REPLICA. gesetzt. Für weitere Informationen siehe Informationen zum Replikationsstatus.

  • Encryption status (Verschlüsselungsstatus) – Auf SSE-S3, SSE-C, SSE-KMS oder NOT-SSE gesetzt. Der serverseitige Verschlüsselungsstatus für SSE-S3, SSE-KMS und SSE mit vom Benutzer bereitgestellten Schlüsseln (SSE-C). Der Status NOT-SSE bedeutet, dass das Objekt nicht mit serverseitiger Verschlüsselung verschlüsselt ist. Weitere Informationen finden Sie unter Daten durch Verschlüsselung schützen.

  • Object lock Retain until date (Objektsperre beibehalten bis) – Das Datum, bis zu dem das gesperrte Objekt nicht gelöscht werden kann. Weitere Informationen finden Sie unter Sperren von Objekten mit Amazon S3 Object Lock.

  • Object lock Mode (Objektsperrmodus) – Auf Governance oder Compliance gesetzt für Objekte, die gesperrt sind. Weitere Informationen finden Sie unter Sperren von Objekten mit Amazon S3 Object Lock.

  • Object lock Legal hold status (Rechtlicher Aufbewahrungsstatus der Objektsperre) – Auf On gesetzt, wenn für ein Objekt eine rechtliche Aufbewahrungsfrist gilt; andernfalls auf Off gesetzt. Weitere Informationen finden Sie unter Sperren von Objekten mit Amazon S3 Object Lock.

Nachfolgend finden Sie ein Beispiel einer CSV-Bestandsliste, die in einer Tabellenkalkulationsanwendung geöffnet ist. Die Überschriftszeile wird nur angezeigt, um das Beispiel zu beschreiben; sie ist nicht in der eigentlichen Liste enthalten.


        Screenshot einer Beispielbestandsliste, die in einer Tabellenkalkulationsanwendung geöffnet ist.

Wir empfehlen, eine Lebenszyklusrichtlinie einzurichten, die alte Bestandslisten löscht. Weitere Informationen finden Sie unter Verwaltung des Objektlebenszyklus.

Bestandskonsistenz

Möglicherweise erscheinen nicht alle Ihre Objekte in jeder Bestandsliste. Die Bestandsliste bietet letztendliche Datenkonsistenz für PUTs für neue Objekte und überschriebene Objekte, ebenso wie für DELETE-Vorgänge. Bestandslisten sind fortlaufende Momentaufnahmen von Bucket-Elemente, die letztendlich konsistent sind (d. h. die Liste enthält möglicherweise keine vor kurzem hinzugefügten oder gelöschten Objekte).

Um den Status des Objekts zu überprüfen, bevor Sie eine Aktion dafür ausführen, empfehlen wir, eine HEAD Object-REST API-Anforderung zu stellen, um Metadaten für das Objekt abzurufen, oder die Objekteigenschaften in der Amazon S3-Konsole zu überprüfen. Sie können Objektmetadaten auch mit der AWS CLI oder den AWS SDKs überprüfen. Weitere Informationen finden Sie unter HEAD Object im Amazon Simple Storage Service API Reference.

Wo befinden sich die Bestandslisten?

Wenn eine Bestandsliste veröffentlicht wird, werden die Manifestdateien am folgenden Standort im Ziel-Bucket veröffentlicht.

destination-prefix/source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.json destination-prefix/source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.checksum destination-prefix/source-bucket/config-ID/hive/dt=YYYY-MM-DD-HH-MM/symlink.txt
  • destination-prefix ist das Ziel-Präfix (Objektschlüsselname), das in der Bestandskonfiguration angegeben ist, und das verwendet werden kann, um alle Bestandslistendateien an einem gemeinsamen Speicherort im Ziel-Bucket zu gruppieren.

  • source-bucket ist der Quell-Bucket, für den die Bestandsliste erstellt wird. Er wird hinzugefügt, um Kollisionen zu vermeiden, wenn mehrere Bestandsberichte von mehreren Quell-Buckets an denselben Ziel-Bucket gesendet werden.

  • config-ID wird hinzugefügt, um Kollisionen zu vermeiden, wenn mehrere Bestandsberichte vom selben Quell-Bucket an denselben Ziel-Bucket gesendet werden. config-ID kommt aus der Bestandsberichtkonfiguration und ist der Name des Berichts, der bei der Einrichtung festgelegt wurde.

  • YYYY-MM-DDTHH-MMZ ist der Zeitstempel, der sich aus der Startzeit und dem Datum zusammensetzt, an dem die Bestandsberichtserstellung mit dem Scannen des Buckets beginnt, z. B. 2016-11-06T21-32Z. Speicher, der nach dem Zeitstempel hinzugefügt wurde, wird nicht im Bericht angezeigt.

  • manifest.json ist die Manifestdatei.

  • manifest.checksum ist das MD5 des Inhalts der manifest.json-Datei.

  • symlink.txt ist die Apache Hive-kompatible Manifestdatei.

Die Bestandslisten werden täglich oder wöchentlich am folgenden Standort im Ziel-Bucket veröffentlicht.

destination-prefix/source-bucket/config-ID/example-file-name.csv.gz ... destination-prefix/source-bucket/config-ID/example-file-name-1.csv.gz
  • Ziel-Präfix ist das (Objektschlüsselname-) Präfix, das in der Bestandskonfiguration festgelegt ist. Es kann verwendet werden, um alle Bestandslistendateien an einem gemeinsamen Standort im Ziel-Bucket zu gruppieren.

  • source-bucket ist der Quell-Bucket, für den die Bestandsliste erstellt wird. Er wird hinzugefügt, um Kollisionen zu vermeiden, wenn mehrere Bestandsberichte von mehreren Quell-Buckets an denselben Ziel-Bucket gesendet werden.

  • example-file-name.csv.gz ist eine der CSV-Bestandsdateien. ORC-Bestandsnamen enden mit der Dateinamenserweiterung .orc und Parquet-Bestandsnamen enden mit der Dateinamenserweiterung .parquet.

Was ist ein Bestandsmanifest?

Die Manifest-Dateien manifest.json und symlink.txt beschreiben, wo sich die Bestandsdateien befinden. Wenn eine neue Bestandsliste geliefert wird, wird sie durch eine neue Reihe von Manifestdateien begleitet.

Jedes in der manifest.json-Datei enthaltene Manifest bietet Metadaten und andere grundlegende Informationen zu einem Bestand. Diese Informationen beinhalten Folgendes:

  • Name des Quell-Buckets

  • Name des Ziel-Buckets

  • Bestandsversion

  • Erstellungszeitstempel im Epochen-Datumsformat, der aus der Startzeit und dem Datum besteht, an dem die Bestandberichtserstellung beginnt, den Bucket zu scannen

  • Format und Schema der Bestandsdateien

  • Tatsächliche Liste der Bestandsdateien, die im Ziel-Bucket enthalten sind

Immer wenn eine manifest.json-Datei geschrieben wird, wird sie von einer manifest.checksum-Datei begleitet, die das MD5 des Inhalts der manifest.json-Datei ist.

Nachfolgend finden Sie ein Beispiel eines Manifests in einer manifest.json-Datei für einen CSV-formatierten Bestand.

{ "sourceBucket": "example-source-bucket", "destinationBucket": "arn:aws:s3:::example-inventory-destination-bucket", "version": "2016-11-30", "creationTimestamp" : "1514944800000", "fileFormat": "CSV", "fileSchema": "Bucket, Key, VersionId, IsLatest, IsDeleteMarker, Size, LastModifiedDate, ETag, StorageClass, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus", "files": [ { "key": "Inventory/example-source-bucket/2016-11-06T21-32Z/files/939c6d46-85a9-4ba8-87bd-9db705a579ce.csv.gz", "size": 2147483647, "MD5checksum": "f11166069f1990abeb9c97ace9cdfabc" } ] }

Nachfolgend finden Sie ein Beispiel eines Manifests in einer manifest.json-Datei für einen ORC-formatierten Bestand.

{ "sourceBucket": "example-source-bucket", "destinationBucket": "arn:aws:s3:::example-destination-bucket", "version": "2016-11-30", "creationTimestamp" : "1514944800000", "fileFormat": "ORC", "fileSchema": "struct<bucket:string,key:string,version_id:string,is_latest:boolean,is_delete_marker:boolean,size:bigint,last_modified_date:timestamp,e_tag:string,storage_class:string,is_multipart_uploaded:boolean,replication_status:string,encryption_status:string,object_lock_retain_until_date:timestamp,object_lock_mode:string,object_lock_legal_hold_status:string>", "files": [ { "key": "inventory/example-source-bucket/data/d794c570-95bb-4271-9128-26023c8b4900.orc", "size": 56291, "MD5checksum": "5925f4e78e1695c2d020b9f6eexample" } ] }

Nachfolgend finden Sie ein Beispiel eines Manifests in einer manifest.json-Datei für einen Parquet-formatierten Bestand.

{ "sourceBucket": "example-source-bucket", "destinationBucket": "arn:aws:s3:::example-destination-bucket", "version": "2016-11-30", "creationTimestamp" : "1514944800000", "fileFormat": "Parquet", "fileSchema": "message s3.inventory { required binary bucket (UTF8); required binary key (UTF8); optional binary version_id (UTF8); optional boolean is_latest; optional boolean is_delete_marker; optional int64 size; optional int64 last_modified_date (TIMESTAMP_MILLIS); optional binary e_tag (UTF8); optional binary storage_class (UTF8); optional boolean is_multipart_uploaded; optional binary replication_status (UTF8); optional binary encryption_status (UTF8);}" "files": [ { "key": "inventory/example-source-bucket/data/d754c470-85bb-4255-9218-47023c8b4910.parquet", "size": 56291, "MD5checksum": "5825f2e18e1695c2d030b9f6eexample" } ] }

Die symlink.txt-Datei ist eine Apache Hive-kompatible Manifestdatei, mit der Hive Bestandsdateien und die zugehörigen Datendateien automatisch entdecken kann. Das Hive-kompatible Manifest funktioniert mit den Hive-kompatiblen Diensten Athena und Amazon Redshift Spectrum.. Außerdem funktioniert dies mit Hive-kompatiblen Anwendungen, einschließlich Presto, Apache Hive, Apache Spark und vielen anderen.

Wichtig

Die Apache Hive-kompatible Manifestdatei symlink.txt funktioniert derzeit nicht mit AWS Glue.

Das Lesen von symlink.txt mit Apache Hive und Apache Spark wird für ORC- und Parquet--formatierte Bestandsdateien nicht unterstützt.

Woran erkenne ich, ob ein Bestand fertig ist?

Sie können eine Amazon S3-Ereignisbenachrichtigung einrichten, um informiert zu werden, wenn die Prüfsummendatei für das Manifest erstellt wird, woran zu erkennen ist, dass dem Ziel-Bucket eine Bestandsliste hinzugefügt wurde. Das Manifest ist eine aktuelle Liste aller Bestandslisten am Zielstandort.

Amazon S3 kann Ereignisse in einem Amazon Simple Notification Service (Amazon SNS)-Thema, einer Amazon Simple Queue Service (Amazon SQS)-Warteschlange oder einer AWS Lambda-Funktion veröffentlichen. Weitere Informationen finden Sie unter Konfigurieren von Amazon S3-Ereignisbenachrichtigungen.

Die folgende Benachrichtigungskonfiguration definiert, dass alle manifest.checksum-Dateien, die dem Ziel-Bucket hinzugefügt werden, von der AWS Lambda cloud-function-list-write. verarbeitet werden.

<NotificationConfiguration> <QueueConfiguration> <Id>1</Id> <Filter> <S3Key> <FilterRule> <Name>prefix</Name> <Value>destination-prefix/source-bucket</Value> </FilterRule> <FilterRule> <Name>suffix</Name> <Value>checksum</Value> </FilterRule> </S3Key> </Filter> <Cloudcode>arn:aws:lambda:us-west-2:222233334444:cloud-function-list-write</Cloudcode> <Event>s3:ObjectCreated:*</Event> </QueueConfiguration> </NotificationConfiguration>

Weitere Informationen finden Sie unter Verwenden von AWS Lambda mit Amazon S3 im AWS Lambda Developer Guide.

Abfragen eines Bestands mit Amazon Athena

Sie können Amazon S3-Bestände mithilfe von Standard-SQL abfragen, indem Sie Amazon Athena in allen Regionen verwenden, in denen Athena verfügbar ist. Um die Verfügbarkeit in Ihrer AWS-Region zu prüfen, sehen Sie sich die Tabelle der AWS-Regionen an.

Athena kann Amazon S3-Bestandsdateien im ORC-, Parquet- oder CSV-Format abfragen. Wenn Sie Athena für die Abfrage des Bestands verwenden, empfehlen wir, dass Sie ORC- oder Parquet-formatierte Bestandsdateien anstelle von CSV verwenden. Die Formate ORC und Parquet bieten eine schnellere Abfrageleistung und niedrigere Abfragekosten. ORC und Parquet sind selbstbeschreibende, typerkennende und spaltenbasierte Datenformate, die für Apache Hadoop entwickelt wurden. Das spaltenbasierte Format lässt den Leser nur die Spalten lesen, entpacken und verarbeiten, die für die aktuelle Abfrage benötigt werden. Die ORC- und Parquet-Formate für Amazon S3-Bestände sind in allen AWS-Regionen verfügbar.

Einstieg in die Verwendung von Athena, um Amazon S3-Bestände abzufragen

  1. Erstellen einer Athena-Tabelle. Informationen zum Erstellen einer neuen Tabelle finden Sie unter Erstellen von Tabellen in Amazon Athena im Amazon Athena-Benutzerhandbuch.

    Die folgende Beispielabfrage umfasst alle optionalen Felder in einem nach ORC formatierten Bestandsbericht. Entfernen Sie alle optionalen Felder, die Sie für Ihren Bestand nicht ausgewählt haben, sodass die Abfrage den für Ihren Bestand gewählten Feldern entspricht. Außerdem müssen Sie den Bucket-Namen und den Standort verwenden. Der Standort zeigt auf Ihren Bestandszielpfad, z. B. s3://destination-prefix/source-bucket/config-ID/hive/.

    CREATE EXTERNAL TABLE your_table_name( `bucket` string, key string, version_id string, is_latest boolean, is_delete_marker boolean, size bigint, last_modified_date timestamp, e_tag string, storage_class string, is_multipart_uploaded boolean, replication_status string, encryption_status string, object_lock_retain_until_date timestamp, object_lock_mode string, object_lock_legal_hold_status string ) PARTITIONED BY (dt string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat' LOCATION 's3://destination-prefix/source-bucket/config-ID/hive/';

    Bei Verwendung von Athena für die Abfrage eines nach Parquet formatierten Bestandsberichts verwenden Sie das folgende SerDe anstelle des ORC SerDe in der ROW FORMAT SERDE-Anweisung.

    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
  2. Um neue Bestandslisten Ihrer Tabelle hinzuzufügen, verwenden Sie den folgenden MSCK REPAIR TABLE-Befehl.

    MSCK REPAIR TABLE your-table-name;
  3. Nachdem Sie die ersten beiden Schritte ausgeführt haben, können Sie für Ihren Bestand Ad-hoc-Abfragen wie im folgenden Beispiel veranschaulicht durchführen.

    SELECT encryption_status, count(*) FROM your-table-name GROUP BY encryption_status;

Weitere Informationen zur Verwendung von Athena finden Sie unter Amazon Athena-Benutzerhandbuch.

Die folgenden REST-Operationen werden für Amazon S3-Lagerbestandslisten verwendet.