|
数据集成指的是把分散在各个系统中的各种类型的数据统一汇聚起来,而数据集成系统就是提供数据集成能力的平台。如何做好一个数据集成系统呢?本文作者对此进行了分析,一起来看一下吧。% M/ R" K; Y3 T& | t+ Y
* r6 ]' l+ R p, ^$ w- V* {2 [
2 \! ]) D# e9 k* q$ n# a/ d8 {
0 Y; P. @8 p+ u$ J
一个风雨交加的晚上,领导把我拉到会议室说:老影啊,公司接到一个项目,需要在 3 个月里完成一个大数据平台的开发,用于项目的交付,这个任务交给你了,加油搞!此刻的我:搞?搞事情啊!由此我开始了数据平台的 " 闯关之路 ",遇到的第一个 boss 就是数据集成系统……
5 Z& ~$ ?2 T7 A. \) Q! o& G 01 什么是数据集成?
! k @! ]! b. K: y7 | L8 v; N百科里的解释是:把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享;通俗讲就是把分散在各个系统中的各种类型的数据统一汇聚起来,主要体现在一个 " 集 " 字。而数据集成系统就是提供数据集成能力的平台,是一站式解决异构数据存储互通,消除数据孤岛的同步平台,为大数据各系统和业务方提供数据集成的高效通道 。" `7 o' O- ~8 x5 L( g8 ~2 ?
拿现实中的实例类比来说,数据集成就好比把各种粮食通过不同的管道灌输到一个大粮仓中,这些管道就是数据集成系统,我们可以支持接入各式各样的粮食,小麦、玉米、大豆等等,同时支持在这些管道中加一些滤网,比如在大豆的管道中加上 5mm 的滤网,此时从大豆管道过来的粮食只有 5mm 以下的大豆,这就相当于数据集成系统中的数据过滤功能;这个粮仓相当于集成目的,我们把数据集成进来之后存储在这里,供其他各方消费。2 o3 P4 w) m6 u. n0 c `9 p
02 教育为什么要做数据集成?- ?( t2 _ o; z/ m |' l: W( u% {
1. 数据大爆炸
; {" `; b* D! Y/ p现在是一个信息大爆炸时代,互联网的高速发展、迅速普及,让信息无处不在、无孔不入,每天在我们所生活在的这个世界出现了大量的信息,教育场景下也不例外,随着各种信息化系统的涌入,信息以空前的速度增长,教育从业者体验着信息时代便捷的同时,也给他们带来了问题和 " 副作用 ",从浩如烟海的信息海洋中迅速而准确地获取他们最需要的信息,变得非常困难。. M1 c" ?! \# @: N
2. 数据来源多样化
9 p( O( u& L7 h1 G随着《教育信息化 2.0 行动计划》的提出,教学过程中的信息化系统越来越多,比如作业系统、考试系统、选课系统、智慧课堂等等,每个系统都会产生大量的数据,存储在各自的数据库中,如果系统的服务商不同,可能数据的格式也不一样,致使教育场景下的数据越来越多,越来越难以管理。% L0 h( \- W+ m$ w' {& b }# O: N1 p
3. 数据集不同结构9 k# h) p. C5 T# X4 w4 b& U
教育场景下的数据集可能是结构化的、半结构化的,甚至非结构化的;比如:考试系统中的数据是结构化的,评价系统中的数据是半结构化的,课堂实录中的数据是非结构化的;不同结构的数据需要整合成统一的结构才能够进行统计和分析。
7 j! T; L! }) {0 r% x9 V 4. 数据冗余
5 ^# [" d9 a- j! ^1 y$ `数据中有很多冗余、错误、敏感数据,如果不进行数据清洗,会影响数据分析的效率和结果;在这种情况下需要我们配置统一的标准,对数据进行简单的处理,以便于后续进行统计分析。
" q- o& q+ e- v" q1 g. P 03 数据集成系统对教育的价值是什么?& u# ?( w) T4 f4 H
大数据技术能够将隐藏于海量数据中的信息和知识挖掘出来,按照科学的教育评价准则,对教学数据进行科学的统计分析,提供有价值的教学质量测评与分析数据,实现对教育活动,教育过程和教育结果的价值评判,为提高教育质量,教育决策以及学校改进日常教学方法提供科学的依据,实现教育管理的智能化,提升教育管理与服务水平。
! P7 c1 \( b7 B数据集成系统作为底层基础支撑性服务,是大数据系统的核心组成部分。通过提供数据集成能力,将教育各部门和来自互联网的结构化和非结构化的数据进行统一的汇聚接入,存储到大数据存储组件,并支持数据的预处理,为大数据系统提供原始数据支撑。0 }2 e+ u. \5 I" W
04 数据集成系统怎么做?% N w7 x5 ^2 j, v/ i8 ^
1. 建设原则4 f& S' v, y' d E* |7 O, i
数据采集系统针对实际项目中复杂的、异构的数据环境,实现对多种数据源的集成,支持的关系数据库有 Oracle、MySQL、Sqlserver 等,支持的文件类型有 txt 文件、csv 文件、excel 文件等,支持的接口类型有 webservice 接口、http 接口、socket 接口等。
6 X9 m& {8 S/ z" w对于不同的大数据存储需求,实现对多种大数据存储组件的支持,支持的大数据存储组件包括 HDFS、HBase、Hive、Solr、Elasticserach 等。
+ a, S0 @6 {1 W' r. K. O* ~) s针对数据的预处理需求,实现对数据的清洗、转换、标准化等预处理的支持,并且支持清洗规则、转换规则的用户自定义,以及清洗、转换、导入流程的用户自定义。$ A0 }0 Y( V( G" F' W
在数据采集系统中,各类功能点模块化、组件化,便于步骤独立,保证系统内部模块自治,同时便于多种步骤、方法的组合应用。
( u" H/ F/ N! W6 x3 x( H; K简化用户操作,通过图形化的配置方式,简单,灵活,使得用户无需过分关心数据库的各种内部细节,而专注于功能。
' b y; v% a, C$ k) p 2. 数据集成信息框架
- h( u& q& S$ K2 |$ w9 c3 w/ F! f q* x8 p c: A( f, M% |
9 i; B9 g" i7 |' z6 W
* Y' b1 L* @4 l& D( E( ^
数据集成信息流6 w! o. V( i+ {6 q' g
3. 功能结构
# }% y0 P' T* j( W! V. C为了快速实现数据集成系统,满足后续项目交付,经过和研发大佬的多次沟通,优先实现为业务提供数据集成的能力的数据源管理和集成任务管理。明确了第一版需求,只要包含数据源管理和集成任务管理就可以支持项目交付,因此功能结构设计如下:4 @0 b$ N+ ~9 M
4 r9 U, q% J$ k1 v. y. ~: K1 M; O$ P, p" V( u7 o; {% Z
6 w6 a/ K* f+ m+ F' r; K0 F! Q数据集成系统功能结构图! O$ y5 l1 ]2 x. w6 n9 p+ F
4. 建设内容' \+ Y$ n/ d T& s- T2 i/ `
1)数据源管理3 V& `0 l0 z4 Y0 c* l8 d3 ^
数据源模块主要管理平台支持的数据组件的基础信息,包含各种数据组件的新增,配置和管理,如关系型数据库的数据库 IP,端口,访问信息等。这里大家可以理解为一个中间层,先通过数据抽取组件将各系统数据抽取到这里,以备后续集成任务管理模块的调用。
: {5 j; D7 y; b7 [' m2 O6 z+ n在这里可以对数据源进行增删改查,前提是需要和数据来源方沟通好,需要提供数据库 IP 相关信息,下方是页面示例:! I# F E: E( ^/ s
- q8 q" \ {. w1 U
( N& w0 K# P& y% R2 n* k/ c
' u+ V) v$ x+ P0 E% ^数据源管理列表) j: s+ I: |7 N9 b
2)集成任务管理
8 i! P& p2 i3 s当用户创建好数据源之后,需要有一个模块支持用户创建集成任务,相当于上文中讲到的,上游的所有粮食都准备好了,需要我们提供搭建管道的地方,让用户把所有的管道搭起来,然后把各种粮食都汇聚到一起。此时集成任务管理模块诞生了,这个模块下主要对数据集成的任务进行统一的管理,支持用户对数据集成任务进行增删改查。3 n# c- I9 k& \) N
①操作列表功能
4 f" ]6 O4 Z- w) J" R上线:集成任务完成创建状态默认为未上线,此时用户可将集成任务上线,上线为就绪状态;: J% o5 S* y4 c' h: V
运行:上线状态下的任务支持运行,运行自动调用任务执行组件,开始数据集成;
+ B& G2 a7 `$ d8 h* Y下线:已上线的任务支持下线;
, s. ~* D. H( k, u" N3 Z删除:未上线和已下线的任务支持删除;" ]# A; M9 `8 H
编辑:未上线和已下线的任务支持编辑。
0 F: l% z6 j; p1 O+ Z% F) b
; w. a) Z9 l- n. b. Q, \. V' @) E1 W: D ~0 N
5 D& n% b8 v) m9 k9 d& |
数据集成任务列表
+ j8 b) ^) d4 J5 @②任务运行
! k% q+ h3 H5 [- ?# Y0 w9 J( p集成任务创建好之后,如果需要周期性的拉取数据,这时候需要支持进行例行周期配置,支持用户配置定时任务;
5 X. J5 l; p6 D: O; F w同时支持用户进行失败策略、任务执行优先级等相关参数的配置。
: e0 Q, ]0 d" c9 n; N5 o3)新增集成任务: o' ]( P$ p" U O/ U
为了方便用户填写,支持用户选择不同的数据源类型,数据接口类型不同,需要配置的参数信息也不同;但是总体来说数据集成主要分为三步:
/ d2 r7 `# D" ^) ^! W; K数据接入:回答数据从哪来的问题;
8 S" j0 D0 a; S' j3 o1 T数据处理:回答对数据要做什么的问题;2 r3 Q* c: s) p# j
数据输出:回答数据要到哪去的问题。
1 Z3 Q; j) T* Z* }4 d* P. I8 I8 B下方以将第三方数据库数据集成到 hive 中为例举例说明。选择数据库之后,页面进入数据集成任务配置页,三个步骤依次如下:
3 s: h$ { M0 E5 m5 J0 y% K h# B% `①数据接入
* r6 g# m1 z, R2 N$ d0 u( _) y主要配置数据源相关信息,需要用户填写数据源表相关信息:
& P- p* ]. k- i: b. n- B数据源:数据集群相关信息;: B4 _* y6 Y( Y7 _4 E% ~4 w& U9 {
数据库:源数据存储数据库;
. `3 o' A; \/ ~+ u q# ?是否分表:如果分表存储需要从多个表抽取数据;
: F, J" w" v; s* X6 M, L表名:源数据所在表名;. y2 e. v) A7 T- a5 J2 ^ D! ~
数据归属产品 / 系统:这部分数据在目录管理系统维护,这里直接引用;
, u4 ]7 C, `4 k- G数据预览:支持用户对所选表进行预览,查看数据格式。1 ]* P- r$ ?0 x/ x. g d
, x" k' d2 N8 q% a
1 s5 _8 ]/ p1 z5 B: s1 b1 j6 a. c8 V5 r# K* z6 x! a; j7 [
数据接入% L* H! }3 f3 T: o/ j7 |
②数据处理
# v4 }8 F9 k* J2 k到在数据集成过程中会对数据进行预处理,考虑到后续的扩展性,这里直接将各种处理步骤提炼为公共组件,支持用户自定义选择,第一期可支持:字段映射过滤、账号匹配、数据脱敏、数据转换;为了节省操作,数据处理默认以字段映射过滤开始,自动选择一项,用户可直接点击下一步。
8 F/ b. F% Z2 o1 z- ]
) Q u# }# S. h. `( V, r: ^5 l6 `+ J. \9 \
1 M9 e0 |7 z6 k# P& o W数据处理. y I* L6 A2 w0 Q
③数据输出* h7 j$ \8 ^# l
此时的数据经过预处理,已经完成了清洗、转换的操作,接下来就需要将处理完的数据存下来,以备后续使用。2 H; u% o/ T3 S
7 P2 A# B! R8 g. D% u8 y/ B, t
. C# N9 m1 [5 h3 D/ c% y/ |
- ]) W% P4 b8 ?9 b: _数据输出
( J- ]( G. d; G7 {+ \! Z 05 数据集成结束后做什么?
8 ]* c6 i. R6 D下面以学生画像的思路和大家简单聊聊。通过从各个系统中采集过来的数据,包含但不限于:学生上网数据、网页浏览时长、作业完成数据、作业完成时长、课堂互动数据等等,帮助学校管理者针对学生群体进行标签化分析。帮助教育管理者从学习,网络行为,生活等多维度分析学生群体的习惯和特点,为学校实现个性化培养教育提供数据支撑。) x+ J' M+ C D! E! {: j
学生画像整体分为个人画像和群体画像:4 |8 S: o: g1 o; b: Y5 Q
1)群体画像& y0 ?- ^5 z. D1 f
通过对学生行为数据和结果数据的分析,为每个学生贴上具有行为或思想的特征标签,并按照群体分类,教育管理者可以查看每个分类的人群特征,并从学校、年级、男女比例等各方面进行群体标签的分析,帮助学校定位不同标签人群的特征和规律,实现精细化管理,同时通过对不同行为数据进行阈值设置,及时发现出现问题的学生,以便进行及时纠偏。
; i7 d. }2 T* [ Y& ~2)个人画像+ n4 u b( Q5 l+ ^+ q; d0 C# \! H
通过采集学生各场景数据,如学习行为、学习结果、消费信息、饮食信息、运动信息等,综合分析学生的学习状态,全面刻画学生画像,帮助教育管理者全方位了解一个学生,通过多维度分析学生的学习习惯和学习动机,逐步实现喊了 2000 多年的口号 " 因材施教 "。. V6 Q) F1 i% t* S& f/ X
作者:一丁," 数据人创作者联盟 " 成员。0 ^3 B1 @* l6 k6 k
本文由 @一个数据人的自留地 原创发布于人人都是产品经理,未经许可,禁止转载。
. {- C% e% N$ M: C m5 t题图来自 Unsplash,基于 CC0 协议。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|