大数据与机器学习:实践方法与行业案例.1.1 数据的基本形态

简介:

数据与平台篇

(Data & Infrastructures)

迟序之数,非出神怪,有形可检,有数可推。

—祖冲之

数学是知识的工具,亦是其他知识工具的泉源。所有研究顺序和度量的科学均和数学有关。

—笛卡儿

 

对于大部分非计算机专业出身的分析人员和业务人员来说,数据库领域的专业术语简直让人抓狂,非要搞得那么高深吗?大可不必。

数据科学家是数据的应用者,以最大限度来提炼数据价值为目的,不必像数据仓库开发者那样对数据的存储、结构以及数据仓库的内生技术一清二楚,但应该站在找到数据、拼接数据、使用数据的角度,大体了解数据的分布、处理逻辑,以便为分析快速地准备素材。

 

第1章

数据与数据平台

合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。

—《老子》

世界的本质是数。

—毕达哥拉斯

数据时时刻刻在伴随着我们的工作和生活,就像空气围绕着我们一样,以致于我们常常忽略了它的存在。但如果你立志做一个崇尚数据的人,静下心来像科学家研究空气一样研究数据,就会发现数据为我们认知事物打开了一条全新的途径。

可以通过数据认识自身:人类全身的肌肉大约有639块,由60亿条肌纤维构成,而起着重要作用的大脑则由140亿个细胞构成。

可以通过数据描述我们的工作:周一上午10:00~11:30召开会议,讨论公司第三季度的销售目标。

可以通过数据描述我们的行为:花费6088元购买一台iPhone 6手机,中速游泳60分钟消耗约1000千卡的热量。

还可以通过数据认识我们所处的环境:现在时间是14:00,当前温度为28℃,上个月的CPI同比上涨1.4%,蔬菜和水果价格上涨了6.7%。

甚至可以通过数据认识遥不可及的物体:太阳直径为1 392 000公里,表面温度达57 809开尔文……数据让我们认识了世间万物,那么我们该如何认识数据本身呢?

数据的本质是一个十分深奥且宽泛的话题,甚至带有哲学的意味。作为技术类书籍,本书不尝试从哲学的角度研究数据,而是基于实践,从思维和技术手段出发来认识、理解、处理并分析周围的数据。为了更加具体,本书研究的数据定位于企业经营数据。

本章首先将从数据的基本形态入手,介绍企业中数据的来源和表现形态;然后介绍与之相关的数据平台,并简单介绍两类应用系统。在着手处理数据之前,让我们先对数据有一个清晰的认识。


1.1 数据的基本形态


我们不是自然科学家,但是可以借鉴自然科学的思路来看待数据问题。问题是数据具有形态吗?虽然数据并不具有固态、液态或气态等形态,但是可以根据需要为数据定义属于自己的专属形态。

一旦为数据赋予了恰当的形态,并在一定范围内(比如在一个公司内部)达成共识,形成对数据的系统化认识,就可以基于这些数据形态提出相应的管理和使用方案,提升数据的效率和价值。

一般情况下,对于企业经营中产生的数据,可以定义为三种形态:生产数据、原始数据和分析数据。这些数据形态的产生,是基于企业应用系统所在的生产环境和分析环境而存在的,在深入讨论数据形态之前,我们先来熟悉一下数据所在的环境。

1.1.1 数据环境与数据形态

数据环境是指数据存储、处理、转换所处的物理环境,常见的数据环境有生产环境、分析环境和测试环境。

生产环境是生产应用系统实时运行所在的环境,而生产应用系统则是一系列业务逻辑的组合。我们可以把生产环境想象成人的身体,生产应用系统就是人体中的各个系统(消化系统、呼吸系统等),业务逻辑则是这些系统中的“经络”,而数据便是运行于经络之中的“气血”。数据从“经络”中的一个“穴位”流转到另一个“穴位”,并在“流淌”中发生变化,所以,生产环境中的数据是“动态变换”的数据,我们称为生产数据。

分析环境是与生产环境物理解耦的一个数据环境。在生产环境中,由于数据总是处于不停变化中,这些数据的变化将直接反映为业务逻辑结果的变化,因此不应该尝试在生产环境中对数据进行分析处理。为了不影响生产环境的正常运行,需要将生产环境中的“动态”数据的快照保存下来(例如每日凌晨将时间戳为昨日的数据导出),这些数据快照是“静态”的,我们称为分析数据,保存分析数据的物理环境即我们所说的分析环境。

在实际中,还有另外一个环境,即测试环境。测试环境中的数据也是独立于生产环境和分析环境的,由于测试环境的数据通常不是有效的数据,因此本书不关注测试环境的数据。

至此,根据数据所处的环境,我们将数据定义为三种基本形态:生产数据、原始数据和分析数据。

生产数据存在于生产环境之中,分析数据存在于分析环境之中。此外,在生产数据和分析数据之间,还存在一种过渡形态的数据,即原始数据。图1-1展示了数据环境及其对应的数据形态。

 

图1-1 数据环境及其对应的数据形态

注意,图1-1中所示的原始数据,既不属于生产环境也不属于分析环境,这意味着它不直接用于生产,也不直接用于分析。原始数据作为生产数据到分析数据的中间形态存在,本书随后的章节将进一步讨论原始数据的相关问题。

1.1.2 生产数据

生产数据是应用系统中在线使用的数据,它可能是一个生产系统的生产环境数据库中的数据,比如在一个P2P借贷平台的系统中,用户进行注册、充值、投资等行为产生的数据将被记录到生产环境数据库中,这些数据即为生产数据。

生产数据是动态的,会随着业务应用的变化而变化,比如用户账户余额数据,会随着用户投资的变化而变化。任何存在于生产环境中的数据,都在时刻准备发生改变,只不过有些生产数据的变化频率特别低而已,比如用户的年龄信息。

正常情况下,数据分析师并不直接接触生产数据,但需要注意的是,有些生产数据是从分析数据而来的。比如用户标签数据,它本身是从分析数据构建的,属于分析数据。但这些标签数据一旦用于应用系统,例如作为推荐系统的底层数据,即转化为生产数据,这种情况下,应用系统输出结果的质量将受到分析数据的直接影响。

1.1.3 原始数据

由于生产数据是动态的数据,而过去大量的分析工具和分析方法很难处理动态改变的数据(流处理已经改变了这种情况)。为了在不影响生产应用系统的情况下分析和处理这些数据,我们需要将这些数据从生产系统解耦。

从生产系统解耦的数据即是原始数据。数据解耦的过程一般包括数据脱敏(如屏蔽电话号码、去除住宅详细信息等)、信息筛选(抛弃不需要的字段)、批量导出(如在T日凌晨批量导出T-1日的交易明细数据)等。

原始数据可以以多种形式存在,例如存储在生产数据库备库中,或者以文本文件的格式存放在文件服务器中。无论以何种形式存在,原始数据都应该独立于生产环境和分析环境,这可以避免分析环境对生产环境的干扰。

存放这些原始数据的地方,我们称为数据缓冲区。在很多企业中,数据缓冲区和原始数据并未得到足够重视,它们大多为了前期的方便,省略了数据缓冲区和原始数据形态,就像图1-2所示的那样。

显然,数据直连的方式让生产环境直接暴露在分析环境之上,两者之间的ETL(Extract-Transform-Load)过程将对双方的性能造成影响。随着数据量的增加,这可能会带来数据管理和应用上的灾难。

 

图1-2 省略数据缓冲区的数据直连

本书极力推荐图1-1所示的方式,虽然它比图1-2要复杂,但在数据管理和可扩展性方面有非常大的优势。后面的第2.1节中会深入讨论该问题。

1.1.4 分析数据

分析数据是对原始数据进行属性筛选、标准统一之后,使用优化存储的方式存放于分析环境中的数据。从原始数据到分析数据的关键步骤在于ETL过程。

比如,原始数据中的一张表A可能包含100个字段,经过ETL之后,得到了一个包含45个字段的表B,其中的日期格式进行了统一,且滤除了一些特殊字符,并将表B存放于分析环境数据平台的关系数据库Oracle中。这样,原始数据中的表A完成了属性筛选和标准统一(日期格式),转换成了分析数据表B。

另一种需要标准统一的情景根源于原始数据本身的多样性。由于原始数据来源于不同的生产应用系统,其数据格式及字段含义均存在差异。例如,原始数据存放的格式可能有Windows文本、Linux文本、主机格式文本、数据库文件等多种形式;字段含义上的差异则更加多样,比如,由原始数据文件A中性别字段使用1表示男性、2表示女性,而原始数据文件B中性别字段使用M表示男性、F表示女性。通过标准统一,可以约定所有的分析数据统一使用1表示男性、2表示女性。数据统一可为数据分析和数据应用铺平道路。

经过ETL之后的分析数据,为了进一步提高存储效率和读取效率,需要使用技术手段进行存储优化,比如创建索引、进行分区、分表存储、使用大数据平台等。

通过对原始数据的提炼和优化,分析数据具有了信息集中、标准统一、分析效率高等特点,便于数据进一步的分析和应用。

分析数据需要依托数据平台而存在,数据平台的性能对其上的数据分析和应用有决定性影响。数据平台是分析环境的基础,在随后的“数据平台”章节中,我们将详细介绍。


相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2天前
|
数据采集 供应链 安全
利用大数据优化业务流程:策略与实践
【5月更文挑战第11天】本文探讨了利用大数据优化业务流程的策略与实践,包括明确业务目标、构建大数据平台、数据采集整合、分析挖掘及流程优化。通过实例展示了电商和制造企业如何利用大数据改进库存管理和生产流程,提高效率与客户满意度。随着大数据技术进步,其在业务流程优化中的应用将更加广泛和深入,企业需积极采纳以适应市场和客户需求。
|
2天前
|
机器学习/深度学习
【机器学习】噪声数据对贝叶斯模型有什么样的影响?
【5月更文挑战第10天】【机器学习】噪声数据对贝叶斯模型有什么样的影响?
|
6天前
|
机器学习/深度学习 数据采集 算法
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
|
7天前
|
数据采集
【大模型】大语言模型训练数据中的偏差概念及其可能的影响?
【5月更文挑战第5天】【大模型】大语言模型训练数据中的偏差概念及其可能的影响?
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI 生成式】如何利用生成式人工智能进行机器学习的数据增强?
【5月更文挑战第4天】【AI 生成式】如何利用生成式人工智能进行机器学习的数据增强?
|
12天前
|
机器学习/深度学习 存储 数据采集
【Python 机器学习专栏】PCA(主成分分析)在数据降维中的应用
【4月更文挑战第30天】本文探讨了主成分分析(PCA)在高维数据降维中的应用。PCA通过线性变换找到最大化方差的主成分,从而降低数据维度,简化存储和计算,同时去除噪声。文章介绍了PCA的基本原理、步骤,强调了PCA在数据降维、可视化和特征提取上的优势,并提供了Python实现示例。PCA广泛应用在图像压缩、机器学习和数据分析等领域,但降维后可能损失解释性,需注意选择合适主成分数量及数据预处理。
|
12天前
|
机器学习/深度学习 Python
【Python机器学习专栏】时间序列数据的特征工程
【4月更文挑战第30天】本文探讨了时间序列数据的特征工程,强调其在捕捉季节性、揭示趋势、处理异常值和提升模型性能中的重要性。介绍了滞后特征、移动窗口统计特征、时间戳特征、频域特征和波动率特征等方法,并提供了Python实现示例。通过有效特征工程,可提高时间序列分析的准确性和预测可靠性。
|
12天前
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。
|
12天前
|
机器学习/深度学习 自然语言处理 算法
【Python机器学习专栏】文本数据的特征提取与表示
【4月更文挑战第30天】本文探讨了文本特征提取与表示在机器学习和NLP中的重要性。介绍了词袋模型、TF-IDF和n-gram等特征提取方法,以及稀疏向量和词嵌入等表示方式。Python中可利用sklearn和gensim库实现这些技术。有效的特征提取与表示有助于将文本数据转化为可处理的数值形式,推动NLP和机器学习领域的进步。
|
12天前
|
机器学习/深度学习 数据采集 算法
【Python机器学习专栏】使用Scikit-learn进行数据编码
【4月更文挑战第30天】本文介绍了Python Scikit-learn库在机器学习数据预处理中的作用,尤其是数据编码。数据编码将原始数据转化为算法可理解的格式,包括标签编码(适用于有序分类变量)、独热编码(适用于无序分类变量)和文本编码(如词袋模型、TF-IDF)。Scikit-learn提供LabelEncoder和OneHotEncoder类实现这些编码。示例展示了如何对数据进行标签编码和独热编码,强调了正确选择编码方法的重要性。

热门文章

最新文章