Postgresql 无法使用AWS_S3.query_export_to_S3函数将AWS RDS Postgres表导出到S3中的CSV

Postgresql 无法使用AWS_S3.query_export_to_S3函数将AWS RDS Postgres表导出到S3中的CSV,postgresql,amazon-web-services,amazon-s3,export-to-csv,Postgresql,Amazon Web Services,Amazon S3,Export To Csv,我密切关注有关将AWS RDS Postgres表作为CSV导出到S3的文档,但仍然无法使其正常工作。 更具体地说,在创建aws_s3扩展之后 CREATE EXTENSION IF NOT EXISTS aws_s3 CASCADE; 我尝试执行此函数: SELECT * from aws_s3.query_export_to_s3('select * from users limit 10', 'sample-s3-bucket', '/users_demo.csv'); 失败,出现以

我密切关注有关将AWS RDS Postgres表作为CSV导出到S3的文档,但仍然无法使其正常工作。

更具体地说,在创建
aws_s3
扩展之后

CREATE EXTENSION IF NOT EXISTS aws_s3 CASCADE;
我尝试执行此函数:

SELECT * from aws_s3.query_export_to_s3('select * from users limit 10', 'sample-s3-bucket', '/users_demo.csv');
失败,出现以下错误:

[42883]错误:函数aws_s3.查询_导出_至_s3(未知,未知, 未知)不存在提示:没有与给定名称和 参数类型。您可能需要添加显式类型转换

此错误没有记录(或者我找不到相关的文档)。扩展中似乎缺少了
aws\u s3.query\u export\u to\u s3
函数

我试图查看是否确实缺少此函数
aws\u s3.query\u export\u to\u s3
。我已经试过:

  • 列出了可用的扩展,显示了已安装的
    aws_s3
    esxtension:
  • 结果:

        name     | default_version | installed_version |                   comment                   
    -------------+-----------------+-------------------+---------------------------------------------
     aws_s3      | 1.0             | 1.0               | AWS S3 extension for importing data from S3
     aws_commons | 1.0             | 1.0               | Common data types across AWS services
    (2 rows)
    
       extname   | extschema |        proname         |  proschema  
    -------------+-----------+------------------------+-------------
     aws_commons | public    | create_aws_credentials | aws_commons
     aws_commons | public    | create_s3_uri          | aws_commons
     aws_s3      | public    | table_import_from_s3   | aws_s3
     aws_s3      | public    | table_import_from_s3   | aws_s3
    (4 rows)
    
    
  • 列出扩展函数不会显示
    query\u export\u to\u s3
    函数:
  • 结果:

        name     | default_version | installed_version |                   comment                   
    -------------+-----------------+-------------------+---------------------------------------------
     aws_s3      | 1.0             | 1.0               | AWS S3 extension for importing data from S3
     aws_commons | 1.0             | 1.0               | Common data types across AWS services
    (2 rows)
    
       extname   | extschema |        proname         |  proschema  
    -------------+-----------+------------------------+-------------
     aws_commons | public    | create_aws_credentials | aws_commons
     aws_commons | public    | create_s3_uri          | aws_commons
     aws_s3      | public    | table_import_from_s3   | aws_s3
     aws_s3      | public    | table_import_from_s3   | aws_s3
    (4 rows)
    
    
  • 最后,删除并重新创建扩展aws_s3不起作用
  • 更多信息:
    x86_64-pc-linux-gnu上的PostgreSQL 12.3


    有人能确认这个功能确实缺失吗?换句话说,任何人都可以使用此功能吗?

    尝试升级到Postgres 12.4。我有一个类似的问题,这就是AWS支持告诉我的(回复粘贴在下面)。[已编辑]

    更新

    起初,我还没有完全做到这一点,但我可以确认升级到Postgres 12.4,删除并重新创建扩展是可行的

    DROP扩展aws_s3级联;
    丢弃扩展aws_公共级联;
    创建扩展aws_s3级联;
    
    AWS支持部门的原始响应:

    根据描述数据库引擎版本[1]的输出,我只能看到 以下特定引擎版本支持s3Export功能。因此 版本12.2不支持导出到S3功能

    [
        {
            "Engine": "postgres",
            "EngineVersion": "10.14",
            "SupportedFeatureNames": [
                "s3Import",
                "s3Export"
            ]
        },
        {
            "Engine": "postgres",
            "EngineVersion": "11.9",
            "SupportedFeatureNames": [
                "s3Import",
                "s3Export"
            ]
        },
        {
            "Engine": "postgres",
            "EngineVersion": "12.4",
            "SupportedFeatureNames": [
                "s3Import",
                "s3Export"
            ]
        } ]
    

    将RDS实例升级到12.4并执行以下操作对我很有效

    DROP EXTENSION aws_s3;
    丢弃扩展aws_commons;
    创建扩展aws_s3级联;
    
    我被这个版本的垃圾搞糊涂了。