⬆戳蓝字“读字节”关注我们哦
问题:
首先不能使用CK库的字典表实现方式,因为数据量太大了,字典表的数据都放在内存中,且每个节点都需要存一份,所以这种实现方式不行。又因为mongodb的表是动态的,所以也没有办法建固定字段的CK表,所以提前建CK表的方式也是不行的。
不直接查mongodb的原因是,查询语句的语法mysql差别很大,因为大屏需要配置sql,所以直接查的话客户不接受。请问大佬有没有好的方案?
回答:
你的需求是MongoDB的数据同步到ClickHouse,然后通过ClickHousede的SQL查询能力,实现客户上层应用展示。尝试考虑做个消息分发吧,这样比较灵活!
1、阿里推出的MongoShake工具实现MongoDB集群的oplog数据向Kafka的推送
2、利用ELK的Logstash实现Kafka的oplog订阅数据向ClickHose存储。


MongoSharek对MongoDB的oplog数据抓取到kafka中的topic队列,
首先Logstash通过logstash-input-kafka插件订阅Kafka中的topic队列获取MongoSharek推送的MongoDB数据,
其次Logstash的过滤规则来实现MongoDB—ClickHouse字段的组合建立,
最后Logstash通过logstash-ouput-clickhouse插件实现上一步Logstash Fliter组合过滤后的数据向ClickHouse的写入。
如果觉得写得不错,那就点个赞或者“在看”吧,多谢阅读。
文章均为“读字节”原创,转载务必注明来源。
点这里👇关注我
文章转载自读字节,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




