Logstash и поиск дополнительных данных из реляционной таблицы? - PullRequest
0 голосов
/ 17 апреля 2019

У меня ежедневно публикуются данные журнала мобильных приложений (в конечном итоге это будет поток данных). Я смотрю на различные решения для обработки этих данных журнала и обеспечения аналитики. Я рассматриваю возможность использования комбинации logstash /asticsearch / kibana, но у нас есть дополнительные данные о наших пользователях, которые хранятся в базе данных красного смещения. Таким образом, в дополнение к мобильным данным, я хотел бы получить дополнительные данные из красного смещения о пользователе во время взаимодействия с мобильным приложением.

Однако в некоторых местах я читал, что выполнение реального запроса к базе данных через logstash невозможно, но вы можете использовать файл словаря для поиска каждого пользователя.

У меня есть два вопроса относительно этого подхода

  1. Есть ли ограничение на размер этого файла поиска? У меня будет <500K записей, поэтому я думаю, что все будет в порядке? </li>
  2. Может ли процесс создания файла подстановки из таблиц красного смещения быть полностью автоматизированным (в идеале, хотя это службы aws) - т.е. каждую ночь таблица подстановки обновляется и публикуется в logstash, а затем используется для обсуждения в Kibana

То, как мы сейчас это делаем, - это обработка ежедневного файла jason с помощью лямбда-функции, размещение его на s3 и последующее чтение в таблицу красных смещений. Эти данные затем обрабатываются в сеансы и объединяются с другими таблицами для генерации окончательного набора данных, который будет использоваться для визуализации. В настоящее время это делается в Таблице, но мы изучаем другие варианты (например, quicksight или, возможно, стек ELK)

Просто пытаюсь выяснить, какое решение будет масштабируемым для данных о потоках кликов и будет наиболее полезным в дальнейшем.

Спасибо!

1 Ответ

2 голосов
/ 17 апреля 2019

logstash 7 имеет плагин фильтра jdbc_streaming для динамического добавления материала в ваши события, а также фильтр jdbc_static для статического материала.

Как вы обнаружили, вы также можете использовать фильтр translate . На странице руководства говорится, что они протестировали «очень большие» наборы данных до 100 000 записей, поэтому ваш набор данных может потребовать некоторого тестирования. Хорошая сторона этого фильтра заключается в том, что он будет перезагружать данные при обнаружении изменения, поэтому вы можете публиковать данные по собственному расписанию (например, cron) без перезапуска logstash. Следите за событиями, которые не получают переведенное значение, что может быть признаком того, что частота ваших публикаций должна быть обновлена.

...