Localização de lista de inventário - Amazon Simple Storage Service

Localização de lista de inventário

Quando uma lista de inventários é publicada, os arquivos manifestos são publicados no seguinte local no bucket de destino.

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
  • prefixo de destino é o prefixo (nome de chave de objeto) definido na configuração de inventário, que pode ser usado para agrupar todos os arquivos de lista de inventários em um local comum no bucket de destino.

  • source-bucket é o bucket de origem ao qual a lista de inventário se refere. Ele é adicionado para evitar colisões quando vários relatórios do inventário de diferentes buckets de origem são enviados ao mesmo bucket de destino.

  • O ID de config é adicionado para evitar colisões com vários relatórios do inventário do mesmo bucket de origem que são enviados ao mesmo bucket de destino. O config-ID vem da configuração do relatório de inventário e é o nome do relatório definido na configuração.

  • YYYY-MM-DDTHH-MMZ é o time stamp que consiste na hora de início e na data em que o relatório de inventário começa a fazer a varredura no bucket. Por exemplo, 2016-11-06T21-32Z.

  • manifest.json é o arquivo manifesto.

  • manifest.checksum é o MD5 do conteúdo do arquivo manifest.json.

  • symlink.txt é o arquivo manifesto compatível com o Apache Hive.

As listas de inventários são publicadas diária ou semanalmente no seguinte local do bucket de destino.

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 é o prefixo (nome da chave de objeto) definido na configuração de inventário. Ele pode ser usado para agrupar todos os arquivos da lista de inventários em um local comum no bucket de destino.

  • source-bucket é o bucket de origem ao qual a lista de inventário se refere. Ele é adicionado para evitar colisões quando vários relatórios do inventário de diferentes buckets de origem são enviados ao mesmo bucket de destino.

  • example-file-name.csv.gz é um dos arquivos de inventário em formato CSV. Os nomes de inventário ORC terminam com a extensão do nome do arquivo .orc, e os nomes de inventário do Parquet terminam com a extensão de nome de arquivo .parquet.

Manifesto de inventário

Os arquivos manifestos manifest.json e symlink.txt descrevem onde os arquivos de inventário estão localizados. Sempre que uma nova lista de inventários é entregue, um novo conjunto de arquivos manifestos a acompanha. Esses arquivos podem se sobrepor. Em buckets habilitados para versionamento, o Amazon S3 cria versões dos arquivos de manifesto.

Cada manifesto contido no arquivo manifest.json fornece metadados e outras informações básicas sobre um inventário. Essas informações incluem:

  • Nome do bucket de origem

  • Nome do bucket de destino

  • Versão do inventário

  • Time stamp de criação no formato de data de referência (epoch) que consiste na hora de início e na data em que o relatório de inventário começa a fazer a varredura no bucket

  • Formato e esquema de arquivos de inventário

  • Lista dos arquivos de inventário que estão no bucket de destino

Sempre que um arquivo manifest.json é gravado, ele é acompanhado por um arquivo manifest.checksum, que representa o MD5 do conteúdo do arquivo manifest.json.

exemplo Manifesto de inventário em um arquivo manifest.json

Os exemplos a seguir mostram um manifesto de inventário em um arquivo manifest.json para inventários formatados CSV, ORC e Parquet.

CSV

Veja a seguir um exemplo de manifesto em um arquivo manifest.json para um inventário em formato CSV.

{ "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

Veja a seguir um exemplo de manifesto em um arquivo manifest.json para um inventário em formato ORC.

{ "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

Veja a seguir um exemplo de manifesto em um arquivo manifest.json para um inventário em formato Parquet.

{ "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" } ] }

O symlink.txt é um arquivo manifesto compatível com o Apache Hive pelo qual o Hive detecta automaticamente arquivos de inventário e seus arquivos de dados associados. O manifesto compatível com o Hive funciona com os serviços compatíveis com o Athena e o Amazon Redshift Spectrum. Ele também funciona com aplicativos compatíveis com o Hive, como Presto, Apache Hive, Apache Spark e muitos outros.

Importante

O symlink.txt arquivo manifesto compatível com Apache Hive atualmente não funciona com o AWS Glue.

A leitura do symlink.txt com Apache Hive e Apache Spark não é compatível com arquivos de inventário nos formatos ORC e Parquet.