中间件
全称 Data Access Controller
主要功能: 1.为上层应用提供统一的数据访问平台
2.屏蔽不同数据服务的差异,比如Hive PostgrepSQL Sybase IQ Sparksql
3.对数据访问权限控制 提供数据访问控制,有效控制数据
业务系统是sep
restful风格调用
主体框架:
最优选表 sql构建 sql构建 sql语法优化 数据源管理 <font color=red>内存关联翻译</font>
权限控制: 查询列控制 白名单控制 分权分域 业务数据加解密 能力增强 接口函数增量 流式导出 查询次数/字段统计 插件管理 加解密插件 discovery SQL hadoop IQ存counter/model Impala/carbon 存业务数据 数据联邦访问能力
挑战在哪?
答:为适应更好的大数据读写,底层数据库存储发生变化,面对跨数据库场景,如果对超大数据量进行迁移,将造成系统资源浪费,且迁移耗时长,开发Martix跨库组件
Martix组件:
替换hadoop默认的spark jdbc server
重写的核心方法是sql.(sql)
- 针对需要特殊优化的业务场景比如 sql需要得到最终查询结果数目,而sparksql相对于之前的iq数据库很慢,将两部分sql分离开,先返回结果a,b,而不是select a,b,count(1) 同时查询,故sql必须分开,martix重新封装sparkJdbcServer
任务最终通过分发sql的rdd任务,Spark集群执行任务 exec1 exec2 exec3 最终Martix的主要功能不是跨库,而是资源,数据库字段,app优化
- JDBCServer做什么?
答: 通信管理,Session管理 Operation管理
- Martix优势
答:
- 语法解析 提供标准sql结构作为对外接口,便于客户端快读开发
-
基于标准SQL进行轻量扩展,针对SQL的动态解析,完成对不同数据库的拆分访问.
-
最大化谓词下推尽可能在数据库子系统中完成数据的过率计算
-
- 性能模型 通过性能分析获取Yarn资源管理的参数配置,分配不同的系统资源
- 语法解析 提供标准sql结构作为对外接口,便于客户端快读开发
提供的访问能力 答: 1. 元数据访问 Dimension Level
2. 数据访问
XDR详单数据 SDR完整信令单据
中间件选表逻辑
跨库查询处理逻辑
Dac涉及的数据库
答: 1.关系型数据库 IMPALA IQ PT 区别 就是函数 对小数精度处理
2.非关系型数据库 Hbase
数据翻译
答
1.维度翻译 降低数据库因为关联维表产生的性能损耗
维度分为主属性维度和属性维度,kqi.tbl_dim_attribute的primary_flag区分
维度存在ID和Name列,ID列是kqi.tbl_dim_attribute的map_column_name.Name列是kqi.tbl_attribute_format的 current_flag=1的show_expression_en
维度翻译以主属性ID作为Key,所有Name列和属性列通过主属性的值获取
DAC分布式部署
加解密处理
分权分域-数据访问权限控制