aws_s3.query_export_to_s3 함수를 사용하여 AWS RDS Postgres 테이블을 S3의 CSV로 내보낼 수 없음

gnu_horns

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이 실제로 없는지 확인했습니다 . 나는 이미 시도했다 :

  1. 사용 가능한 확장을 나열하면 aws_s3esxtension이 설치된 것으로 표시됩니다.
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 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관