Назад | Перейти на главную страницу

Как настроить AWS Kinesis Firehose для копирования в Redshift?

Проблема

Я установил Firehose и выбрал параметры, которые, как казалось, приведут к тому, что потоковые данные попадут в Redshift. У меня есть один Firehose и один целевой стол в Redshift. Данные отображаются правильно в промежуточном сегменте S3, но не попадают в Redshift.

Я разрешил доступ CIDR [1] региона Firehose к кластеру через группы безопасности Redshift. Я предоставил Firehose учетные данные кластеру Redshift и проверил их. Кластер общедоступен.

В STL_LOAD_ERRORS таблица пуста, поэтому я ожидал увидеть ошибки, вызванные любым оператором копирования, который был предпринят и не удался. Также нет DeliveryToRedshift события в CloudWatch. Это наводит меня на мысль, что нет даже попытки добраться до Redshift.

Я использую Опции КОПИРОВАНИЯ Redshift для указания файла jsonpath для копии. В настоящее время у меня есть: json "s3://app-event-data/_jsonpaths/_bigtable.jsonpath.json". Этот файл существует в s3 в этом месте и выглядит как файл jsonpath [3]. Я также попытался добавить учетные данные в это поле, но мне это не нужно.

Обновление 1

Я включил регистрацию в Redshift, которая показала мне, что есть успешные аутентификации, сделанные из Firehose. Затем я создал новую группу параметров с включенным ведением журнала активности пользователей и перезагрузил кластер. Ждем следующей партии журнала.

Ссылки

  1. http://docs.aws.amazon.com/firehose/latest/dev/firehose-dg.pdf
  2. https://aws.amazon.com/kinesis/firehose/
  3. http://docs.aws.amazon.com/redshift/latest/dg/copy-usage_notes-copy-from-json.html

Почему ServerFault? Лучший сайт StackExchange для вопросов об Amazon AWS

Я бы отметил этот вопрос: amazon-kinesis, amazon-firehose, amazon-redshift.

Вот все, что я изначально неправильно сконфигурировал и в конечном итоге скорректировал, чтобы заставить Firehose правильно копировать данные в Redshift:

  1. Убедитесь, что выбранная корзина находится в том же регионе, что и кластер красного смещения. Вы можете указать ОБЛАСТЬ если по какой-то причине ты хочешь понести дополнительные расходы. Вы не можете изменить регион ведра после его создания..

Сначала это немного сбивает с толку, потому что селектор региона в консоли сегментов говорит «глобальный».

  1. Firehose не будет указывать идентификаторы, поэтому, если имя таблицы, которое вы указываете в форме, требует кавычек, вам нужно добавить их самостоятельно. То же самое и с именами столбцов.

  1. Одинарные кавычки только в вариантах копирования.

  2. Предоставьте Firehose доступ к вашему кластеру Redshift, авторизовав правильный CIDR / IP на вкладке безопасности Redshift. Вы можете найти правильный CIDR / IP для региона, в котором вы создали свой Firehose. Вот. Для этого не нужно создавать новую группу Cluster Security. Вы можете просто добавить его к стандартному. Если вы добавляете новую группу безопасности, вам необходимо перенастроить кластер с панели управления, чтобы использовать новую группу безопасности, в ней не может быть 2.

  3. Redshift COPY не принимает метки времени с часовыми поясами за пределами UTC. Если вы используете такой формат, как RFC3339, вам нужно сначала указать время в формате UTC и указать TIMEFORMAT 'auto' в параметрах копирования.

  4. Чтобы иметь представление о том, что происходит, когда что-то не работает, вам нужно включить Журнал активности пользователей в Redshift от:

    • включение ведения журнала (очевидно)

  • создание новой группы параметров

  • установка user_activity_logging к true

  • изменение вашего кластера для использования новой группы параметров

  • перезагрузите свой кластер

Enable user activity logging достижение разблокировано