查找清单列表 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

查找清单列表

在清单列表发布后,Manifest 文件将发布到目标存储桶中的以下位置。

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 是清单配置中设置的 (对象键名) 前缀,可用于对目标存储桶中的公共位置的所有清单列表文件进行分组。

  • source-bucket 是清单列表所针对的源存储桶。添加它是为了防止在将不同的源存储桶中的多个清单发送到同一目标存储桶时发生冲突。

  • config-ID 为了防止从同一源存储桶发送到同一目标存储桶的多个清单报告发生冲突而添加。config-ID 来自清单报告配置,是设置时定义的报告名称。

  • YYYY-MM-DDTHH-MMZ 是时间戳,包含生成清单报告时开始扫描存储桶的开始时间和日期;例如,2016-11-06T21-32Z

  • manifest.json 是 Manifest 文件。

  • manifest.checksummanifest.json 文件内容的 MD5。

  • symlink.txt 是与 Apache Hive 兼容的 Manifest 文件。

清单列表每天或每周发布到目标存储桶中的以下位置。

destination-prefix/source-bucket/config-ID/example-file-name.csv.gz ... destination-prefix/source-bucket/config-ID/example-file-name-1.csv.gz
  • destination-prefix 是清单配置中设置的 (对象键名) 前缀。它可用于对目标存储桶公共位置中的所有清单列表文件进行分组。

  • source-bucket 是清单列表所针对的源存储桶。添加它是为了防止在将不同的源存储桶中的多个清单发送到同一目标存储桶时发生冲突。

  • example-file-name.csv.gz 是 CSV 清单文件之一。ORC 清单名称以文件扩展名 .orc 结尾,Parquet 清单名称以文件扩展名 .parquet 结尾。

清单 Manifest

Manifest 文件 manifest.jsonsymlink.txt 描述清单文件的位置。每次交付新的清单列表时,它均带有一组新的 Manifest 文件。这些文件可能会互相覆盖。在启用了版本控制的存储桶中,Amazon S3 会创建清单文件的新版本。

manifest.json 文件中包含的每个 Manifest 均提供了有关清单的元数据和其他基本信息。这些信息包含:

  • 源存储桶名称

  • 目标存储桶名称

  • 清单版本

  • 以纪元日期格式创建时间戳,包含生成清单报告时开始扫描存储桶的开始时间和日期

  • 清单文件的格式和架构

  • 目标存储桶中清单文件的实际列表

每当写入 manifest.json 文件后,它都会附带一个 manifest.checksum 文件 (作为 manifest.json 文件内容的 MD5)。

例 manifest.json 文件中的清单

以下示例显示了 CSV、ORC 和 Parquet 格式清单的 manifest.json 文件中的清单 Manifest。

CSV

下面是 CSV 格式清单的 manifest.json 文件中的 Manifest 示例。

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

下面是 ORC 格式清单的 manifest.json 文件中的 Manifest 示例。

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

下面是 Parquet 格式清单的 manifest.json 文件中的清单示例。

{ "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); 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); }", "files": [ { "key": "inventory/example-source-bucket/data/d754c470-85bb-4255-9218-47023c8b4910.parquet", "size": 56291, "MD5checksum": "5825f2e18e1695c2d030b9f6eexample" } ] }

symlink.txt 文件是一个与 Apache Hive 兼容的 Manifest 文件,使 Hive 能够自动发现清单文件及其关联的数据文件。与 Hive 兼容的 Manifest 文件可以与 Hive 兼容的服务 Athena 和 Amazon Redshift Spectrum 一起使用。它还可用于与 Hive 兼容的应用程序,包括 PrestoApache HiveApache Spark 以及许多其他应用程序。

重要

symlink.txt Apache Hive 兼容的 Manifest 文件当前不适用于 Amazon Glue。

对于 ORC 和 Parquet 格式的清单文件,不支持使用 Apache HiveApache Spark 读取 symlink.txt