1.前言
接下来的几周我会为大家解读该标准,该标准涉及到很多专业术语,所以我先为大家收集整理一下比较生僻的术语解释,以方便大家理解,为后续解读作铺垫。
2.专业术语解释
2.1ETL
2.1.1定义
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
2.1.2理解
ETL所描述的过程,一般常见的作法包含ETL或是ELT(Extract-Load-Transform),并且混合使用。通常愈大量的数据、复杂的转换逻辑、目的端为较强运算能力的数据库,愈偏向使用ELT,以便运用目的端数据库的平行处理能力。
图解(ETL和ELT的区别):
ETL与ELT最大的区别就是转换环节是入库之前进行还是入库之后进行。
2.2LDAP
2.2.1定义
轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
2.2.2 理解
LDAP是一种通讯协议,是一种什么协议呢?是一个开放的,中立的,工业标准的应用协议,支持TCP/IP,也有人说,LDAP是一种数据库,那么LDAP与mysql数据库的不同体现在什么地方呢?
LADP与传统数据库的不同之处就体现在数据的组织方式上,它是一种有层次的、树形结构。我们怎么来理解这个层次、树形结构?
例子:在数据库中查找一个学生。
我们首先要知道是哪个院系(dc,Domain Component),然后再知道这个院系到这名学生所经过的所有组织单位(ou,Organization Unit),最后再查找这个学生的名字(uid,User Id)。
2.3ACID
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
怎么来理解,举一个简单的例子。小时候肯定都玩过电动,是不是先投币再启动游戏。投币动作为A,启动游戏为B。不可能出现A发生,B不发生。这两个操作必须同时完成。
一致性(Consistency)
事务前后数据的完整性必须保持一致。
也就是事务在开始之前和结束之后,数据库的完整性约束没有被破坏。举个例子,A向B转账,无论转账是否成功。A和B的账户总和是不会改变的。
隔离性(Isolation)
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。事务一旦对数据库进行改变,就不会无缘无故的回滚。
2.4 MOM
2.4.2 定义
MOM(Message Oriented Middleware)是面向消息的中间件,使用消息传送提供者来协调消息传送操作。MOM 需要提供 API 和管理工具。客户端使用api调用,把消息发送到由提供者管理的目的地。在发送消息之后,客户端会继续执行其他工作,并且在接收方收到这个消息确认之前,提供者一直保留该消息。
2.4.2 理解
MOM是消息中间件,即A和B通讯的中间人。MOM的作用就是帮助A和B解决消息传输的效率问题,不让AB直接发送消息。A将消息直接发送到消息中间件就算完成任务了,不需要像以前一样,必须等到B收到了A发送的消息后,才算结束。因此MOM供了基于存储和转发的应用程序之间的异步数据发送。AB直接不再需要直接通讯,大大地提高了效率。
2.4.3 图解
2.5 MQ
2.5.1 定义
MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。一般用来解决应用解耦,异步消息,流量削峰等问题,实现高性能,高可用,可伸缩和最终一致性架构。
2.5.1 理解
消息队列,是一种队列。队列即满足先进先出的原则。如图:
消息队列,即是将传输数据放在队列里面。为什么需要MQ呢?有了MQ,可以帮助我们解耦、削峰、异步等。
2.6 REST
2.6.1 理解
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
2.6.2 理解
如何理解简单地来理解REST,REST就是一组约束,它规定了接口怎么写。那么REST风格的接口到底是什么样子的呢?
利用url定位资源,用HTTP动词描述操作(GET、POST)。这样理解可能还是有一点模糊,那我再说通俗一点,就是接口名称是名词,不用动词。那怎么区分增删查改呢?当然是利用HTTP的动词啦!
url:sctu.edu.com/zhuogong/students 接口类型:POST
url:sctu.edu.com/zhuogong/students 接口类型:GET
url:sctu.edu.com/zhuogong/students 接口类型:DELETE
url:sctu.edu.com/zhuogong/students 接口类型:PUT
以上就是REST风格接口。接口名称都是名词(students),操作区别靠HTTP动词(GET)。