从数据到AI
- 2019 年 11 月 21 日
- 笔记
一篇关于数据仓库建设、人工数据分析、AI数据分析的讲义
数据Data&信息Information
信息
信息是一个客观存在物体的自然表现,比如说“I am a local villain.”,无论你用什么语言、什么方式表示他都是客观存在的,而信息即是承载这些客观实体的概念载体。虽然香浓知道20世纪中才提出了信息轮,但是信息自古就有,与算机系统的出现无关,比如远古结绳记事、早期文明的甲骨文、中世纪文明的简牍等等,但是直道现代才理论化。
我们的职业被简称为I.T行业,即 Information Technology,就是信息技术行业。实际上我们做的任何事情都是为信息服务的。
数据
数据是信息的一种载体,他是到了“信息化”时代出现的产物,在没有所谓的数据之前,信息也会通过文字、数字在记载。
数据的基础也就是整个IT行业的基础——所有的信息都通过0/1来表示,通常就是1bit表示一个0/1的信息,四个bit表示一个字节(现在的Unicode或宽字节是8个bit),通过这种确定性关系,所有的信息都可以通过0/1的组合来表达各种各样的信息。
随着数据的不断累积和堆积在数据背后发现了惊人的统计规律,随着这些统计规律的发展渐渐的出现了AI分析和数据分析。
数据&数据分析&AI
如下图是建立数据分析工程的过程

分为几个大的步骤:
- 建立数据仓库。
- 进行数据分析和挖掘。
- 根据需要训练AI模型。
数据仓库的建立
联机事物型系统&决策分析系统
在数据能力上,通常将系统的数据结构模型分为2类,联机事物型、决策分析型。
- 联机事物型系统是指用于日常信息业务的系统,通常情况下80%的IT软件开发人员都在制作这一类系统。他的特点是:
- 信息的在线性。
- 信息强一致性同步。
- 数据事物性。
- 强调信息的原子性。
- 强调信息的实时性。
- 强调信息处理的健壮性。
- 决策分析型系统是通过数据的组合、分析、模拟、合成以实现一个决策分析的支持,其特点如下:
- 信息可以离线。
- 信息可以实时不同步,但是需要明确维度时间点。
- 不考虑事物。
- 信息的原子性无任何要求,但是需要根据具体的业务。
- 无实时性要求,根据业务制定。
- 信息的健壮性的要求依赖业务需求。
对于2种系统而言,可以抛开用代码实现的业务系统直接考察数据库。以MySql为例,通常情况下innodb是用于支持联机事物系统的,而MyISam是支持决策分析系统的:
- 由于数据磁盘存储的特性,无论是写入数据还是查询数据。联系型事物系统都是碎片化的,因此会直接导致磁盘存在大量的碎片,因此innodb的块分区会很小,而且为了支持事物,会有专门的事物处理区块和进程。相对而言MyISam的分块会大很多,这种特性有利于大量的查询和统计,同时MyISam的索引和碎片整理机制和Innodb有巨大的差别,更适合于大量数据查询和跑批量统计。
- 当我们使用Innodb执行多个海量数据统计查询时,会因为碎片化的磁盘高频读写极导致IO效率快速下降,当数量达到一定规模时会影响本身的业务。而MyISam本身的大区块模型会极大的降低数据读写频率。
- 从数据结构设计来看,联机业务系统强调原子性,因此必须按照严格的ER范式进行设计,对数据进行冗余势必影响代码层面的业务功能。而决策分析型系统因为必须考虑数据的原子性(其不是数据的来源,仅是数据的“快照”),因此反范式设计通常是决策系统的要求。
- 从业务系统的代码层面考虑,因为大量的数据可能会耗费大量的内存,因此其内存模型在两者之间应该有所的区别。
数据演变的过程与总线化
蜘蛛网演化
在信息化建设的过程中,最经常遇到的问题就是多个信息系统的打通。比如财务系统(ERP)需要和资产管理系统打通(EAM)。每遇到这种要求我们的常规认知都是开发接口(例如J2EE的SOA规范)。但是这种方式都是解决了点对点的系统,当点对点的系统越来越多,逐渐变成一个巨大的网状结构,每个结点都是一个系统,每个系统都有很多连接线连接到其他系统。这称为蜘蛛网演化过程。随着网化的过程逐渐加深,管理难度和系统间的数据同步问题也呈指数级提升。
数据总线
在业务系统和数据仓库之前,通常还会建立一个数据总线。所有的系统对外连接只考虑到总线。总线需要严格的定义数据规范、数据格式、数据字典内容等等。例如EAM系统入库了一支铅笔,在某个时候会映射到业务数据库上,随后监控归档日志发现了这个变更、然后定义一个[时间handle][系统][表][时间][字段信息体]的事件数据推送到总线上,总线会向定义了监听模型的中间件推送相关的数据信息。所有的业务系统包括数据仓库会根据总线信息来更新自身的数据。
数据仓库&主题
通常情况下,一个数据仓库都是依托一个数据主题进行建立的,例如订单数据主题。在很多时候数据仓库是指一个数据库,有时候数据仓库又是只一个具体的主题模型。
星形结构
事实表
数据仓库的数据通常都是以星形结构,通常星形的中心表称为事实表,是我们搭建仓库进行数据分析的核心的核心。我们用来进行数据输出的表都是以这个表作为中心的。然后外键关联的形式也是以这个表作为核心。
静态维度表
静态维度表通常与事实表可以确立一对一的关系,而且在业务层面一经过确立就不会发生改变。比如订单的创建日期维度,这个表通常是为了满足扩展性展示和分析而建立的。
缓慢变更维度表
在大部分业务关系中,相关联的数据并无法和事实表建立一对一的关系,各自有各自的维度体系。比如订单表与商户信息表,此时的星形结构中使用缓慢变更维度表。
###星形结构案例

数据集市
有了数据仓库和主题之后,我们就可以针对不同的需求建立数据集市,集市就是依托一个数据仓库模型针对某个业务搭建的数据展示、分析案例。
通常在我们完成数据仓库搭建过后,就可以依托数据仓库的的星形结构输出一个数据集市的视图。然后通过视图进行数据展示和分析。

- 数据集市的数据通常情况下以事实表为基础,也就是说集市的每一行数据都会对应事实表的一行数据,只是在字段内容是会根据输出内容的要求进行进行增减。
- 不排除数据集市的基础数据不以事实表为基础的情况,例如以商户作为行数据,然后将对应的订单金额数据汇总到每一行。但是如果某个数据仓库主题大量的出现这种情况,需要考虑另外新建数据仓库主题。
数据仓库案例展示superset
- 地址:http://192.168.0.212:8088
- 账号:admin
- 密码:admin
数据分析到AI训练
进过大量的数据演练,可以逐渐的发现数据背后的统计规律。
https://ppt.baomitu.com/d/8ad646a2#/。