Как скопировать AWS Клеить структуру таблицы на AWS Redshift - PullRequest
0 голосов
/ 12 марта 2020

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

Вручную я сделал это с Django Python, я получаю метаданные таблицы, создаю команду «CREATE TABLE ...» и выполняю ее. Это работает, у меня уже есть это альтернативное решение. Можем ли мы сделать это со стороны AWS или с помощью AWS SDK, таких как Boto3 ? Мне не нужны никакие данные внутри таблицы, я просто хочу создать пустую таблицу в AWS Redshift. Возможно ли это?

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

1 Ответ

2 голосов
/ 12 марта 2020

Учитывая, что ваша таблица 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

Оттуда вы сможете более легко перемещать данные из спектра в стандартное красное смещение.

Ссылка (s):

...