使用aws_s3.query_export_to_s3函数无法将AWS RDS Postgres表导出到S3中的CSV

gnu_horns

我密切关注了有关将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.query_export_to_s3(未知,未知,未知)不存在提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。

未记录此错误(或者我找不到相关文档)。似乎aws_s3.query_export_to_s3扩展中实际上缺少该功能!

我试图查看此功能aws_s3.query_export_to_s3是否真正丢失。我已经尝试过:

  1. 列出可用的扩展aws_s3名将显示esxtension已安装:
SELECT * FROM pg_available_extensions where name like '%aw%';

结果:

    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)
  1. 列出扩展功能不会显示该query_export_to_s3功能:
SELECT e.extname, ne.nspname AS extschema, p.proname, np.nspname AS proschema
FROM pg_catalog.pg_extension AS e
         INNER JOIN pg_catalog.pg_depend AS d ON (d.refobjid = e.oid)
         INNER JOIN pg_catalog.pg_proc AS p ON (p.oid = d.objid)
         INNER JOIN pg_catalog.pg_namespace AS ne ON (ne.oid = e.extnamespace)
         INNER JOIN pg_catalog.pg_namespace AS np ON (np.oid = p.pronamespace)
WHERE d.deptype = 'e' AND e.extname like '%aws%'
ORDER BY 1, 3;

结果:

   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)

  1. 最后,删除并重新创建扩展名aws_s3无效。

更多信息:PostgreSQL 12.3 on x86_64-pc-linux-gnu

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

证书

尝试升级到Postgres 12.4。我遇到了类似的问题,这就是AWS支持告诉我的内容(响应粘贴在下面)。[编辑]

更新资料

最初,我还没有完全正常工作,但是可以确认升级到Postgres 12.4,然后删除并重新创建该扩展程序。

DROP EXTENSION aws_s3 CASCADE;
DROP EXTENSION aws_commons CASCADE;
CREATE EXTENSION aws_s3 CASCADE;

来自AWS支持的原始回复:

基于describe-db-engine-versions [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"
        ]
    } ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将AWS Postgres RDS表导出到AWS S3

AWS-使用aws_s3扩展名(由RDS提供)的S3到RDS(postgres)导入失败

aws_s3.query_export_to_s3 PostgreSQL RDS 扩展将所有多部分 CSV 文件导出到带有标题的 S3

使用Glue从AWS RDS到S3的管道

尝试将数据从RDS导出到S3时如何连接到端点?

使用KMS将AWS RDS Aurora选择到S3加密存储桶中

AWS S3 CSV导出到Wordpress

aws_s3 - 不确定我是否理解如何使用

是否可以在禁用 ACL 的情况下使用 aws_s3?

如何将数据从AWS Postgres RDS传输到S3(然后称为Redshift)?

将CSV从S3加载到AWS RDS Aurora MySQL Serverless

用于从s3自动还原到rds的AWS Lambda

如何将导出的 RDS 快照从 S3 还原到 RDS 集群

从 S3 上导出的快照创建 RDS 实例

将大数据从PostgreSQL导出到AWS s3

如何将AWS DynamoDB表导出到S3存储桶?

使用执行者提供的环境凭据在远程上运行aws_s3任务

尝试使用包含等号的路径从S3加载到Postgres RDS中时,权限被拒绝

使用Glue将数据从RDS移至S3

是否可以使用AWS Data Pipeline将RDS数据库转储到S3?

数据从S3迁移到RDS

Ansible aws_s3模块失败,表明Boto3缺少时不存在

ansible aws_s3 get_url操作的最简单示例

将数据从 Amazon S3 移动到 Amazon RDS

将数据从S3加载到PostgreSQL RDS

使用Python将来自Amazon S3的大尺寸JSON压缩文件导入AWS RDS-PostgreSQL

从 S3 存储桶还原 AWS RDS SQL Server 上的备份文件

通过Crontab将AWS数据库备份RDS复制到S3(Cron Job)

无法使用 python 将数据附加到 AWS S3 中的现有 csv 文件