我密切关注了有关将 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
实际上失踪了。我已经尝试过:
- 列出可用的扩展显示
aws_s3
扩展已安装:
SELECT * FROM pg_available_extensions where name like '%aw%';
Result:
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)
- 列出扩展功能并没有显示
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;
Result:
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 不起作用。
更多信息:PostgreSQL 12.3 on x86_64-pc-linux-gnu
.
谁能确认这个功能实际上缺失了吗?换句话说,任何人都可以使用这个功能吗?