【问题标题】:Amazon Athena ALTER TABLE ADD PARTITION query not workingAmazon Athena ALTER TABLE ADD PARTITION 查询不起作用
【发布时间】:2017-06-24 00:25:57
【问题描述】:

我正在尝试使用 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 's3://my-s3-folder...
查询失败
1 条语句失败。

在查询编辑器中运行

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

查询成功。

任何人都知道如何进行这项工作,以便我可以将一些添加分区查询一起批处理?

【问题讨论】:

    标签: sql-workbench-j amazon-athena


    【解决方案1】:

    我没有成功地在 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/';
    

    这对你有用吗?

    【讨论】:

      【解决方案2】:

      如果您想批量添加分区,您可以根据需要多次重复包括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 中出现问题的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        • 2020-05-04
        • 2011-02-06
        • 2021-12-21
        相关资源
        最近更新 更多