400-9900-579

深度剖析IntaLink数据自动关联平台的产品力!

发表时间:2024-09-25 15:07
图片
一、 IntaLink的目标


用一句话来概括:IntaLink的目标是实现数据集成领域的数据自动关联。


我们对上面的定义进行一些展开的描述:

(1)IntaLink的应用场景是用于数据集成,最简单的情况是同一系统内多个数据表的关联应用;复杂的情况是多源异构数据的关联使用;

(2)数据集成的应用方法,需要建立表间关系;

(3)需要集成的数据,本身能够建立关联关系。

在满足上述应用条件时,IntaLink的应用目标就是:用户给定想要集成使用的数据内容,具体输入为多个“数据表.数据项”,IntaLink就会给出可用的数据关联链路。


图片
二、 IntaLink的作用
我们以下面一个示例性场景来说明IntaLink解决的问题,示例中包含的内容比较多,数据之间的关系需要耐心理解。正是因为问题的复杂性,才体现了IntaLink的作用与价值。

场景说明:

(1)某个大学有不同的学院,我们为每个学院定义一个缩写的ID,我们定义这个数据表是T_A,样例数据如下:


DEPARTMENT_ID

DEPART_NAME

GEO

地学院

IT

信息工程院

(2)每个学院有若干个班级,用入学年度加上班级序号编码班级编号,并有中文的班级名称,本数据表定义为T_B,样例数据如下,(黄色填充为后续应用所需的目标数据,下同):


CLASSES_ID

CLASSES_NAME

DEPARTMENT

2020_01

地20(1)

GEO

2020_02

地20(2)

GEO


(3)每个班级有若干学生,每个学生有一个全校唯一的学号,本数据表定义为T_C,样例数据如下:


STUDENT_ID

STUDENT_NAME

CLASSES

202000001

张三

2020_01


202000002

李四

2020_02



(4)学校开设了若干课程,每门课程有一个课程编号,以及试卷总分和课程的学分,本数据表定义为T_D,样例数据如下:


CLASS_CODE

CLASS_TITLE

FULL_SCORE

CREDIT

MATH_01

高等数学(一)

100

4

MATH_02

高等数学(二)

100

4

MATH_03

高等数学(三)

100

4

EGNLISH_LV1

英语(一)

100

2

CHEMISTRY

化学

10

2


(5)假定不同学院对同一门课的要求不同,即同一门课及格的分数线不同,如计算机专业对数学要求高,而地学院以了解为主,本数据表定义为T_E,样例数据如下:


DEPARTMENT

CLASS

PASS_SCORE

GEO

MATH_02

60

IT

MATH_02

75


(6)不同学期开设的课程不同,每个学生参加考试的科目会有成绩,本数据表定义为T_F,样例数据如下:


SUTDENT_ID

TERM

CLASS

SCORE

202000001

2023_1

MATH_02

85

202000001

2023_1

ENGLISH_LV1

92

202000001

2023_1

CHEMISTRY

7

202000002

2023_1

MATH_01

78


基于以上应用场景的示例数据,我们可以看到有6张数据表,这种数据逻辑设计是合理的,符合数据库设计的3NF规范。下面有一个应用需求,就是列出每个学生在2023_1学期参加考试的课程,得到的分数以及及格分数线。样例数据如下:


班级

姓名

学期

课程

达标分数

得分

地20(1)

张三

2023_1

高等数学(二)

60

85

,..







我们可以看到,核心应用的两张数据表是
T_E和T_F,T_E里面包含了学生各门课程的分数,而T_F则定义了不同学院同一门课的及格分数。但是这两张表不足以生成上面需求所需的结果数据,主要欠缺如下信息:

(1) T_E和T_F涉及到的数据无中文说明,都是编码,需要转换;
(2) T_E中没有学生所属的学院,不能判断应该选取哪个分数作为及格分数线。

在实际应用中,形成上述应用结果,如果用SQL语句查询,应该会形成如下的语句:

图片


IntaLink的作用就是当用户已经确定了需要使用的数据后,IntaLink会自动生成黄色部分的内容。主要内容就是根据用户访问需求,自动判断使用的数据表,以及数据表间的数据关联关系


蓝色部分的内容是用户的查询条件,需要由用户输入,不是IntaLink解决问题的范围。


图片
三、 IntaLink解决的问题


针对上面的应用场景,很多人可能会有疑问,这就是常规的多表数据关联应用,人工拼写这种SQL语句非常简单啊,看不出IntaLink有多大价值。
我们把这个应用场景放在一个更大的应用环境中考虑。假设一个大学有很多套应用系统,包括学籍管理,科研管理、园区管理、人力资源管理、门禁系统、……等几十套系统,每套系统各有几十张~数百张数据表,每张数据表中又有几十个数据项。

假设这个需求是一个应用系统建设的项目中的一个具体业务需求,提出上面需求的人是一个学校的管理人员,而不是IT人员。他不清楚这些数据存放在哪个系统中哪张数据表中。而负责这个项目建设的队伍是一个中标单位,他也不清楚这些内容。那么完成这个开发任务,首先要理解业务需求,然后与学校负责数据运维的IT人员结合,如果配合的IT人员对这个需求非常清楚,可能会直接提供用到的数据表。开发人员再对数据进行分析,确定数据之间的逻辑关系。如果运维人员只对某些系统熟悉,而对于需求中涉及到的一些系统不了解。可能只能提供大概的方向和数据模型,由开发人员分析数据模型、分析实际数据,数据确源后再进行开发。

综上,拼写上面的SQL语句非常简单,但是确定用哪些数据表,尤其是需求中没有明确提出的内容,是隐藏的需求,需要大量的人工分析和试错。如上面数据示例中,及格分数线同一门课程对于不同学院是不同的。而一个学生没有直接关联学院,而是关联的班级,而班级才属于某个学院。解决问题的关键是要理解业务逻辑、数据逻辑以及数据标准。当用户所具有的系统数、数据表和数据项非常多时,很少有人能够全面掌握这些内容。即使有人全面掌握这些内容,这些认识也是个人的认识,不可能少数几个人完成所有应用系统开发。在一个实际项目中,很可能最终的数据开发编码工作只占整个工作量的1/4,大量的工作是需求调研(理解业务)、数据分析(掌握数据标准和数据逻辑)、算法设计(数据处理逻辑,其中重点就是多表数据集的表间关系)。而对于一个软件开发人员来说,很可能完成项目后,就不再从事相关内容的工作。这类工作没有形成可复用的价值。


综上,我们概括IntaLink解决的问题:
图片

(1)数据集成开发时,只需要了解用户的应用目标,而不需要理解其底层的业务逻辑;

(2)数据集成开发时,只需要掌握使用目标的数据项,不需要确定用到哪些数据表(主要是指起到关联作用的中间表);

(3)数据集成开发时,只需要确定查询条件,不需要建立表间关联的逻辑关系。

通过解决如上问题,使用IntaLink可以避免数据分析的工作量,减少数据开发的工作量。数据集成应用整体工作量减少90%,综合提效10倍以上。



分享到:
全国统一服务热线
400-9900-579
商务合作:17200327995 微信咨询:17200327995 联系邮箱:lanfeng@primeto.cn

----------------------------
----------------------------
----------------------------
 联系方式
客服热线:400-xx6-8888
邮箱:abc@qq.com
400-9900-579