网心-大数据gateway系统
角色
项目负责人
背景
随着公司对大数据资产访问控制的严格管理,需要对访问大数据资产的用户进行鉴权,公司有各种大数据应用产品, horizon报表查询系统,api调用,superset即席查询,邮件推送等,后端的计算存储引擎也有多种,包括impala, hive,clickhouse,tidb,mysql,trino,如何在应用层查询鉴权成为一个问题。
解决方案
- 改造公司的数据应用产品(horizon,superset),在查询发出前对查询sql进行染色,增加操作用户名, 查询sql统一发生到大数据gateway
- 分别改造hive/impala查询引擎代码,增加ckproxy,mysqlproxy,改造trino代码,拦截查询sql,解析用户名,sql操作类型,sql数据库表
- 开发数据资产管理系统,同时提供用户授权和鉴权api
- 在查询引擎代理层调用鉴权api进行鉴权
项目架构
数据资产管理系统技术
后端技术架构
- 开发语言: java
- 开发框架: springboot2.5.0,mybatis-plus
- 数据库: mysql5.7
- 打包工具: gradle
- 接入工具: openResty
前端技术架构
- 开发语言: html,css,javascript,vue3
- 开发框架: element-plus
- 打包工具: webback
查询引擎代理技术
- impala/hive 修改引擎源代码,重新编译
- clickhouse 采用chproxy代理,解析sql并鉴权
- mysql 采用mycat代理,修改源码,解析sql并鉴权