Lokalisieren Ihrer Bestandsliste - 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.

Lokalisieren Ihrer Bestandsliste

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

destination-prefix/amzn-s3-demo-source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.json destination-prefix/amzn-s3-demo-source-bucket/config-ID/YYYY-MM-DDTHH-MMZ/manifest.checksum destination-prefix/amzn-s3-demo-source-bucket/config-ID/hive/dt=YYYY-MM-DD-HH-MM/symlink.txt
  • destination-prefix ist das Präfix des Objektschlüsselnamens, das optional in der Bestandskonfiguration festgelegt wird. Sie können dieses Präfix verwenden, um alle Bestandslisten-Dateien an einem gemeinsamen Standort im Ziel-Bucket zu gruppieren.

  • amzn-s3-demo-source-bucket ist der Quell-Bucket, für den die Bestandsliste erstellt wird. Der Quell-Bucket-Name 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. Die config-ID kommt aus der Bestandsbericht-Konfiguration 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.

  • manifest.json ist die Manifestdatei.

  • manifest.checksumist der MD5 Hash des Inhalts der manifest.json Datei.

  • symlink.txt ist die mit Apache Hive kompatible Manifest-Datei.

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

destination-prefix/amzn-s3-demo-source-bucket/config-ID/data/example-file-name.csv.gz ... destination-prefix/amzn-s3-demo-source-bucket/config-ID/data/example-file-name-1.csv.gz
  • destination-prefix ist das Präfix des Objektschlüsselnamens, das optional in der Bestandskonfiguration festgelegt wird. Es kann verwendet werden, um alle Bestandslisten-Dateien an einem gemeinsamen Standort innerhalb des Ziel-Buckets zu gruppieren.

  • amzn-s3-demo-source-bucket ist der Quell-Bucket, für den die Bestandsliste erstellt wird. Der Quell-Bucket-Name 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.

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. Diese Dateien könnten sich gegenseitig überschreiben. In versionierungsfähigen Buckets erstellt Amazon S3 neue Versionen der Manifestdateien.

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

  • 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 den MD5 Hash des manifest.json Dateiinhalts darstellt.

Beispiel Bestandsmanifest in einer manifest.json-Datei

Die folgenden Beispiele zeigen ein Bestandsmanifest in einer manifest.json-Datei für CSV-, ORC- und Parquet-formatierte Bestände.

CSV

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

{ "sourceBucket": "amzn-s3-demo-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, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner", "files": [ { "key": "Inventory/amzn-s3-demo-source-bucket/2016-11-06T21-32Z/files/939c6d46-85a9-4ba8-87bd-9db705a579ce.csv.gz", "size": 2147483647, "MD5checksum": "f11166069f1990abeb9c97ace9cdfabc" } ] }
ORC

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

{ "sourceBucket": "amzn-s3-demo-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,intelligent_tiering_access_tier:string,bucket_key_status:string,checksum_algorithm:string,object_access_control_list:string,object_owner:string>", "files": [ { "key": "inventory/amzn-s3-demo-source-bucket/data/d794c570-95bb-4271-9128-26023c8b4900.orc", "size": 56291, "MD5checksum": "5925f4e78e1695c2d020b9f6eexample" } ] }
Parquet

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

{ "sourceBucket": "amzn-s3-demo-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); optional int64 object_lock_retain_until_date (TIMESTAMP_MILLIS); optional binary object_lock_mode (UTF8); optional binary object_lock_legal_hold_status (UTF8); optional binary intelligent_tiering_access_tier (UTF8); optional binary bucket_key_status (UTF8); optional binary checksum_algorithm (UTF8); optional binary object_access_control_list (UTF8); optional binary object_owner (UTF8);}", "files": [ { "key": "inventory/amzn-s3-demo-source-bucket/data/d754c470-85bb-4255-9218-47023c8b4910.parquet", "size": 56291, "MD5checksum": "5825f2e18e1695c2d030b9f6eexample" } ] }

Die symlink.txt-Datei ist eine mit Apache Hive kompatible Manifest-Datei, mit der Bestandsdateien und die zugehörigen Datendateien automatisch entdecken kann. Das Hive-kompatible Manifest funktioniert mit den Hive-kompatiblen Services 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 mit Apache Hive kompatible Manifest-Datei symlink.txt funktioniert derzeit nicht mit  AWS Glue.

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