AWS Data Pipeline DynamoDB to S3 to Redshift, включая JsonPaths

Мне известно о стандартном КОПИРОВАНИИ из DynamoDB в Redshift, но он работает только для схем без карт и списков. У меня есть несколько таблиц ddb с картами и списками, и мне нужно использовать jsonpaths для импорта в Redshift.

Итак, мой вопрос: могу ли я запланировать резервное копирование из DynamoDB в S3, а затем, когда резервное копирование будет завершено, запустить импорт в Redshift, включая конфигурацию jsonpaths? Я предполагаю, что это двухэтапный процесс. Или я могу создать единый конвейер данных, который будет выполнять резервное копирование и импорт?

В качестве альтернативы, есть ли средство выполнения задач, которое я могу использовать AWS, или мне нужно будет подключить событие (SNS), чтобы уведомить импорт о завершении резервного копирования?


person David Cornelson    schedule 15.03.2017    source источник
comment
Конвейер данных ..   -  person sandeep rawat    schedule 16.03.2017
comment
Да, но как можно совместить выполнение резервного копирования и импорта?   -  person David Cornelson    schedule 16.03.2017


Ответы (2)


В AWS теперь есть несколько сервисов, которые могут запускать задачи. Вы можете управлять рабочим процессом импорта с помощью пошаговых функций AWS. Функции AWS Lambda, соответствующие каждому этапу рабочего процесса импорта, могут создать задания AWS Batch, где первое задание будет резервировать ваши Таблица DynamoDB в S3, а второе задание будет импортировано в Redshift с использованием конфигурации jsonpaths.

person Alexander Patrikalakis    schedule 22.03.2017

Вы можете сделать копию Dynamo для RS, но схемы обоих должны точно соответствовать AFAIK (я еще не пробовал это)

Однако вы можете настроить два / один конвейер для настройки резервного копирования с DDB на S3 и с S3 на RS. DDB выполняет резервное копирование в виде объектов JSON, поэтому вам понадобится конфигурация jsonpath для вставки в ваш RS

Пример col1 (число) - 0 col2 (String) - x ваша резервная копия будет выглядеть как {"col1": {"n": "0"}, "col2": {"s": "x"}} ваш jsonpath к получить 0 должно быть похоже на $ .col1.n

Вы можете использовать предопределенные шаблоны конвейеров данных, если вы настроили 2 конвейера, но вам нужно создать свой собственный или начать с шаблона и строить его, если вы хотите использовать один конвейер.

Вы можете подключить snsAlarm в случае сбоя или успеха конвейера.

person Dee    schedule 22.03.2017