AWS S3 - Athena无需gz压缩

4
我将使用以下语句在AWS Athena中创建一个表格:
CREATE TABLE table2
WITH 
(
  format='JSON',
  external_location='s3://bucket/path'
) AS
SELECT field1, field2, field3, field4, field5, field6
FROM table1
ORDER BY field1, field2

然而,当我查看external_location时,发现所有的文件都被压缩成了gz格式。是否有可能关闭压缩?也就是说,只将原始JSON写入S3存储桶。

可能相关:Athena超越基础知识 - John Rotenstein
2个回答

5

从2022年5月开始(我没有看到任何相关公告...),您可以禁用压缩功能。您需要在查询的TBL_PROPERTIES / WITH部分指定write_compression

CREATE TABLE new_table
WITH (write_compression = 'NONE', format = 'TEXTFILE')
AS SELECT ...

所有格式的压缩(包括“NONE”)都可以在这里找到: https://docs.aws.amazon.com/athena/latest/ug/compression-formats.html

1
我刚刚测试了 write_compression = 'NONE' 是可行的。 - Kharthigeyan

5

目前,使用 Athena 的 CTAS 功能无法创建未压缩的文件。对于 ORC 和 Parquet 格式,您可以选择压缩类型,但对于其他所有格式,gzip 将无论如何被使用。

有点讽刺的是,尽管您无法获取未压缩的 CTAS 输出,但无法获取常规查询输出的压缩方式。


截至2022年2月,文本文件和JSON格式的默认压缩仍然是GZIP,并且没有不使用压缩的选项。但是,您可以为JSON、TSV、CSV和文本的自定义SerDes指定'write_compression'为ZSTD、SNAPPY、GZIP和BZIP2。文档:https://docs.aws.amazon.com/athena/latest/ug/compression-formats.html - Captain Caveman
1
从2022年5月开始,似乎可以指定write_compression = 'NONE'作为TBL_PROPERTIES。 - DarkCenobyte
将编写压缩 = 'NONE' 作为 TBL_PROPERTIES。 - Kharthigeyan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接