其他
流批一体大数据在资产租赁SaaS服务中使用
来源:zhisheng
全文共8862个字,建议阅读23分钟
目录
流水查询需求 什么是实时数据 即时查询系统 架构实现 扩大业务覆盖率 实时离线一体化系统之技术架构 实时离线一体化系统之数据流 实时离线一体化接入 数据仓库分层规范化 预计算方案(Kylin+Kudu) 实时离线开发统一访问数据入口 透明的数据分层存储 展望未来
00流水查询需求
基于TB级的在线数据,支持缴费帐单明细在线查询。大家都知道,像银行帐单流水一样,查几年的流水是常有的事。
支持的维度查询:帐期、欠费状态、日期范围、费用科目类型、房屋分类、房屋所属项目、关联合同信息、统计列。
01什么是实时数据
实时可以分为:实时采集、实时计算、高性能,低延时的产出结果数据。实时数据指从源系统中实时采集的数据,以及对实时采集的数据进行实时计算直接产生的中间数据或结果数据。实时数据具有时间有效性,随着时间的推移,实时数据会失效。
02即时查询系统
账单明细查询可由七十多个条件的随机组合,不能使用类似kylin这样的预处理技术来解决。支持N年范围的在线查询 支持复杂条件查询,如:联合多表,嵌套多层left join 为减少业务侧的sql改动量,需要尽可能的支持标准SQL 频繁变更的业务数据需要实时同步更新
架构实现
数据实时同步—Confluent Platform架构实现
//source connector:
curl -i -X POST -H "Content-Type:application/json" http://localhost:8083/connectors/ -d '{
"name": "test_data-bill_rating_rule_def-connector-souces",
"config": {
"connector.class": "io.debezium.connector.mysql.MySqlConnector",
"database.hostname": "127.0.0.1",
"database.port": "3306",
"database.user": "platform",
"database.password": "platform@0708",
"database.server.id": "169798195",
"database.server.name": "test_data_connector",
"database.whitelist": "test_data",
"table.whitelist": "test_data.bill_rating_rule_def",
"database.history.kafka.bootstrap.servers": "broker161:9092,broker162:9092,broker163:9092,broker166:9092,broker164:9092,cdh6-slave1:9092,cmhk-b-sl-236:9092",
"database.history.kafka.topic": "dbhistory.inventory",
"include.schema.changes": "true",
"database.history.skip.unparseable.ddl": "true",
"decimal.handling.mode": "string",
"event.deserialization.failure.handling.mode:": "ERROR"
}
}'
//sink connector:
curl -i -X POST -H "Content-Type:application/json" http://localhost:8083/connectors/ -d '
{
"name": "test_data-bill_rating_rule_def-connector-sink-49",
"config": {
"connector.class": "com.yr.connector.KuduSinkConnector",
"tasks.max": "16",
"topics": "test_data_connector.test_data.bill_rating_rule_def",
"topic.table.map": "test_data_connector.test_data.bill_rating_rule_def:bill_rating_rule_def",
"table.list": "bill_rating_rule_def",
"key.converter": "org.apache.kafka.connect.storage.StringConverter",
"value.converter": "org.apache.kafka.connect.storage.StringConverter",
"database.history.kafka.bootstrap.servers": "broker161:9092,broker162:9092,broker163:9092,broker166:9092,broker164:9092,cdh6-slave1:9092,cmhk-b-sl-236:9092",
"database.history.kafka.topic": "dbhistory.inventory",
"kudu.masters": "kudu167:7051,cdh6-slave1:7051,cmhk-b-sl-236:7051,cdh6-slave2:7051,cdh6-slave3:7051,cdh6-slave4:7051,cdh6-slave5:7051,cdh6-slave6:7051,cdh6-slave7:7051,cdh6-slave8:7051,cdh6-slave9:7051",
"max.retries": "3",
"retry.backoff.ms": "1000",
"behavior.on.exception": "FAIL",
"linger.ms": "1000",
"batch.size": "5000",
"max.buffered.records": "8000",
"flush.timeout.ms": "6000",
"offset.flush.timeout.ms": "5000"
}
}'
查询引擎—实现秒级响应—Presto
扩大业务覆盖率
由最初的帐单明细查询,发展成整个平台通用的即时查询系统。所有涉及OLAP查询,TB级以上的数据都接入了即时查询系统。服务部署也由原来的十几个节点,发展到了三十多个节点。
部署配置 | ||
服务名称 | 节点数 | 配置 |
Confluent Platform | 7 | 32核64g |
Kudu | 11 | 32核64g |
Presto | 15 | 32核64g |
Zeppelin | 1 | 6核32g |
04实时离线一体化系统技术架构
在资产租赁管理服务中,除了要了解客户投诉情况、满意度调查、水电使用情况、设备故障等统计分析之外,还需要帮客户做租赁业务的精准营销,网络爬取同行公开数据,提供竞品数据分析,指导客户业务决策。
05实时离线一体化系统之数据流
实时离线一体化接入
第一个来源是内部系统的Mysql数据库(业务分析) 第二个来源是应用App(用户轨迹) 第三个来源是外部系统网络采集(同行数据,用于竞品分析,行业分析) 日志文件(业务访问、打印在日志文件上的业务数据)
数据仓库分层规范化
预计算方案(Kylin+Kudu)
实时离线开发统一访问数据入口
即时系统中存在Kudu表数据,需要通过Hive能访问,这点仿照Impala,创建外部表 ,将kudu的表映射到Hive上 Hive能像Impala一样,能创建表、查询、更新、删除操作 Kylin能使用Kudu表 保证数据结构和元数据信息的一致性
透明的数据分层存储
create view tb_uhome_acct_item_view as
SELECT COMMUNITY_ID,STAGE_ID,NAME,UNIT,HOUSE_NAME,BILL_AREA,PAY_USERID,BILLING_CYCLE,FEE_ITEM_TYPE_ID,RULE_NAME,RES_INST_NAME,HOUSE_STATUS_TYPE,HOUSE_STATUS,REAL_CYCLE,CONCAT( BILL_DATE_START, BILL_DATE_END ),LEASE_POSITION,OBJ_CODE
FROM tb_uhome_acct_item
WHERE create_date >= "2017-01-01"
UNION ALL
SELECT COMMUNITY_ID,STAGE_ID,NAME,UNIT,HOUSE_NAME,BILL_AREA,PAY_USERID,BILLING_CYCLE,FEE_ITEM_TYPE_ID,RULE_NAME,RES_INST_NAME,HOUSE_STATUS_TYPE,HOUSE_STATUS,REAL_CYCLE,CONCAT( BILL_DATE_START, BILL_DATE_END ),LEASE_POSITION,OBJ_CODE
FROM tb_uhome_acct_item_hdfs
WHERE create_date < "2017-01-01"
06展望未来
1、基于整合后的架构,未来我们可以提供更多的能力,让更多的存储引擎支持Hive Metastore,使HMS的元数据服务支持丰富化。
进群方式:请加微信(微信号:dataclub_bigdata),回复:加群,通过审核会拉你进群。
(备注:行业-职位-城市)
01. 后台回复「资料」,即可领取大数据经典资料。
02. 后台回复「转型」,即可传统数据仓库转型大数据必学资料。
03. 后台回复「加群」,或添加一哥微信ID:dataclub_bigdata 拉您入群(大数据|数仓|分析)或领取资料。