我试图使用SQLWorkBenchJ将分区添加到Athena中的表中。当在雅典娜查询编辑器中运行时,查询工作正常。当我使用SQLWorkbench运行它时,它不起作用
ALTER TABLE "AwsDataCatalog".mydb.mytable ADD IF NOT EXISTS
PARTITION (folder = '10036', full = 'fullvalue') LOCATION 's3://my-s3-folder/10036/fullvalue/';注意:我也尝试过使用EXTERNAL_TABLE
sqlworkbench只是返回:
执行SQL命令时出错:
更改表"AwsDataCatalog".mydb.mytable添加分区(文件夹= '10036',完整>=‘富价值’)位置‘s3://my-S3-文件夹. 未能运行查询 1次陈述失败。
在查询编辑器中运行
ALTER TABLE mydb.mytable ADD PARTITION (folder = '10039', full = 'fullvalue') >LOCATION 's3://my-s3-folder/10039/fullvalue/';查询成功。
任何人都知道如何使这个工作,以便我可以批处理一些添加分区查询在一起?
发布于 2019-03-31 11:28:02
如果您想批量添加分区,您可以根据需要重复包含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中出现问题的原因。
发布于 2017-02-08 19:12:59
我还没有成功地用"AwsDataCatalog"在ALTER或SHOW分区语句中限定数据库和表名(但它在SELECT中有效)。不如就这样:
ALTER TABLE "AwsDataCatalog".mydb.mytable ADD IF NOT EXISTS
PARTITION (folder = '10036', full = 'fullvalue')
LOCATION 's3://my-s3-folder/10036/fullvalue/';这对你有用吗?
https://stackoverflow.com/questions/42078343
复制相似问题