大数据与机器学习:实践方法与行业案例.3.1 数据缓冲区的基本规则

简介:

第3章

实战:打造数据闭环

道生一,一生二,二生三,三生万物。万物负阴而抱阳,冲气以为和。

—老子《道德经》

你不能两次踏进同一条河流,因为新的水不断地流过你的身旁。

—柏拉图《泰阿泰德》

前面两章已经介绍了数据闭环的各个主要环节和涉及的技术,本章将基于前文提出的理念和技术来实现数据闭环。按照数据的流转过程以及主要负责人的职责,整个数据闭环将由三个环节组成,如图3-1所示。

 

图3-1 数据流转过程及主要负责人职责示意图

1)生产数据→原始数据。这个环节的主要负责人为生产系统的软件开发工程师,软件开发工程师按照数据抽取需求,将生产数据转换为原始数据,并将原始数据按照要求传至数据缓冲区。

2)原始数据→分析数据。这个环节的主要负责人为数据团队的数据工程师,该节点实际上是解决分析数据的入口问题,是数据闭环中的关键环节。

3)分析数据→生产数据。该环节的负责人为数据工程师和软件开发工程师,需要两者合作,将分析数据转化为生产数据,供生产系统使用,是数据系统化应用的过程。

在上述第一个环节,开发团队接收来自数据团队的数据抽取需求,在需求中需要明确定义原始数据的格式要求和更新方式等,并且需要产出的数据文件满足文件命名规则。软件开发工程师根据数据需求周期性产出数据文件,并自动上传至数据缓冲区。

在第二个环节,数据团队需要按照一定的规则将数据文件批量加载到数据平台中。该环节是数据闭环中的关键,也是全部由数据团队负责完成的环节。大量原始数据文件已经存放于数据缓冲区中,保证大量数据高效且稳定地流入分析系统,显然无法通过人力完成,因此该环节的系统化实现是本章的重点内容。

在第三个环节,负责人为数据工程师和软件开发工程师。数据工程师负责数据预处理、提供数据接口、将数据模型系统化等,在此过程中,需要软件开发工程师的积极配合。该环节是数据由分析环境进入生产环境的环节,是数据应用于生产系统的过程,本书在应用篇将着重介绍数据的系统化应用过程。

以下将围绕第二个环节详细展开,该环节的关键在于大量数据文件的自动加载。为了实现该目标,需要先制定数据缓冲区的基本规则,然后设计文件自动加载的基本流程,并在此基础上使用Java多线程实现数据的高效加载。

3.1 数据缓冲区的基本规则


数据缓冲区由一个或多个FTP文件服务器组成,接收来自各个生产系统的原始数据,每天会有成百上千的数据文件传入数据缓冲区,为了对众多周期性产生的数据文件进行管理和系统化处理,需要为数据缓冲区制定相应规范。表3-1列出的三个规则可以让程序的自动化处理变得更加容易。

表3-1 数据缓冲区的三个规则

序 号 规范内容 说 明

1 文件存储规则 按照统一的存储方式对文件进行存储

2 文件命名规则 通过文件名称自动匹配更新规则

3 文件清理规则 定期自动清理文件,保证数据缓冲区有足够的可用空间

 

数据的自动加载将依赖于这三个规则,数据缓冲区的上下游只需遵守这三个规则即可通过增加配置信息,实现数据的自动对接。为了使规则具有可操作性,下面对这三个规则分别进行细化。

3.1.1 文件存储规则

文件存储规则为数据缓冲区定义了数据文件的存储方式,例如,规定传入数据缓冲区中的文件必须使用.zip的格式进行压缩。该规则简单易行,且至少具有以下显而易见的优点。

1)压缩文件可以节省存储空间。当数据文件众多时,压缩文件可以大量节省存储空间,从而提升数据缓冲区的存储利用率。

2)压缩文件在传输时节省带宽。压缩文件占用更少字节,这在内网带宽紧张时尤其有用。

3)统一的压缩方式方便程序自动解压。统一使用某种压缩格式,便于后续程序的自动解压,因为程序无需考虑多种压缩格式。

文件存储规则确定后,所有上传数据缓冲区的文件都需要遵守该规则,否则将被监护程序删除。

3.1.2 文件命名规则

文件命名规则是表3-1三个规则中最重要的一个,因为程序需要根据文件名称识别该文件的后续处理流程。例如,我们给出如下的文件命名规则范例:

1)文件名称由“名称前缀+文件日期+中间字符串+名称后缀”构成。

2)中间字符串可以为空。

3)名称前缀+中间字符串唯一标示一个文件。

4)文件日期标示同一个文件的不同批次。

5)名称后缀用于标记该文件的压缩存储格式。

图3-2是符合该命名规则的示例,其中一个文件名称的中间字符串为空。

 

图3-2 文件命名规则示例

 

3.1.3 文件清理规则

文件清理规则是为了保证数据缓冲区的可用空间而制定的,满足清理规则的数据文件将会被程序自动清理,以腾出空间为新数据文件使用。

通常数据缓冲区会保留同一个文件前缀的不同文件日期的数据文件,如图3-3所示。

 

图3-3 数据缓冲区中的文件列表(部分)

数据缓冲区中的文件如果不进行清理,则会耗尽磁盘空间,导致数据缓冲区无法继续提供服务。清理规则可能非常简单,例如,每日23:00自动清除一个月前的数据文件。

根据上述清理规则,每天在23:00时,程序将根据数据缓冲区中文件名称的文件日期,自动删除一个月前的历史数据,腾出的存储空间将用于次日凌晨接收新的数据文件。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
6天前
|
机器学习/深度学习 分布式计算 DataWorks
MaxCompute产品使用合集之MaxCompute读取外部表的速度较慢,有什么方法来提升读取速度
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之DataWorks体验案例绑定如何绑定到正确的maxcomputer引擎上
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
6天前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之可以使用什么方法将MySQL的数据实时同步到MaxCompute
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI 生成式】如何利用生成式人工智能进行机器学习的数据增强?
【5月更文挑战第4天】【AI 生成式】如何利用生成式人工智能进行机器学习的数据增强?
|
5天前
|
机器学习/深度学习 数据可视化 前端开发
【Python机器学习专栏】机器学习模型评估的实用方法
【4月更文挑战第30天】本文介绍了机器学习模型评估的关键方法,包括评估指标(如准确率、精确率、召回率、F1分数、MSE、RMSE、MAE及ROC曲线)和交叉验证技术(如K折交叉验证、留一交叉验证、自助法)。混淆矩阵提供了一种可视化分类模型性能的方式,而Python的scikit-learn库则方便实现这些评估。选择适合的指标和验证方法能有效优化模型性能。
|
5天前
|
机器学习/深度学习 存储 数据采集
【Python 机器学习专栏】PCA(主成分分析)在数据降维中的应用
【4月更文挑战第30天】本文探讨了主成分分析(PCA)在高维数据降维中的应用。PCA通过线性变换找到最大化方差的主成分,从而降低数据维度,简化存储和计算,同时去除噪声。文章介绍了PCA的基本原理、步骤,强调了PCA在数据降维、可视化和特征提取上的优势,并提供了Python实现示例。PCA广泛应用在图像压缩、机器学习和数据分析等领域,但降维后可能损失解释性,需注意选择合适主成分数量及数据预处理。
|
5天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】关联规则学习:Apriori算法详解
【4月更文挑战第30天】Apriori算法是一种用于关联规则学习的经典算法,尤其适用于购物篮分析,以发现商品间的购买关联。该算法基于支持度和置信度指标,通过迭代生成频繁项集并提取满足阈值的规则。Python中可借助mlxtend库实现Apriori,例如处理购物篮数据,设置支持度和置信度阈值,找出相关规则。
|
5天前
|
机器学习/深度学习 Python
【Python机器学习专栏】时间序列数据的特征工程
【4月更文挑战第30天】本文探讨了时间序列数据的特征工程,强调其在捕捉季节性、揭示趋势、处理异常值和提升模型性能中的重要性。介绍了滞后特征、移动窗口统计特征、时间戳特征、频域特征和波动率特征等方法,并提供了Python实现示例。通过有效特征工程,可提高时间序列分析的准确性和预测可靠性。
|
5天前
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。
|
5天前
|
机器学习/深度学习 自然语言处理 算法
【Python机器学习专栏】文本数据的特征提取与表示
【4月更文挑战第30天】本文探讨了文本特征提取与表示在机器学习和NLP中的重要性。介绍了词袋模型、TF-IDF和n-gram等特征提取方法,以及稀疏向量和词嵌入等表示方式。Python中可利用sklearn和gensim库实现这些技术。有效的特征提取与表示有助于将文本数据转化为可处理的数值形式,推动NLP和机器学习领域的进步。