AWS Athena 查询混合 JSON 个对象,其中一些对象已移至 Glacier
AWS Athena querying mixed JSON objects that have some moved to Glacier
我有一个 Athena table 指向一个 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 声称根据此更新(2/2019)忽略 Glacier 对象:https://docs.aws.amazon.com/athena/latest/ug/release-note-2019-02-18.html
我没有被拒绝访问,而是 InvalidObjectState。如何创建 table 来查询这些 JSON 文件?
您的对象是 Glacier 还是 Glacier Deep Archive。 DEEP_ARCHIVE
的存储 class 似乎没有被忽略。
您是否可以构造您的密钥以使用日期时间格式,即 2020/05/14/blob.json
。如果你能做到这一点,那么你就可以对你的数据进行分区,这将阻止你使用已被生命周期规则修改的数据。
其他网址
我有一个 Athena table 指向一个 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 声称根据此更新(2/2019)忽略 Glacier 对象:https://docs.aws.amazon.com/athena/latest/ug/release-note-2019-02-18.html
我没有被拒绝访问,而是 InvalidObjectState。如何创建 table 来查询这些 JSON 文件?
您的对象是 Glacier 还是 Glacier Deep Archive。 DEEP_ARCHIVE
的存储 class 似乎没有被忽略。
您是否可以构造您的密钥以使用日期时间格式,即 2020/05/14/blob.json
。如果你能做到这一点,那么你就可以对你的数据进行分区,这将阻止你使用已被生命周期规则修改的数据。
其他网址