大数据-数据访问中间件简介

290 阅读3分钟

中间件

全称 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)
  1. 针对需要特殊优化的业务场景比如 sql需要得到最终查询结果数目,而sparksql相对于之前的iq数据库很慢,将两部分sql分离开,先返回结果a,b,而不是select a,b,count(1) 同时查询,故sql必须分开,martix重新封装sparkJdbcServer

任务最终通过分发sql的rdd任务,Spark集群执行任务 exec1 exec2 exec3 最终Martix的主要功能不是跨库,而是资源,数据库字段,app优化

  1. JDBCServer做什么?

答: 通信管理,Session管理 Operation管理

  1. Martix优势 答:
    1. 语法解析 提供标准sql结构作为对外接口,便于客户端快读开发
      1. 基于标准SQL进行轻量扩展,针对SQL的动态解析,完成对不同数据库的拆分访问.

      2. 最大化谓词下推 尽可能在数据库子系统中完成数据的过率计算

    2. 性能模型 通过性能分析获取Yarn资源管理的参数配置,分配不同的系统资源

提供的访问能力 答: 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分布式部署

加解密处理

分权分域-数据访问权限控制