Вы можете использовать функцию Redshift UNLOAD для вывода таблиц прямо на S3. ведро. К сожалению, вам нужно сделать это отдельно для каждой таблицы. Вы также захотите заархивировать все запросы к схеме, CREATE
и т. д. для своих таблиц (решение pg_dump
не имеет этой проблемы, поскольку оно может захватывать определения таблиц, но требует локального хранения файлов и ручной отправки на S3. ..может быть, это того стоит для случая, такого как архивирование и полное отключение).
UNLOAD('select * from your_table') TO 's3://your_bucket/your_table.csv'
WITH CREDENTIALS 'aws_access_key_id=YOUR_KEY;aws_secret_access_key=YOUR_SECRET'
DELIMITER ',' NULL 'null' ALLOWOVERWRITE;
После того, как все ваши таблицы будут помещены в корзину S3, вы можете установить жизненный цикл (правила, созданные на панели свойств корзины на панели жизненного цикла) для архивации в класс хранилища glacier.
Это немного сбивает с толку, потому что Glacier — это собственная служба, но когда вы архивируете через жизненный цикл, файлы остаются в корзине S3. Вы можете сказать, что они находятся в glacier, выбрав файл в консоли S3, выбрав панель properties
и открыв панель Details
. Там должно быть сказано Storage class: Glacier
.
Если вам когда-нибудь понадобится восстановить, вы будете использовать COPY. команда:
COPY your_table FROM 's3://your_bucket/your_table.csv'
CREDENTIALS 'aws_access_key_id=[YOURKEY];aws_secret_access_key=[YOURSECRET]'
DELIMITER ',' NULL 'null' IGNOREBLANKLINES EMPTYASNULL
BLANKSASNULL TIMEFORMAT 'auto' FILLRECORD MAXERROR 1
person
systemjack
schedule
01.02.2017