一种基于云教学平台的数据库系统的制作方法

文档序号:18452565发布日期:2019-08-17 01:22阅读:132来源:国知局
一种基于云教学平台的数据库系统的制作方法

本发明涉及数据库领域,尤其涉及一种基于云教学平台的数据库系统。



背景技术:

目前,教学平台经过近几年飞速的发展,业务范围逐步丰富完善,涵盖了教学生产过程中的各个主要环节。

教学平台的数据主要包括如下五大类:

教:围绕教师教学活动中的场景与环节,提供灵活多样的提升教师教学效率的应用。应用包括:集备课、预习、授课、作业、检测、教学管理等。

学:围绕学生在学校、家庭以及其他环境下的学习情境,提供统一的学习路径,多种学习方式。

管:提供丰富的管理功能,帮助教育管理者,教师等开展现代化教务管理工作。

考:支持各级教育机构、学校、班级等进行考试,包括线上和线下考试。

评:对教师教学,学生学习提供多维度评价体系。

但是针对教学过程中的各类数据,例如:各类考试、教师和学生教学数据等等,目前的平台并不能对这些数据进行很好的存储、管理以及利用。



技术实现要素:

为解决上述问题,本发明提出一种基于云教学平台的数据库系统,用以对数据进行存储、管理以及利用。

一种基于云教学平台的数据库系统,包括:

数据采集层,用于采集各业务端的数据;

存储与计算层,用于对采集的数据根据数据粒度进行分层存放,并按照特定数据分析需求进行主题、维度、指标的计算;

管控层:用于采集、计算任务的时间调度、元数据的管理与维护以及数据生命周期的管理;

访问层:用于提供访问端口,并与其他数据平台进行数据共享与交换。

优选的,所述存储与计算层包括:

数据缓冲层,用于保存数据采集层采集的数据,并根据数据建立对应的外表;

细节层,用于将数据缓冲层抽取的数据,按主题构建事实表与维度表,在事实表上补全维度;

中间层,用于对按主题存放的细节层数据,按照业务指标定义,拆解为最细粒度的指标;

数据集市层,用于按照特定数据分析需求进行主题、维度、指标的计算。

优选的,所述数据缓冲层针对不同数据源采用不同的采集方案。

优选的,所述数据缓冲层包括:

第一采集单元,用于对mysql数据源进行表级的数据抽取;

第二采集单元,用于对埋点日志采用分布式采集数据;

第三采集单元,用于结构化的外部数据采集。

优选的,所述第一采集单元采用sharding技术读取分片库数据。

优选的,所述存储与计算层还包括:

数据监控与调度层,用于数据采集、分层任务的调度并对获取的数据进行监控。

优选的,所述对获取的数据进行监控包括:

判断数据采集、数据处理过程中的数据量和数据内的各个字段信息是否完整;

判断数据记录的格式、字段类型、数据处理前后过程中的数据是否一致以及多源数据集之间的关联信息是否一致;

判断数据记录的内容是否准确、数据各个信息的值域范围是否符合业务设定的规范以及是否存在异常或错误数据;

判断数据采集的时间间隔是否超过设定的时间周期。

优选的,还包括:

共享服务层,用于基于计算后的主题数据,对外提供数据服务接口。

优选的还包括:

应用层,用于基于共享服务层提供的数据服务接口。

优选的,还包括:

开发运营层,用于基于共享服务层提供的数据服务接口,为分析人员提供即席查询服务。

通过使用本发明,可以实现以下效果:对采集的数据根据数据粒度进行分层存放;使得数据结构清晰明了,在使用数据时,就能根据数据层级快速定位数据粒度,还便于数据的血缘分析;对获取的数据进行监控,能够判断出数据是否存在问题。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1是本发明实施例的结构示意图;

图2是本发明实施例中存储与计算层的结构示意图;

图3是本发明实施例中数据缓冲层的结构示意图。

具体实施方式

以下结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

本发明的基本思想是提供一种基于云教学平台的数据库系统,其对采集的数据根据数据粒度进行分层存放。这种存放方式使得数据结构清晰明了,每一层数据都有自己处理逻辑,有自己的作用域,在使用数据时,就能根据数据层级快速定位数据粒度;还便于数据血缘分析,数据分层之后,层与层之间的表存在依赖关系,如果某一张表数据出现问题,那么可以通过依赖关系快速定位问题,并分析影响范围;减少重复工作量,在规范的数据分层体系下,一些通用的中间层数据,能够极大减少多维度指标的重复计算量;还可以屏蔽原始数据的异常。

基于上述构思,本发明提出了一种基于云教学平台的数据库系统,如图1所示,包括:数据采集层,用于采集各业务端的数据;存储与计算层,用于对采集的数据根据数据粒度进行分层存放,并按照特定数据分析需求进行主题、维度、指标的计算;管控层:用于采集、计算任务的时间调度、元数据的管理与维护以及数据生命周期的管理;访问层:用于提供访问端口,并与其他数据平台进行数据共享与交换。

数据采集层,位于端对端平台的底部,提供数据端口与其他业务端连接,采集其他业务端的数据。在本实施例中,其他业务端的数据包括:教案、学案、课件、授课素材等教育资源、各学生的学习轨迹数据及综合教、学环节中的过程数据、行为数据以及相关元数据等。针对采集到的不同的数据,存放在不同的数据源,以便于输出的分类、提取。

存储与计算层对采集的数据根据数据粒度进行分层存放,并按照特定数据分析需求进行主题、维度、指标的计算。如图2所示,存储与计算层包括:数据缓冲层、细节层、中间层以及数据集市层。其中,数据缓冲层向细节层抽取数据,而细节层向中间层抽取数据,使得数据缓冲层、细节层、中间层存放数据的数据粒度依次减小。对采集的数据进行分层存放,在使用数据时,就能根据数据层级快速定位数据粒度,方便数据的处理。数据分层之后,层与层之间的表存在依赖关系,如果某一张表数据出现问题,那么可以通过依赖关系快速定位问题,并分析影响范围。

具体的,数据缓冲层,用于保存数据采集层采集的数据,并根据数据建立对应的外表。数据缓冲层以数据表的形式保存数据,数据逻辑的处理都是使用sql语句完成,故需要建立外表的形式存在。

为了更方便快速的采集数据,数据缓冲层针对不同数据源采用不同的采集方案。如图3所示,数据缓冲层包括三个不同的采集单元:第一采集单元、第二采集单元、第三采集单元。

第一采集单元采用sqoop工具,用于对mysql数据源进行表级的数据抽取。sqoop是一款开源的工具,主要用于在hadoop软件平台与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:mysql,oracle,postgres等)中的数据导进到hadoop的hdfs(hadoopdistributedfilesystem)系统中,也可以将hdfs系统的数据导进到关系型数据库中。

针对mysql中分库分表的情况,采用sharding技术读取分片库的逻辑,完美解决分库分表的抽取问题。sharding可以简单定义为将大数据库分布到多个物理节点上的一个分区方案。每一个分区包含数据库的某一部分,称为一个shard,分区方式可以是任意的,并不局限于传统的水平分区和垂直分区。一个shard可以包含多个表的内容甚至可以包含多个数据库实例中的内容。每个shard被放置在一个数据库服务器上。一个数据库服务器可以处理一个或多个shard的数据。系统中需要有服务器进行查询路由转发,负责将查询转发到包含该查询所访问数据的shard或shards节点上去执行。

第二采集单元采用flume工具,利用flume工具可以分布式收集数据的优势,完成埋点日志的收集。flume工具是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统,支持在日志系统中定制各类数据发送方,用于收集数据;同时,flume工具提供对数据进行简单处理,并写到各种数据接受方(比如文本、hdfs系统等)的能力。

第三采集单元采用kettle工具,用于结构化的外部数据采集。kettle是开源的数据抽取工具,功能较为丰富,在数据的采集阶段,主要用于结构化的外部数据采集。例如:某些手工维护的学校分类数据,如百城计划包含的学校等;某些个人维护的excel、txt文档等数据。

具体的,细节层,用于将数据缓冲层抽取的数据,按主题构建事实表与维度表,在事实表上补全维度。主题分析的数据组织形式设计为星型模型,即以事实表为核心,维表为补充,事实表与维表以相关联字段做关联。事实表为存储业务过程数据,例如产品销售的流水记录。维度表是补充信息使用的,例如区域维表,时间维表,产品维表,用户维度,渠道维表等。

构建细节层时,会将后续计算时需要用到的维表设计好,并将维度数据补充进事实表中。以用户主题的星型模型为例:事实表:用户表(将stg层抽取而来的教师用户、学生用户、家长用户数据合并);维表:学校表、班级表、区域信息维表等。用户表与学校表使用school_id相关联,可以获取学校对应的属性信息。用户表与区域表使用couty_id相关联,可以获取地市,省份等维度。用户表与班级表使用class_id相关联,获取班级属性等信息。

具体的,中间层,用于对按主题存放的细节层数据,按照业务指标定义,拆解为最细粒度的指标。业务指标定义是指从业务层面定义的指标,例如产品销售额、某产品使用次数等等。将细节层数据拆解为最细粒度的指标便于从不同维度进行汇聚计算。

中间层是仓库构建的一层最细维度的统计基础表,此层表的作用是方便在最细维度之上的各种维度进行汇总。已用户统计主题的为例,设定指标为用户数,通常我们会在班级+角色的维度上进行用户人数指标的统计。在此表基础上,我们可以很方便的在省份(province_id)、地市(city_id)、区县(county_id)、学校(school_id)、年级(grade_id)、班级(class_id)、角色(role_id)等维度上进行各种组合维度的用户人数指标的统计。

数据集市层,用于按照特定数据分析需求进行主题、维度、指标的计算。

其中主题是数据仓库体系下的一个概念性名词,是指在较高层次上讲企业信息系统中的数据进行综合、归类和分析所利用的一个概念,主题模型即是从决策者和管理者的角度反映企业的业务模型,例如产品主题,会包括产品的基础信息,产品定价,产品销售等等数据。

维度,简单来讲就是观察数据的角度,例如,某产品的销售数据,可以从时间维度上来查看具体某天、或周等时间周期的数据汇总;或者从地区维度上来看各个地区的销售数据;这里的时间,地区就是维度。

指标,又称度量值,是指被聚合的统计值,例如产品销售数据中,可能会包含销售额,这个就是指标。

数据集市层是为了实现快速响应主题数据查询,或者微服务数据查询等要求,将某种维度的指标数据统计完成后,生成为数据表,供数据使用方能够快速的查询、检索使用,即上层mid层所说的各种维度组合数据的固化。同时也会根据主题数据查询需要,将不同表数据组合在一起,加快查询数据的速度。

作为优选,存储与计算层还包括:数据监控与调度层,用于数据采集、分层任务的调度并对获取的数据进行监控。

数据问题可能产生于从数据源头、数据处理到数据存储之间各个环节。在数据采集阶段,多种数据源数据的真实性、准确性、完整性、时效性都会影响到数据质量。除此之外,数据的加工,存储过程都有可能涉及对一些数据修改(例如补充维度数据,空值处理等等),从而引发数据的质量问题。

对获取的数据进行监控,主要通过以下四个方面的内容来考量:

1、判断数据采集、数据处理过程中的数据量和数据内的各个字段信息是否完整,若不完整,则说明在数据采集、数据处理过程中的数据存在问题;

2、判断数据记录的格式、字段类型、数据处理前后过程中的数据是否一致以及多源数据集之间的关联信息是否一致,若不一致,则说明在该数据处理过程中的数据存在问题;

3、判断数据记录的内容是否准确、数据各个信息的值域范围是否符合业务设定的规范以及是否存在异常或错误数据,若不符合业务设定的规范或者存在异常或数据错误,则说明在该数据处理过程中的数据存在问题;

4、判断数据采集的时间间隔是否超过设定的时间周期,若超过设定的时间周期,则说明在数据采集的过程中存在问题。

管控层的功能主要是采集、计算任务的时间调度、元数据的管理与维护以及数据生命周期的管理。在时间调度方面,管控层控制数据采集以及主题、维度、指标计算的时间。元数据是描述数据的数据,如创建的表名,表结构中的字段名称、类型、约束,或者数据集中的值域范围等都属于元数据。这部分数据的来源有:设计产出,数据探查产出,日志记录等。通过规范数据的生命三周期管理,提高数据的整体管理水平,提高系统资源的使用效率,确保系统安全、稳定、高效运行。

访问层的功能主要是提供访问端口,并与其他数据平台进行数据共享与交换。同时负责存储与计算层的访问,也可以使二进制文件、文本文档或是xml文档,还可以实现对数据表的select(查询),insert(插入),update(更新),delete(删除)。如果要加入orm的元素,那么就会包括对象和数据表之间的mapping(映射),以及对象实体的持久化。

作为优选,本数据库系统还包括:共享服务层,用于基于计算后的主题数据,对外提供数据服务接口。通过共享服务层,实现对主题数据的共享。外部客户端可以通过共享服务层提供的数据服务接口从云教学平台上获取共享的主题数据。

作为优选,本数据库系统还包括:应用层,用于基于共享服务层提供的数据服务接口。应用层直接和应用程序接口并提供常见的数据应用。应用层也向表示层发出请求。应用层是开放系统的最高层,是直接为应用进程提供服务的,其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。

作为优选,本数据库系统还包括:开发运营层,用于基于共享服务层提供的数据服务接口,为分析人员提供即席查询服务。用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。

本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1