인벤토리 목록 위치 찾기
인벤토리 목록 위치 찾기
인벤토리 목록이 게시되면 매니페스트 파일은 대상 버킷의 다음 위치에 게시돼요.
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는 인벤토리 구성에서 선택적으로 지정하는 객체 키 이름 접두사예요. 이 접두사를 사용해 모든 인벤토리 목록 파일을 대상 버킷 안의 공통 위치에 묶을 수 있어요.amzn-s3-demo-source-bucket은 인벤토리 목록이 대상으로 하는 소스 버킷이에요. 서로 다른 소스 버킷의 여러 인벤토리 보고서가 같은 대상 버킷으로 전송될 때 충돌을 방지하기 위해 소스 버킷 이름이 추가돼요.config-ID는 같은 소스 버킷에서 같은 대상 버킷으로 전송되는 여러 인벤토리 보고서 간 충돌을 방지하기 위해 추가돼요.config-ID는 인벤토리 보고서 구성에서 비롯되며, 설정 중에 정의된 보고서의 이름이에요.YYYY-MM-DDTHH-MMZ는 인벤토리 보고서 생성 프로세스가 버킷 스캔을 시작하는 시작 시각과 날짜로 구성된 타임스탬프예요(예:2016-11-06T21-32Z).manifest.json은 매니페스트 파일이에요.manifest.checksum은manifest.json파일 내용의 MD5 해시예요.symlink.txt는 Apache Hive 호환 매니페스트 파일이에요.
인벤토리 목록은 매일 또는 매주 대상 버킷의 다음 위치에 게시돼요.
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는 인벤토리 구성에서 선택적으로 지정하는 객체 키 이름 접두사예요. 이 접두사를 사용해 모든 인벤토리 목록 파일을 대상 버킷 안의 공통 위치에 묶을 수 있어요.amzn-s3-demo-source-bucket은 인벤토리 목록이 대상으로 하는 소스 버킷이에요. 서로 다른 소스 버킷의 여러 인벤토리 보고서가 같은 대상 버킷으로 전송될 때 충돌을 방지하기 위해 소스 버킷 이름이 추가돼요.example-file-name``.csv.gz는 CSV 인벤토리 파일 중 하나예요. ORC 인벤토리 이름은 파일 이름 확장자.orc로 끝나고, Parquet 인벤토리 이름은 파일 이름 확장자.parquet로 끝나요.
출처: 문서
본문
인벤토리 매니페스트 (Inventory manifest)
매니페스트 파일 manifest.json과 symlink.txt는 인벤토리 파일이 어디에 있는지 설명해요. 새 인벤토리 목록이 전달될 때마다 새 매니페스트 파일 세트가 함께 전달돼요. 이 파일들은 서로 덮어쓸 수 있어요. 버전 관리가 활성화된 버킷에서는 Amazon S3가 매니페스트 파일의 새 버전을 만들어요.
manifest.json 파일에 포함된 각 매니페스트는 인벤토리에 대한 메타데이터와 기타 기본 정보를 제공해요. 이 정보에는 다음이 포함돼요.
- 소스 버킷 이름
- 대상 버킷 이름
- 인벤토리 버전
- 인벤토리 보고서 생성 프로세스가 버킷 스캔을 시작하는 시작 시각과 날짜로 구성된 epoch 날짜 형식의 생성 타임스탬프
- 인벤토리 파일의 형식과 스키마
- 대상 버킷에 있는 인벤토리 파일 목록
manifest.json 파일이 기록될 때마다 manifest.json 파일 내용의 MD5 해시인 manifest.checksum 파일이 함께 기록돼요.
manifest.json 파일의 인벤토리 매니페스트 예시 (Example Inventory manifest in a manifest.json file)
다음은 CSV, ORC, Parquet 형식 인벤토리에 대한 manifest.json 파일의 인벤토리 매니페스트 예시예요.
CSV — 다음은 CSV 형식 인벤토리의 manifest.json 파일에 있는 매니페스트 예시예요.
{ "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 — 다음은 ORC 형식 인벤토리의 manifest.json 파일에 있는 매니페스트 예시예요.
{ "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 — 다음은 Parquet 형식 인벤토리의 manifest.json 파일에 있는 매니페스트 예시예요.
{ "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" } ] }
symlink.txt 파일은 Hive가 인벤토리 파일과 관련 데이터 파일을 자동으로 검색할 수 있게 해주는 Apache Hive 호환 매니페스트 파일이에요. Hive 호환 매니페스트는 Athena, Amazon Redshift Spectrum 같은 Hive 호환 서비스에서 작동해요. 또한 Presto, Apache Hive, Apache Spark 등 Hive 호환 애플리케이션에서도 작동해요.
중요
symlink.txtApache Hive 호환 매니페스트 파일은 현재 AWS Glue에서 작동하지 않아요.
Apache Hive와 Apache Spark로 symlink.txt 파일을 읽는 것은 ORC 및 Parquet 형식 인벤토리 파일에서는 지원되지 않아요.