Flink证券项目(二)技术架构

139 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

1.1. 技术架构

1.1.1. 逻辑架构

逻辑架构关注的是业务功能,包含用户直接可见的功能,偏向于业务概括。逻辑架构也可以用“分层”的概念来理解,比如,把一个项目分为“显示层、应用层、分析计算层、数据访问层”等。

img

  1. 数据源区

数据源包括公司内部、外部的数据,数据包括业务系统产生的结构化数据(交易、账户、客户、外部数据等)、半结构化数据(XBRL数据、日志数据等)以及非结构化数据。

  1. 大数据平台区

大数据平台作为公司未来的数据处理中心,目标是存储全部的结构化、半结构化、非结构化数据,并对业务系统提供数据共享、统计分析等服务,是一个集采集,存储,计算,分析等不同层级服务的开发平台。

从数据的时效性和数据计算性能要求考虑,大数据平台区可分为三个平台,分别是批量数据处理平台,实时数据服务平台。

l 批量数据处理平台:

批量数据处理平台对结构化、半结构化、非结构化数据定期采集,处理,支持业务应用,一般以日为处理周期,有一定的时间窗口限制,建议使用较高的硬件配置(SAS盘、高配CPU和内存等),以满足数据复杂加工的要求。批量数据处理平台内部设计分为3层,分别是技术缓冲层(贴源层),主题模型层和数据集市层。

技术缓冲区:技术缓冲区是为了数据加载和转换的需要而设计的一个数据区,存储接口文件加载的数据,作为技术缓冲使用,一般采用贴源模型设计。

主题模型层:整合模型区对所有进入大数据平台的源数据按主题进行分类存储,构建企业级的单一数据视图,用于支持各类整合型的分析型应用。整合模型区是大数据平台数据集中存储的区域,一般采用拉链或切片的方式存储历史数据。

数据集市区:通过对业务需求的分析,对业务需求进行整合,以满足业务应用查询的要求。

l 实时数据计算平台:

实时数据计算平台使用kafka等消息订阅分发组件,实时通过消息队列的方式获取业务系统的交易数据,日志数据,并通过Flink等流处理组件完成实时交易的监察和统计,实时发现异常数据,通过邮件、短信、系统服务等方式提供实时预警服务。

l 分布式数据存储平台:

分布式数据存储平台为各业务系统提供历史数据、实时数据存储功能,并在需要时为其它系统提供历史全量数据,并提供实时数据查询、历史数据查询和历史数据挖掘等服务,由于数据平台加工需求较少,多采用大硬盘(高容量SATA盘)的方式降低成本。

  1. 数据应用平台

应用层对外提供数据服务与应用,包括应用层和用户访问层。应用层服务基于不同的平台提供管理驾驶仓,统一报表,实时应用和历史数据查询等服务。根据用户的访问特征,访问层提供统一的应用入口等。

  1. 数据展示平台

数据展示平台是通过移动端、PC端和大屏等方式对接数据应用平台里的web应用,根据不同的业务需求展现出不同的页面(实时证券行情页面、预警监控和统计报表页面等等)。

1.1.2. 技术架构

img

1.原始数据采集采用的是flume收集文本数据和实时流数据,使用sqoop采用RDBMS中的交易数据

2.数据存储根据不同的业务需求采用不同的存储介质,这里我们采用的存储资源包含:Hbase、Mysql、Redis、HDFS等

3.采用Hadoop Yarn统一资源管理

4.计算框架采用MapReduce、Spark SQL、Flink

5.数据处理包含批处理和实时数据处理,其中批处理数仓处理采用Hive,再根据主题建立模型和业务数据分层

6.数据应用采用Kylin和web应用做到监控预警;前端页面对接web应用做到实时大屏展示

1.2. 数据流程

img

1.3. 部署架构

img

2. 项目实施流程

img

3. 数据采集

img

3.1. 数据采集流程

img