查找清单列表
在清单列表发布后,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.checksum
是 manifest.json
文件内容的 MD5。
-
symlink.txt
是与 Apache Hive 兼容的 Manifest 文件。
清单列表每天或每周发布到目标存储桶中的以下位置。
destination-prefix
/source-bucket
/config-ID
/data/example-file-name.csv.gz
...
destination-prefix
/source-bucket
/config-ID
/data/example-file-name-1.csv.gz
-
destination-prefix
是在清单配置中设置的(对象键名称)前缀。它可用于对目标存储桶公共位置中的所有清单列表文件进行分组。
-
source-bucket
是清单列表所针对的源桶。添加它是为了防止在将不同的源存储桶中的多个清单发送到同一目标存储桶时发生冲突。
-
example-file-name
.csv.gz
是 CSV 清单文件之一。ORC 清单名称以文件扩展名 .orc
结尾,Parquet 清单名称以文件扩展名 .parquet
结尾。
清单 Manifest
Manifest 文件 manifest.json
和 symlink.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 兼容的应用程序,包括 Presto、Apache Hive、Apache Spark 以及许多其他应用程序。
symlink.txt
Apache Hive 兼容的 Manifest 文件当前不适用于 AWS Glue。
对于 ORC 和 Parquet 格式的清单文件,不支持使用 Apache Hive 和 Apache Spark 读取 symlink.txt
。