将数据从Firebase批量传输到ElasticSearch

时间:2019-04-14 06:21:09

标签: firebase elasticsearch firebase-realtime-database google-cloud-firestore google-cloud-functions

我正在构建一个监视应用程序,该应用程序将Firebase用作与ElasticSearch / Kibana结合使用的存储/数据同步解决方案,以进行数据可视化。

我的应用程序(iOS)用于监视,每5s产生一条数据记录。我在Firebase实时数据库中只有一条路径,我在其中保存由Cloud函数(onCreate)监视的数据。只要获得快照,此功能就可以对ES进行POST。

该应用的实际情况是在离线条件下(最多24小时)进行部署。我通过使用飞行模式进行了约10分钟的小压力测试。重新打开互联网后,所有数据都很好地同步到Firebase(395条记录),但是我在ES中“丢失”了2条记录。功能日志显示ES返回502的2个错误,我猜是因为它在短时间内被许多HTTPS调用轰炸。

现在,ES确实具有大量写入API,我想利用它来控制负载,但是我不确定如何使用无状态的Cloud Functions实现该功能。如果我正在编写使用Rx订阅onCreate事件的服务的代码,那么我的解决方案是使用类似于缓冲区操作符的方法-对事件进行缓冲,直到获得100条记录或5s为止-然后进行批量写入。但是我想利用Cloud Functions,因为这样我就不需要管理服务重启和重新订阅。

我的问题是-使用实时数据库或firestore +云功能,什么是解决此问题的好方法?

0 个答案:

没有答案