Как скопировать структуру таблицы AWS Glue в AWS Redshift

Я создал новую базу данных и структуру таблицы с помощью AWS Glue без использования краулера и могу сделать то же самое, я имею в виду создание структуры таблицы с помощью краулера. Проблема не в этом. Я хочу создать такую ​​же структуру таблиц в AWS Redshift на основе метаданных таблиц AWS Glue.

Вручную я сделал это с помощью Django и Python, я получил метаданные таблицы, создал команду «СОЗДАТЬ ТАБЛИЦУ ...» и выполнил ее. Работает, альтернативное решение у меня уже есть. Можем ли мы сделать это со стороны AWS или с помощью таких пакетов SDK AWS, как Boto3? Мне не нужны данные внутри таблицы, просто хочу создать пустую таблицу в AWS Redshift. Это возможно?

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


person tikirin tukurun    schedule 12.03.2020    source источник
comment
Вы пробовали создать внешнюю схему в спектре красного смещения, как в docs.amazonaws.cn/en_us/redshift/latest/dg/. Когда вы создаете таблицу в Glue, она автоматически становится доступной в красном смещении.   -  person Prabhakar Reddy    schedule 12.03.2020


Ответы (1)


Если вы заполнили свою таблицу Glue правильной схемой и всеми ее разделами, вы сможете выполнять запросы к ней с помощью Redshift Spectrum без необходимости создавать фактическую таблицу с помощью оператора CREATE TABLE....

Из вашего клиента / редактора RedShift создайте внешнюю схему (Spectrum), указывающую на вашу базу данных каталога данных, содержащую ваши таблицы Glue (здесь с именем spectrum_db). Значение iam_role должно быть ARN вашей роли IAM кластера Redshift, к которой вы бы добавили политику действий glue:GetTable.

create external schema spectrum_schema from data catalog 
database 'spectrum_db' 
iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole'
create external database if not exists;

Теперь вы должны иметь возможность запускать запросы к своим внешним таблицам Glue. Единственным ограничением является то, что вы не можете SELECT * работать над своими таблицами:

SELECT ... FROM spectrum_schema.Your_table

Оттуда вы сможете легче перемещать данные из Spectrum в Standard Redshift.

Использованная литература):

person Alexis Facques    schedule 12.03.2020