COPY 命令:AWS Aurora Postgresql,s3 扩展



我正在尝试执行 COPY 命令以使用 aws_s3.table_import_from_s3 函数将 csv 文件从 S3 导入 csv 文件(Redshift 卸载命令的结果(导入 Amazon Aurora 数据库,但我不知道在命令中指示引号字符。

SELECT aws_s3.table_import_from_s3(
'hr.person', 
'',
'(FORMAT CSV,HEADER true,QUOTES ''"'')',
aws_commons.create_s3_uri('redshift-unload-tmp','resul_file.csv','us-east-2')
);

谢谢

我将更详细地解释我的用例:

我使用 UNLOAD 命令从 Redshift 中的表中"导出"数据,这是命令:

UNLOAD('SELECT * FROM schema.table')
TO 's3://bucket-name/prefix_'
HEADER
CSV
NULL AS '00'
IAM_ROLE 'arn:aws:iam::accountNumber:role/aRoleWithRedshiftAndS3Permissions';

目标我需要将 Redshift 数据(现在的文件在 s3 中(放入 RDS 数据库 (Aurora-postgresql(,在导入文件之前,我在 s3 中重命名了文件并添加了扩展名.csv;我使用 pgAdmin 4 作为 Postgresql 客户端,并打开查询编辑器来执行以下命令:

  1. 将新的 s3 扩展添加到数据库:

CREATE EXTENSION aws_s3 CASCADE;
NOTICE: installing required extension "aws_commons"

  1. 执行函数从 s3 导入文件

select aws_s3.table_import_from_s3(
	'schame.table_name',
	'',
	'(FORMAT CSV, HEADER true)',
	aws_commons.create_s3_uri('sample_s3_bucket_name','source_file_name.csv','aws-region')
);

注意:如果您使用 CSV 格式,默认情况下引号字符为 ",则无需将引号指示为选项参数,如果您使用不同的引号字符,则需要这样做。

最新更新