名词说明
业务板块
定义数据仓库的名称和业务空间,以企业内一个相对独立的业务为分配单元。例如,如果业务涉及零售、文娱,且系统间相对独立,则需要构建两个业务板块,即零售、文娱。如果业务仅涉及零售,且业务内的系统间隔离较少,则只需要构建一个业务板块,即零售。
应用开发中,为了提升查询性能或者做服务降级方案时,我们会使用缓存作为解决方案,像分布式缓存方案,比如 Redis、Memcache等;本地缓存方案,比如 Guava、Caffeine等。如果仅仅对当前服务的执行结果的缓存,用于下次相同查询时加快查询效率来说,还相对简单一点。只需要将查询条件作为key,返回的结果作为 value 即可实现,复杂一点会加上缓存失效机制等。
说在文前
本文内容是基于 Centos 7、HDP 3.0.0、HBase 2.0.0、Python 2.7
环境下,其他环境的童鞋选择性进行参考。
Thrift 安装在 HBase 服务节点上即可。
在正式进行讲述实现之前,我觉得有必要说一下出发点。团队期初数据都是基于 HBase+Phoenix
这样架构进行持久化。随着业务的复杂性增加,对部分表的查询效率和查询条件多样性,提出了更高的要求。HBase+Phoenix
就会出现索引滥用。变更索引变的特别的频繁,同时一些数据客观的表,变更索引的代价是非常大的。
在Kafka Version为0.11.0.0之后,Consumer的Offset信息不再默认保存在Zookeeper上,而是选择用Topic的形式保存下来。
在命令行中可以使用kafka-consumer-groups的脚本实现Offset的相关操作。
更新Offset由三个维度决定:Topic的作用域、重置策略、执行方案。
在项目应用中,我们会写很多文档去传递我们的设计思想、开发经验、采坑经历等等。使用Asciidoc的格式对非技术人员就不是那么的友好,或者说传递性、通用性与PDF和网页相比就差很多了。在JVM项目中可以使用Maven的插件方式将.adoc
文件格式转化为PDF、HTML、EPUB等文件格式。