Команда COPY: AWS Аврора Postgresql, расширение s3 - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь выполнить команду COPY для импорта файла CSV из S3 (результат команды UNLOAD из Redshift) в базу данных Amazon Aurora Использование функции aws_s3.table_import_from_s3 для импорта данных Amazon S3 , но Я не знаю, чтобы указать символ кавычек в команде.

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')
);

Спасибо

1 Ответ

0 голосов
/ 09 февраля 2020

Я объясню свой вариант использования более подробно:

Источник Я использовал команду UNLOAD для «экспорта» данных из таблицы в Redshift, это команда:

UNLOAD('SELECT * FROM schema.table')
TO 's3://bucket-name/prefix_'
HEADER
CSV
NULL AS '\000'
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"
Выполнить функцию для импорта файла из 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 по умолчанию символом кавычки является ", то вам не нужно указывать кавычку как параметр параметра, это нужно сделать, если вы используете другой символ кавычки.

...