Amazon Athena ALTER TABLE ADD PARTITION查询无法正常工作

时间:2017-02-06 22:21:38

标签: sql-workbench-j amazon-athena

我正在尝试使用SQLWorkBenchJ将分区添加到Amazon Athena的表中。在Athena查询编辑器中运行时,查询工作正常。当我使用SQLWorkbench

运行它时,它不起作用
ALTER TABLE "AwsDataCatalog".mydb.mytable ADD IF NOT EXISTS 
PARTITION (folder = '10036', full = 'fullvalue') LOCATION 's3://my-s3-folder/10036/fullvalue/';

注意:我也尝试过使用ALTER EXTERNAL_TABLE

sqlworkbench只返回:

执行SQL命令时发生错误:

  

ALTER TABLE“AwsDataCatalog”.mydb.mytable ADD PARTITION(folder ='10036',full> ='fullvalue')LOCATION的3:// my-s3-folder ...
  无法运行查询
  1声明失败。

在查询编辑器中运行

ALTER TABLE mydb.mytable ADD PARTITION (folder = '10039', full = 'fullvalue') >LOCATION 's3://my-s3-folder/10039/fullvalue/';
  

查询成功。

任何人都知道如何使这项工作,所以我可以批量添加一些分区查询?

2 个答案:

答案 0 :(得分:0)

我没有成功在ALTER或SHOW PARTITION语句中用"AwsDataCatalog"限定数据库和表名(但它在SELECT中工作)。怎么样:

ALTER TABLE "AwsDataCatalog".mydb.mytable ADD IF NOT EXISTS 
PARTITION (folder = '10036', full = 'fullvalue')
LOCATION 's3://my-s3-folder/10036/fullvalue/';

这会对你有用吗?

答案 1 :(得分:0)

如果要批量添加分区,可以根据需要重复PARTITION及其后的部分:

ALTER TABLE mydb.mytable ADD IF NOT EXISTS 
  PARTITION (folder = '10036', full = 'fullvalue') LOCATION 's3://my-s3-folder/10036/fullvalue/'
  PARTITION (folder = '10037', full = 'fullvalue') LOCATION 's3://my-s3-folder/10037/fullvalue/'
  PARTITION (folder = '10038', full = 'fullvalue') LOCATION 's3://my-s3-folder/10038/fullvalue/';

跳过表名的"AwsDataCatalog"部分,它不是必需的,可能是您在SQLWorkbench中出现问题的原因。