AWS Athena запрашивает смешанные объекты JSON, некоторые из которых были перемещены в Glacier

У меня есть таблица Athena, указывающая на список объектов JSON, похожих на:

CREATE EXTERNAL TABLE `example_table` (
`foo` struct<
  `bar`: string>
)
ROW FORMAT SERDE 
  'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
  'ignore.malformed.json' = 'true'
)
LOCATION 
  's3://bucket/json';

Эта корзина имеет политику жизненного цикла, так что файлы определенного возраста отправляются в Glacier. Я хотел бы запросить другие файлы, но вижу следующую ошибку:

Your query has the following error(s):

HIVE_CURSOR_ERROR: com.amazonaws.services.s3.model.AmazonS3Exception: 
The operation is not valid for the object's storage class (
   Service: Amazon S3; 
   Status Code: 403; 
   Error Code: InvalidObjectState;

AWS утверждает, что игнорирует объекты Glacier в этом обновлении (2/2019): https://docs.aws.amazon.com/athena/latest/ug/release-note-2019-02-18.html

Мне не отказано в доступе, а скорее InvalidObjectState. Как я могу создать таблицу для запроса этих файлов JSON?


person Stolson    schedule 03.04.2020    source источник


Ответы (1)


Являются ли ваши объекты Glacier или Glacier Deep Archive. Кажется, класс хранения DEEP_ARCHIVE не игнорируется.

Вы можете структурировать свой ключ так, чтобы использовать формат даты и времени, то есть 2020/05/14/blob.json. Если вы можете это сделать, вы можете разделить свои данные, что не позволит вам использовать данные, которые были изменены правилом жизненного цикла.

Дополнительные URL

person Chris Williams    schedule 14.05.2020
comment
Это было правильно - наши объекты были в Glacier Deep Archive. Спасибо! - person Stolson; 19.05.2020