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

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

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

Кстати, я использую пожарный шланг, чтобы перевести журнал приложений в красное смещение для аналитики.




Ответы (2)


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

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

person ketan vijayvargiya    schedule 17.06.2016

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

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

Из часто задаваемых вопросов об Amazon Kinesis Firehose:

Вопрос. Что такое папка manifests в моей корзине Amazon S3?

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

person pnv    schedule 05.06.2017