实时数据采集可以使用Maxwell开源工具
一、Maxwell:
- 实时数据采集可以使用Maxwell开源工具
- 可直接采集MySQL数据
- 将数据以Json方式发给Kafka
- 支持断点续传功能
二、数据的时序:
- 这样的数据通常叫特征数据,即对一行数据在不同的时间点进行相关操作,如写入、更新、删除等操作,有时序性,不然就会乱序;Kafka分区支持时序;
三、Hbase特征(将实时数据同时存如到Hbase中):
- 分布式
- 支持随机的、实时的读和写操作
- Hbase可以支持100万列,有公司的数据表超过1万列;(面试题:1W列的表如何设计?)
- 正常情况下,1条数据60列差不多;QPS:2000
四、Phoenex(凤凰,长生鸟)简介
- 支持SQL(是Hbase的上一层),避免开放者直接使用Hbase原生API(学习门槛和使用成本较高)
- 支持/Support Spark引擎;开放者操作数据流程 开发者通过数据同步工具(如DataX,开源的)将通过业务数据到 Kafka -> 开放者通过 Spark SQL -> 使用Phoenex JDBC的环境将数据写到 -> Hbase(这样开放者就不用关心底层的Hbase逻辑),存计算结果到Redis,用户到Redis中快速的读取数据;
- JDBC:Java Database Connectivity,简称JDBC,是指Java环境中客户端访问服务端数据库的API方法,如查询和更新数据库中数据。
- 支持二级索引
- 支持盐表(盐表-salted table,分区表)
五、数据校验:通过数据量的对比分析
- 通过表行数的数据量对比分析(表行数校验);
- 即通过业务数据库MySQL的从库(主/从库)记录数据表的的增加、删除记录,修改不做记录,然后把数据写到Redis中;
- 同时通过Hbase中读取数据表的行数信息,然后与Redis中数据量进行对比分析,对比前一天的数据量 并非是全部数据量,每天校验一次上一天的数据情况;
- 如果发现数据量不一致,自动调用Shell脚本对昨天的数据进行全表扫描,然后从新刷新一份数据即可;
六、谓词下推 = Where 条件
七、Monitor,常见的运维监控工具
八、Hbase底层是HDFS文件系统
九、Zookeeper使用,使用Hbase肯定是要部署Zookeeper的,配套使用进行集群资源调度;
十、调度都是通过Shell脚本进行调度的(因为底层是Linux系统)
还没人赞这篇日记