Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL代码向athena中的现有表添加新的分区方案_Sql_Amazon Athena_Database Partitioning - Fatal编程技术网

使用SQL代码向athena中的现有表添加新的分区方案

使用SQL代码向athena中的现有表添加新的分区方案,sql,amazon-athena,database-partitioning,Sql,Amazon Athena,Database Partitioning,甚至可以在雅典娜现有的表中添加一个当前没有分区的分区吗?如果是这样,请在答案中写下这样做的语法 例如: 上述命令将给出以下错误: 失败:SemanticException表未分区,但存在分区规范 注意:我已经进行了web搜索,SQL server存在变体,或者向已经分区的表中添加了分区。然而,我个人找不到一个可以成功地将分区添加到现有的非分区表中的情况 这与: 但是,这里给出的答案需要重新创建表 我希望这样做而不必重新创建table.Athena中的分区基于S3中的文件夹结构。与将数据加载到磁

甚至可以在雅典娜现有的表中添加一个当前没有分区的分区吗?如果是这样,请在答案中写下这样做的语法

例如:

上述命令将给出以下错误:

失败:SemanticException表未分区,但存在分区规范

注意:我已经进行了web搜索,SQL server存在变体,或者向已经分区的表中添加了分区。然而,我个人找不到一个可以成功地将分区添加到现有的非分区表中的情况

这与:

但是,这里给出的答案需要重新创建表


我希望这样做而不必重新创建table.

Athena中的分区基于S3中的文件夹结构。与将数据加载到磁盘或内存中的标准RDBMS不同,Athena基于S3中的扫描数据。这就是您享受服务规模和低成本的方式

这意味着,您必须将数据放在不同文件夹中,以一种有意义的结构,例如year=2019、year=2020,并确保每年的数据全部且仅在该文件夹中

简单的解决方案是运行createtableaselect()查询,该查询将复制数据并创建一个新表,该表可以针对您的分析查询进行优化。您可以选择表格格式(例如,拼花地板)、压缩(例如,SNAPPY)以及分区模式(例如,每年)

ALTER TABLE table1 ADD PARTITION (ourDateStringCol = '2021-01-01')