使用 SQL 代码向雅典娜中现有的 table 添加新的分区方案
Add new partition-scheme to existing table in athena with SQL code
是否可以为 Athena 中目前没有分区的现有 table 添加分区?如果是这样,也请在答案中写下这样做的语法。
例如:
ALTER TABLE table1 ADD PARTITION (ourDateStringCol = '2021-01-01')
以上命令会出现如下错误:
失败:SemanticException table 未分区但存在分区规范
注意:我已经进行了网络搜索,并且存在 SQL 服务器的变体,或者将分区添加到 already 分区 table。但是,我个人找不到可以成功将分区添加到现有未分区 table.
的情况
这与以下内容极其相似:
SemanticException adding partiton Hive table
但是,那里给出的答案需要重新创建 table。
我想这样做而不重新创建表格e.
Athena 中的分区基于 S3 中的文件夹结构。与将数据加载到磁盘或内存中的标准 RDBMS 不同,Athena 基于扫描 S3 中的数据。这就是您享受服务的规模和低成本的方式。
意思是你必须把你的数据按照有意义的结构放在不同的文件夹里,比如year=2019, year=2020,并且确保每一年的数据都是并且只在那个文件夹里。
简单的解决方案是 运行 一个 CREATE TABLE AS SELECT (CTAS) 查询,它将复制数据并创建一个新的 table可以针对您的分析查询进行优化。您可以选择 table 格式(例如 Parquet)、压缩(例如 SNAPPY)以及分区架构(例如每年)。
是否可以为 Athena 中目前没有分区的现有 table 添加分区?如果是这样,也请在答案中写下这样做的语法。
例如:
ALTER TABLE table1 ADD PARTITION (ourDateStringCol = '2021-01-01')
以上命令会出现如下错误:
失败:SemanticException table 未分区但存在分区规范
注意:我已经进行了网络搜索,并且存在 SQL 服务器的变体,或者将分区添加到 already 分区 table。但是,我个人找不到可以成功将分区添加到现有未分区 table.
的情况这与以下内容极其相似: SemanticException adding partiton Hive table
但是,那里给出的答案需要重新创建 table。
我想这样做而不重新创建表格e.
Athena 中的分区基于 S3 中的文件夹结构。与将数据加载到磁盘或内存中的标准 RDBMS 不同,Athena 基于扫描 S3 中的数据。这就是您享受服务的规模和低成本的方式。
意思是你必须把你的数据按照有意义的结构放在不同的文件夹里,比如year=2019, year=2020,并且确保每一年的数据都是并且只在那个文件夹里。
简单的解决方案是 运行 一个 CREATE TABLE AS SELECT (CTAS) 查询,它将复制数据并创建一个新的 table可以针对您的分析查询进行优化。您可以选择 table 格式(例如 Parquet)、压缩(例如 SNAPPY)以及分区架构(例如每年)。