文章目录
从事数据平台方向以来,很多时候都是以共性项目的形式进行交付。
不停的研发数据平台,不停的贴合业务进行修改以交付项目。
没有持续优化一个从0到1的产品。
深深的感到很遗憾…
与此,在写公众号文章的同时,想着光光写文章,没有持续的打磨产品。
作为实干派
总是觉得缺少点啥。
有了理论,那么就应该有实践操作,不然一切都是空谈。
是不是可以尽自己的力气,持续构建数据中台(小型)
去实现一套可以「实际落地的产品」,想法很容易,但实际是很难的,很难去发电…
前端对我来说是硬伤,在单位前端大佬的帮助下,也算是跌跌撞撞的去vue,去独立的完成。
争取把公众号打造成理论+实践的领域。
一、项目介绍
指北数据中台,是采用 Vue2,Spring Cloud Alibaba、SpringSecurity、Spring Cloud Gateway、SpringBoot、Nacos、Redis、Mybatis-Plus,Hive,flink,neo4j 等最新技术,开发的数据中台,包含数据汇聚,数据开发,数据治理,数据集市,平台基础五大模块,致力于解决数据孤岛问题,实现数据统一口径标准,自定义数据开发任务,帮助企业,政府等解决数据问题。
二、功能模块说明
2.1 平台基础设置
-
集群概览
存储概览:对HDFS的存储资源进行概况统计。
计算概览:对Yarn上的任务进行统计计算。
监控概览:对大数据集群的监控。
-
系统管理
岗位管理:配置系统用户所属担任职务。
部门管理:配置系统组织机构,树结构展现支持数据权限。
菜单管理:配置系统菜单,操作权限,按钮权限标识等。
角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
用户管理:用户是系统操作者,该功能主要完成系统用户配置。
参数管理:对系统动态配置常用参数。
字典管理:对系统中经常使用的一些较为固定的数据进行维护。
系统监控登录日志:系统登录日志记录查询。
操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
2.2 数据汇聚管理
运行报表:可视化统计数据集成任务成功失败状态。
项目管理:对数据集成项目进行统一管理。
数据源管理:数据集成的数据源进行统一接入管理。
任务管理:任务管理:对数据汇聚任务进行管理。
任务构建:菜单式的方式进行单个数据集成任务的设计。
批量任务构建:批量进行数据集成任务的设计。
任务模板:对定时调度执行器的设计。
日志管理:数据集成任务执行的日志显示。
2.3 数据开发
运维中心:对数据开发任务的执行状态统计显示。
集群管理:Flink集群的注册显示管理。
项目管理:数据开发任务的归宿项目管理。
作业管理:数据开发作业任务管理和配置。
作业调度:对作业任务进行拖拽编排,并定时执行。
即席查询:对hive数据仓库进行快速统计。
2.4 数据治理
- 元数据管理
数据源:数据源连接信息管理,可生成数据库文档。
元数据:数据库表的元数据信息管理。
数据授权:设置元数据信息权限划分。
数据血缘:作业任务执行的血缘流程。
数据地图:元数据的隶属数据表、数据库的图形展示。
2.5 数据集市管理
数据服务:动态开发api数据服务,可生成数据服务文档。
数据脱敏:api数据服务返回结果动态脱敏。
接口日志:api数据服务调用日志。
2.6 可视化管理
数据集:基于sql的查询结果维护。
图表配置:动态echarts图表配置,支持多维表格、折线、柱状、饼图、雷达、散点等多种图表。
看板配置:拖拽式添加图表组件,调整位置、大小。
酷屏配置:拖拽式添加图表组件,调整背景图、颜色、位置、大小。
三、系统核心技术栈
前台:
-
vue2
-
typeScript
-
element-plus
。。。
后台:
-
Spring Cloud Alibaba
-
SpringSecurity
-
Spring Cloud Gateway
-
SpringBoot
-
Nacos
-
Redis
-
Mybatis-Plus
-
Mysql5.7
-
Hive
-
flink1.14
-
flink cdc
-
flink sql
-
neo4j
。。。
四、系统数仓架构
该平台主要基于
-
Flink + Hive 构建离线数仓。
-
Flink + Kafka 构建实时数仓。
进行数据同步,流转,计算和分析处理,数据仓库分为「离线数据仓库和实时数据仓库」,两者的典型区别是数据服务时间粒度。传统的离线数据仓库一般的数据服务时间粒度是天,实时数据仓库的数据服务时间粒度是分钟,甚至秒。
- Flink 和 Hive 的相关说明:
Flink 是一个低延迟、高吞吐、流批统一的大数据计算引擎,被普遍用于实时性场景下的计算统计和分析。
对于海量数据场景(如节点数需要几百个甚至上千个时),Hive 的优势是稳定性和容错性好,可以用于处理海量数据的复杂计算。与此同时Flink对Hive的支持越来越成熟。
- Flink和Kafka的相关说明:
实时数据仓库当前的主流方案之一是 HDFS + Flink + Kafka 。因而对于实时数仓的定位,我的理解是以数仓建设理论和实时技术为基础,解决由于当前离线数仓数据时效性低解决不了的问题。
总而言之,目前,大部分企业在建设数据仓库时,综合考量性能、健壮性、投入产出比和运维复杂度,主要策略是以离线数据仓库的批处理计算为主,以实时数据仓库为辅助。
数仓整体架构图如下:
关于数仓为什么要分层:分层可以有助于数据的管理,同时每次取数只需要获取统计分析过的成品就可以,不需要从源头数据反复计算,避免了计算资源的浪费,通常源头数据量较大,并且中间的处理逻辑较为复杂,所以采用建模分层的方式解决。
五、系统运行展示
目前而言,基本的功能模块已经差不多完成,现在最主要的是逐步的进一步解决bug
解决优化问题,以及更好的去完善平台。
持续研发平台,让它能用,好用,易用 !
- 登录
- 首页
- 数据汇聚
- 数据开发
- 数据集市
- 可视化
- 数据治理
- 平台基础
六、总结
持续的努力基本让指北数据中台已经初见雏形,虽然它还是个孩纸,但是相信在我的持续照顾下,会慢慢成长的。
会逐渐变得可用,好用,易用 !!!
俗话说,欲抬手摘星望月,必先平地起高楼。
一步一个脚印向前迈进…终究会见到彩虹。
「后续的计划」:
-
- 不停的进行优化更新…(比如数据质量,数据标准,数据科学等…)
-
- 围绕指北数据中台实现一个真实场景的数仓项目,并完成教程的编写。
-
- 分解指北数据中台,从前端和后端一步一个脚印完成教程的编写。