😀 这里写文章的前言:
计划一个开源的数据平台; 参考许多数据中台的公司产品 以及 开源项目,进行一个整体的总结;可以大致归纳到如下一些点

  • 离线
  • 实时
  • 算法
  • 数据服务开发
  • 数据质量检查
  • 数据安全
  • 数据资产
  • 调度任务
  • 环境模块

📝系统配置

最大力度以项目为隔离,来进行隔离 资源/用户/环境 等信息

进行如下的内容配置:

  • 部门 & 租户
  • 用户 & 角色
  • 项目 ——> 项目资源(比如yarn,hdfs存储资源,数据源,集群资源)
  • 业务流程(每个项目下有多个业务流程)
  • 项目配置(比如这个项目的默认参数等)

📝离线开发

开发系统设置

  • 数据交换 和 数据集成 : 数据的同步,数据库的同步,csv/execl同步,非结构化数据同步
  • 数据开发
    1. 传统数据库 : MySql / GaussDB / Oracle / PostgreSQL / SqlServer / DB2 等数据库
    2. 大数据组件: Spark(Sparl/SparkSql/pySpark) / Hive / HBase 等
    3. 语言层面: python/shell/perl
    4. 建表的DDL
    5. 资源文件 : 不同文件格式的类型

表信息

主要分为数据源类型,以及每种数据源类型的对应的数据库(也就是在项目配置中进行配置了的)

不同的数据库类型,比如下面的:

hive/mysql/oracle等

运行记录

对执行的信息进行记录

资源文件

对资源文件进行上传,保存以及展示等信息处理(主要是上传到hdfs上)

自定义函数开发

  • Hive函数
  • 其它函数

离线作业

新建业务流程(可以简单的理解为一个工作流)

比如 大屏A , 大屏B , 大屏 C 都可以分别建设一条工作流

新建离线作业

  • 数据同步,抽取数据

    1. 数据源配置: 源头表信息 ——> 目的表信息
    2. 字段映射关系
    3. 参数控制

    属性配置:

    • 使用的资源组
    • 运行参数
    • 本节点输入参数
    • 本节点输出参数
    • 依赖资源

    调度配置:

    • 生成实体的方法
    • 生效日期
    • 定时corn表达式(调度周期,根据天/星期/月等进行配置)
    • 调度优先级别
    • 调度依赖: 添加上下游节点 或者 将自身重置为根节点
    • 调度作用的范围: 当前业务流程 / 当前项目 / 当前租户
  • 脚本开发: 针对不同的数据库进行不同的脚本(还可以选择数据库);不同类型

    1. Spark : 提交作业的方式,是否数据湖的format文件格式等,使用的版本,spark的参数; 调度的配置依赖上下游的作业
    2. Hive : 无需多的选择,默认的hive设置即可
    3. MySql: 数据源类型的选择(假设我配置了多个数据源,是可以进行选择执行和提交;提交版本和发布)
    4. hbase: 无需多的配置; 本节点输入参数,本节点输出参数
    5. 传统数据库: 支持多个数据源的,都是可以进行选择的,然后进行脚本的编写
    6. 常规语言开发: 对常规的语言进行开发设置(python,shell)
  • 建表作业: 不同数据库类型的建表脚本进行开发(不参与工作流进行发布)

📝实时开发

系统属性设置

开发系统属性设置:

  • 数据集成,比如 Flink CDC 等同步

实时计算

  • FlinkSQL
  • Flink
  • Flink On 数据湖

建表语句

  • Flink DDL
  • Flink On 数据湖 DDL

资源文件类型

  • jar
  • py
  • txt
  • json
  • xml
  • 等等

实时运行的历史

对实时运行的历史进行一个记录

实时表的管理

对实时的表进行获取和管理

函数管理

  • 系统函数
  • 自定义函数

实时任务开发

系统参数

  • checkpoint 是否开启
  • checkpoint的模式是什么配置
  • checkpoint的超时设置
  • checkpoint的路径设置
  • checkpoint保留的个数
  • 日志配置

📝服务开发

自定义函数开发

对应一些便捷的函数等进行设置自定义开发

自定义SQL的API开发

  • 对应业务流程的选择,也是将什么样的业务给暴露给外侧
  • API的名称和请求路径
  • 请求方式 和 返回类型的配置
  • 调用的频率和超时时间的设置

环境的选择:

  • 数据源类型(比如Mysql,Oracle等;关系型或者mpp型居多,如果是hive或者是spark的话,不是特别建议)
  • 然后选择对应的 数据源 下面的数据库 , 来进行脚本的开发,将脚本执行的结果拿到返回数据给返回回去
  • API常见的一些分页设置等

📝运维中心

  • 对我们的DDL进行统一运维处理
  • 对我们的离线和实时,统一的任务调度和处理

🤗 总结归纳

📎 参考文章

💡 有关文章的问题,欢迎您在底部评论区留言,一起交流~