Проблемы с промежуточным контейнером S3 от AWS Firehose и зависимость потока доставки

74
5

Является ли хорошей идеей установить один ведро s3 для нескольких потоков доставки? (например: рассмотрим два потока доставки, имеющих различную пропускную способность потока, размер буфера s3/интервал буфера...)

Если два потока доставки (S1, S2) маршрутизируют данные в красное смещение. S1 передает данные в T1 и S2 в T2. В T2 существует ограничение внешнего ключа на T1. Можно ли гарантировать, что, когда S2 доставляет данные (D2) до T2, все записи в T1, на которые ссылается D2, уже были доставлены S1? (т.е. есть зависимости в потоках поставки)

BTW Я использую firehose, чтобы вывести журнал приложений в redshift для аналитики.

спросил(а) 2016-06-17T10:19:00+03:00 4 года, 8 месяцев назад
1
Решение
74

Ведра S3 предназначены для хранения практически бесконечных данных, поэтому ответ на ваш вопрос определенно да. Даже если вы можете определить внешние ключи, Redshift фактически не применяет их вообще. Из документации здесь,

Единственность, первичный ключ и ограничения внешнего ключа являются информационными; они не применяются Amazon Redshift. Тем не менее первичные ключи и внешние ключи используются в качестве подсказок планирования, и они должны быть объявлены, если ваш процесс ETL или какой-либо другой процесс в вашем приложении обеспечивает их целостность.

ответил(а) 2016-06-17T17:41:00+03:00 4 года, 8 месяцев назад
43

Предположения: T1 и T2 являются таблицами в том же кластере Redshift.

Вы можете (практически) иметь столько ведер S3, сколько захотите. Не рекомендуется использовать один и тот же ведро S3 для двух потоков доставки, так как команда COPY, выполняемая Redshift для загрузки данных в кластер, будет выглядеть в той же папке Manifest для обоих потоков доставки.

Из Amazon Kinesis Firehose FAQ:

Q: Что такое папка манифеста в моем ковше Amazon S3?

Для назначения Amazon Redshift Amazon Kinesis Firehose генерирует файлы манифеста для загрузки объектов Amazon S3 в кластер Redshift в пакетном режиме. В папке manifestests хранятся файлы манифеста, созданные Firehose.

ответил(а) 2017-06-05T22:49:00+03:00 3 года, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема