我每天都会发布移动应用程序日志数据(最终它将是一个数据流)。我正在寻找不同的解决方案来处理此日志数据并提供分析。我正在考虑使用 logstash/elasticsearch/kibana 组合,但我们在 redshift 数据库中存储了有关用户的其他数据。因此,除了移动数据之外,我还想从 redshift 中提取有关用户在与移动应用程序交互时的其他数据。
但是,我在某些地方读到,通过logstash进行实际的数据库查询是不可行的,但是您可以使用字典文件来查找每个用户。
关于这种方法,我有两个问题
- 这个查找文件的大小是否有限制?我的记录<500K 记录,所以我想它会没问题吗?
- 从 redshift 表制作查找文件的过程是否可以完全自动化(理想情况下是通过 aws 服务) - 即每天晚上刷新查找表并将其发布到 logstash,然后用于 Kibana 中的分组讨论
我们目前的做法是使用 lambda 函数处理每日 jason 文件,将其发布到 s3,然后将其读取到 redshift 表中。然后将此数据处理到会话中,并与其他表联接,以生成用于可视化的最终数据集。这目前在 Tableau 中完成,但我们正在探索其他选项(例如 quicksight,或者可能是 ELK 堆栈)。
只是试图弄清楚哪种解决方案可以扩展到点击流数据,并且将是最有用的解决方案。
谢谢!
logstash 7 有一个jdbc_streaming过滤器插件,用于动态地向事件添加内容,以及用于静态内容的jdbc_static过滤器。
如您所发现的,您还可以使用翻译过滤器。 手册页说他们已经测试了多达 100,000 个条目的"非常大"数据集,因此您的数据集可能需要一些测试。 这个过滤器的好处是,当它检测到更改时,它会重新加载数据,因此您可以按照自己的计划(例如 cron)发布数据,而无需重新启动 logstash。 请注意未获得翻译值的事件,这可能表明您的发布频率应更新。