AWS Redshift для файлов паркета S3 с использованием AWS Glue

#aws-glue #amazon-redshift-spectrum

#aws-glue #amazon-redshift-spectrum

Вопрос:

У нас есть вариант использования, когда мы обрабатываем данные в Redshift. Но я хочу создать резервную копию этих таблиц в S3, чтобы я мог запрашивать их с помощью Spectrum.

Для перемещения таблиц из Redshift в S3 я использую Glue ETL. Я создал поисковый модуль для AWS Redshift. Задание на склеивание преобразует данные в parquet и сохраняет их в S3 с разделением по дате. Затем другой поисковый робот сканирует файлы S3, чтобы снова каталогизировать данные.

Как я могу устранить второй поисковый модуль и сделать это в самом задании?

Ответ №1:

Нет необходимости использовать AWS Glue или Athena для выгрузки данных Redshift в S3 в формате Parquet. Функция выгрузки данных в формате Parquet теперь поддерживается в Redshift:

 UNLOAD ('select-statement')
TO 's3://object-path/name-prefix'
FORMAT PARQUET
  

Документацию можно найти по адресу ВЫГРУЗКА — Amazon Redshift

Ответ №2:

Да, вы можете исключить 2-й поисковый робот, но не в job, в качестве альтернативы вы можете напрямую создать таблицу в Athena, если знаете схему файлов, присутствующих в s3, используя инструкции create external table DDL. Затем выполните исправление MSCK в таблице, чтобы заполнить данные, присутствующие во всех разделах, как только это будет сделано, вы можете обновить новый раздел в каталоге клея с помощью вызова API обновления раздела клея.

Ответ №3:

Вместо создания другого сканера для обновления каталога клея создайте внешнюю таблицу в AWS Athena. Для получения более подробной информации о команде создания внешней таблицы обратитесь к следующей документации от AWS :

AWS Athena — Создать таблицу

Поскольку ваши данные разделены, вам необходимо будет обновлять информацию о разделе в каталоге клея после каждого запуска. Для этого вы можете использовать команду восстановления MSCK следующим образом :

 MSCK REPAIR TABLE table_name
  

Чтобы автоматизировать это с помощью кода, вы можете использовать любой AWS SDK по следующей ссылке, в зависимости от выбранного вами языка: AWS SDKS.

Комментарии:

1. Будет ли таблица Athena также присутствовать в каталоге клея?

2. Да, по умолчанию Athena использует каталог клея в качестве своего метастора. Ранее Amazon Athena управляла собственным каталогом данных до появления каталога Glue. Если ваша athena все еще указывает на старый каталог, вы можете перенести ее в каталог клея, используя следующую документацию AWS: docs.aws.amazon.com/athena/latest/ug/glue-upgrade.html