大数据与机器学习:实践方法与行业案例.3.1 数据缓冲区的基本规则
实战:打造数据闭环
道生一,一生二,二生三,三生万物。万物负阴而抱阳,冲气以为和。
—老子《道德经》
你不能两次踏进同一条河流,因为新的水不断地流过你的身旁。
—柏拉图《泰阿泰德》
前面两章已经介绍了数据闭环的各个主要环节和涉及的技术,本章将基于前文提出的理念和技术来实现数据闭环。按照数据的流转过程以及主要负责人的职责,整个数据闭环将由三个环节组成,如图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时,程序将根据数据缓冲区中文件名称的文件日期,自动删除一个月前的历史数据,腾出的存储空间将用于次日凌晨接收新的数据文件。
谈谈训练数据对机器学习的重要性 人工智能和机器学习已经风靡全球。公司使用机器学习来创造更高效的流程。记账、简历审查和客户聊天都可以通过人工智能技术启动。
相关文章
- mvc.net分页查询案例——控制器(HomeController.cs)
- 机器学习笔记 - 探索性数据分析(EDA) 入门案例五
- 机器学习笔记 - 探索性数据分析(EDA) 入门案例二
- ML与Regularization:正则化理论即bias-variance tradeoff(权值衰减/提前终止/数据扩增/Dropout/融合技术)在机器学习中的简介、常用方法、案例应用之详细攻略
- CV之OpenCV:HALCON机器视觉软件简介&OpenCV的基础概念、常用案例(打开图片/摄像头/视频)、常用函数解释大全(C++/python语言)之详细攻略
- Python:Python语言的简介(语言特点/pyc介绍/Python版本语言兼容问题(python2 VS Python3))、安装、学习路线(数据分析/机器学习/网页爬等编程案例分析)之详细攻略
- ML与math:机器学习与高等数学基础概念、代码实现、案例应用之详细攻略——进阶篇
- AI之DS/CV/NLP:Python与人工智能相关的库/框架(机器学习常用库、数据科学常用库、深度学习常用库、计算机视觉常用库、自然语言处理常用库)的简介、案例应用之详细攻略
- DL之GCN:GCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- DataScience:机器学习中特征工程之连续型变量离散化—变量分箱的简介、常用方法、案例应用(评分卡模型为例)之详细攻略
- ML与Regularization:正则化理论即bias-variance tradeoff(权值衰减/提前终止/数据扩增/Dropout/融合技术)在机器学习中的简介、常用方法、案例应用之详细攻略
- Dataset:titanic泰坦尼克号数据集/泰坦尼克数据集(是否获救二分类预测)的简介、下载、案例应用之详细攻略
- 机器学习案例(十):新闻分类
- 机器学习案例(一):在线支付欺诈检测
- 实践案例丨CenterNet-Hourglass论文复现
- 实战案例|基于机器学习的 Python 信用卡欺诈检测!
- 【CSS】轮播图案例开发 ( 基本设置 | 子绝父相 | 浏览器水平居中 | 圆角设置 | 绝对定位居中设置 )
- css案例7——图片自适应盒子大小(不变形)
- 机器学习之KMeans聚类算法原理(附案例实战)
- QT案例实战1 - 从零开始编写一个OCR工具软件 (5)引入微软OCR
- 【Nginx 源码学习】内存池 及 优秀案例赏析:Nginx内存池设计