我正在尝试使用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/';
查询成功。
任何人都知道如何使这项工作,所以我可以批量添加一些分区查询?
答案 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中出现问题的原因。