AWS RDS Postgres 테이블을 S3에 CSV로 내보내는 것과 관련된 설명서를 면밀히 따랐지만 여전히 작동하지 못했습니다. 문서 URL
보다 구체적으로 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 (unknown, unknown, unknown) 함수가 없습니다. 힌트 : 주어진 이름 및 인수 유형과 일치하는 함수가 없습니다. 명시 적 유형 캐스트를 추가해야 할 수 있습니다.
이 오류는 문서화되지 않았습니다 (또는 관련 문서를 찾을 수 없음). aws_s3.query_export_to_s3
기능이 실제로 확장 프로그램에서 누락 된 것 같습니다 !
이 기능 aws_s3.query_export_to_s3
이 실제로 없는지 확인했습니다 . 나는 이미 시도했다 :
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)
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)
추가 정보 : 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 Support의 원래 응답 :
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] 삭제
몇 마디 만하겠습니다