热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DataOps:现代数据管道的精髓

DataOps,即Data和Operations组合。是在数据分析过程中,提升数据质量,减少数据分析的周期时间,提高效率的一

1225a87904b53164f2445c2f6128b041.png

DataOps,即Data和Operations组合。是在数据分析过程中,提升数据质量,减少数据分析的周期时间,提高效率的一系列实践,现在逐渐发展成了一门方法论。DataOps适用于从数据准备到报告的整个数据生命周期。

DataOps是一门快速发展的学科,用来管理不规则数据管道,这些数据管道遍布于各大公司的环境中。

曾几何时有那么一段美好的日子,只有两个数据管道:一个支持生成通用报告和分析活动的数据仓库,以及一个为投资者和董事会提供审计数字的财务报告的数据管道。如今,随着自助服务分析和机器学习的发展,公司拥有的管道数量随着数据分析师,数据科学家和需要大量数据的应用程序的增多而增多。每一个都需要专门的数据集和数据访问权限才能产生内容。这简直是管道爆炸!

如果没有DataOps,每个数据管道都将成为一个数据孤岛,与其他数据管道,数据集和数据生产者几乎没有关系。没有协作或重用,浪费大量的人工和返工,有大量的错误和数据缺陷,并且交付时间极慢。商业用户除了信任自己的数据外不信任任何数据,而且许多用户需要在没有任何数据或没有足够数据的情况下做出决策,因为他们等不及了。

DevOps的降临。在引入敏捷开发和DevOps技术之前,软件工程界一直受到类似问题的困扰。如今,DevOps的先驱例如Amazon,Google和LinkedIn等公司每天(甚至每小时或更快)部署软件版本,这是几年前无法想象的发展节奏。令人惊讶的是,即使周期时间加快了,软件错误和缺陷也有所减少。容器化和微服务的问世将进一步加速和强化软件交付周期。简而言之,DevOps可以以更低的成本更快地提供更好的代码。

34bb74745d737db05bcfea299c95f29a.gif

对于DataOps来说

数据挑战。看到打破僵局的机会,数据世界正在紧紧抓住DevOps原则。DevOps管理代码,工具和基础架构之间的联系,以加快应用程序功能的交付,而DataOps添加了第四个元素——数据——比其他三个元素相加更难以控制!在每个管道中,必须对数据进行标识、捕获、格式化、标记、验证、画像(profiled)、清理、转换、组合、聚合、保护、分类、治理(governance)、移动、查询、可视化、分析和操作。呜!随着组织从数百个数据源收集大量数据,这些任务变得越来越复杂。

工具和人员。此外,每个任务还需要专门的工具管理。这些工具的范围从传统的ETL / ELT,数据质量和主数据管理工具到数据目录,数据准备和数据治理产品,再到报告,数据可视化和数据科学工具。这些工具中的每一个针对不同类型的用户——从IT部门的系统工程师和数据库管理员——到BI团队中的数据工程师,数据管理员和报表开发人员——到数据分析师,数据科学家和数据使用者业务部门。

协调所有的这些工具,技术和人员是一项巨大的工作,特别是在拥有规模庞大的开发团队,来自数百个来源的大量数据以及该领域的大量数据分析师和数据科学家的大型组织中。这就是为什么DataOps会发展起来。

381bd4067c18d8c54960e571880cbd03.gif

DataOps框架

定义DataOps非常困难。它包含很多零件和过程。图1是试图绘制DataOps环境的关键组件的简化图。为了简化此环境,某些组织倾向于从单个供应商那里采购所有组件,例如大型软件或云提供商(例如Microsoft,Amazon,Oracle或IBM)或大数据工程专家(例如Infoworks)。其他人则喜欢使用一些最佳组合,用编排和监控工具将开源的组件和商业组件结合在一起。

图1 DataOps组件:

25eddcd507f30a62ac4e74f557479af9.png

0cb193ee8359b5dadd0e83697ee86a10.gif

数据管道

图1中间的黑色箭头表示典型的数据管道,源数据通过管道逐步移动到三个阶段(数据采集,数据工程和数据分析)。这些管道代表了一个数据供应链,这个数据供应链可以处理,优化和丰富数据,以供各种业务用户和应用程序使用。一个管道可能会填充财务使用的OLAP多维数据集;另一个可能将集成的客户数据传递到实时Web应用程序;另一个可能会为建立活动响应模型的数据科学家创建一个细分的原始数据池。

7dc8073108b8c1427b660292323dbe45.gif

数据技术

数据管道下方是用于采集,精炼和分析数据的主要技术类别。媒体最关注这四个类别:数据捕获,数据集成,数据准备和数据分析。因为这就是钱的来源——软件供应商每年通过销售数据产品产生数十亿美元的收入!不幸的是,对数据技术的过分重视,使得更为重要的数据过程变得黯然失色,而数据过程则是协调和驱动这些数据技术的。(请参见下面的“数据处理”。)

如今,随着组织从批处理架构转向流式架构以支持大数据和物联网,数据捕获已成为热门技术类别。数据集成已成为传统数据仓库项目的基础,现在已成为主流。数据准备是一项新技术,旨在帮助数据分析人员建模自己的数据集,理想地利用IT管理的存储库(例如数据湖)中的数据。数据分析师通过为商业用户提供查询,分析,可视化和共享见解的工具来完成该数据周期。

团队和交接。IT部门通过采集和集成数据来启动数据供应链。这个数据通常被创建成通用的,面向主题的数据文件。然后,数据工程团队将对数据进行查询和建模,以满足特定的业务需求和用例。最后,商业用户查询和分析目标数据集以创建报告,仪表板和预测模型。尽管本质上是线性的,但该循环还是有可能存在中间迭代,其中包含许多必须存储,跟踪和管理的中间步骤和文件。

数据存储是支持数据技术和团队的关键,其中包括在高性能列式数据库上运行的数据仓库,数据湖和数据沙箱。数据存储下面是计算架构,越来越多的计算架构是基于云,虚拟化,弹性的以及大规模并行的。

d35384d9b2b5485eb056a435b4d5ad8b.gif

数据处理

那些试图仅仅依赖技术来构建和管理管道的组织注定要失败。它不仅需要技术,还需要定义明确的过程和方法来构建、更改、测试、部署、运行以及跟踪新功能和修改后的功能。它还需要管理这些过程生成的所有工件,包括代码、数据、元数据、脚本、指标、维度、层次结构等。而且,它需要协调数据技术并供给数据以及监控开发,测试和生产过程。这需要作业调度,事件触发器,错误处理和性能管理,以满足服务级别协议。

开发和部署。前两个阶段(开发和部署)通过敏捷和DevOps方法得到了很好的定义。在这里的目标是和自治的、懂得业务的团队一起开发新功能,这些团队可以在短短的时间内(通常在两周或更短的时间内)开发出经过全面测试和功能的代码。为了同步开发,团队将代码存储在应用版本控制的中央存储库中,以避免覆盖和重复工作。他们还使用技术和工具无缝地合并代码,并以最小的延迟将代码移入生产环境(即,持续集成和持续部署CI/CD)。这些工具和系统配置集中存储并维护在配置库中。

有许多工具可以支持开发和部署的流程。你可以选择从头开始构建新的应用程序或用例,或者修改现有的用例。Git是一个很好的工具,它用于存储代码和控制版本,而Jenkins是支持CI/CD流程(即合并和部署代码)的开源工具。在数据世界中,有许多针对特定类型管道的开发和部署工具,包括数据仓库开发(即数据仓库自动化工具)和创建机器学习模型。

编排。DataOps的核心和灵魂在于编排。在管道中移动,我们需要具有众多依赖关系的复杂任务工作流来处理和丰富数据。一些著名的数据编排工具如Airflow,一些开源项目如,DataKitchen,StreamSets和Microsoft Azure的DataFactory。一个好的编排工具可以很好的协调数据开发项目的所有四个组成部分:代码,数据,技术和基础架构。在DevOps环境中,业务流程工具使用容器编排框架(例如Kubernetes)来激活和协调容器以支持这些流程(如开发、测试、staging和生产环境)。

在数据世界中,业务流程工具不仅提供了新的开发/测试/生产环境。它们还负责在管道中不同阶段之间移动数据,并实例化对数据进行操作的数据工具。他们一边工作,一边监控进度,还要将错误归纳到合适的界面并发出警报。例如,在云环境中,DataOps编排工具可能会执行以下操作:

  • 设置平台(例如数据库,存储容量,访问控制列表,性能管理工具,数据目录,日志服务器和监视工具)。

  • 触发采集作业。监视作业(批处理或流式传输),检测故障并从中恢复,监视容量并在需要时触发自动缩放。

  • 触发数据质量作业。分析和验证数据,检查血缘。

  • 快速启动数据转换。一旦采集的数据集获得了通过健康检查,编排工具可能会启动转换代码来合并,格式化和聚合数据元素。

  • 触发BI工具。以将数据下载到其自己的列式存储中,或发送一个通知,告知已准备好进行查询和分析的新数据集。

  • 监控工作流程。成功完成工作流程后,程序会向适当的人员发出通知,并释放基础架构。


持续测试和监控。DataOps环境的最后组成部分是测试环境。理想情况下,团队在开发任何代码或功能之前就写好了测试。然后,业务流程工具在管道中的每个阶段之前和之后运行测试。在启动和集成时,在上游捕获错误和问题可以节省大量时间,金钱和麻烦。诸如Great Expectations和ICEDQ之类的工具就支持持续的测试环境。还有一些产品提供对工具,应用程序和基础架构的持续监控,以确保最佳的正常运行时间和性能。Unravel就是面向大数据处理的应用程序性能管理(APM)产品之一。

使用测试作为基本构建块的开发团队的要比那些不使用的团队开发速度更快。对于大多数想在开始之前不进行测试的情况下潜入项目的开发人员来说,这起初是违反直觉的。但是一旦测试到位,开发人员就可以在发现难以解决的代码之前迅速发现问题。通过持续的测试和监控,团队可以设定性能目标,衡量输出并不断改善其周期时间和质量。

67436f6cd547fb5dd53a370539bb7bec.gif

结论

DataOps的目标是为了使数据管道和应用程序的开发变得更加严谨,可重用和自动化。DataOps可以帮助数据团队从数据孤岛,以及被积压和无休止的质量控制问题缠身的状况转变为敏捷,自动化和加速的数据供应链,并且它能持续改善并为企业带来价值。

原文链接:Diving into DataOps: The Underbelly of Modern Data Pipelines

译者介绍 Grace,程序员,研究生毕业于SUNY at Stony Brook,目前供职于Linktime Cloud Company,对大数据技术以及数据可视化技术感兴趣。

cd9304ff8cebdeabfca87c625e37bfe2.png

更多精彩推

  • 【案例篇】数据中台的行业应用场景

  • 数据中台、云原生、DataOps……智领云让企业玩转数据驱动

  • 一文读懂 | 数据中台的核心能力

  • CDEC2021 | 智领云CTO宋文欣:构建云原生数据中台,赋能合作伙伴

  • 大数据体系的4个热点,4个趋势和3个疑问

👇更多智领云科技详细内容,点击“阅读原文


推荐阅读
  • 提供:ZStack云计算原创2016-12-26张鑫讲师介绍张鑫ZStack总架构师、联合创始人《系统虚拟化》主要作者,曾任职Intel开源软件技术中心 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 域名解析系统DNS
    文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ... [详细]
  • 说出来你可能不信,我用三天做了一个完整的项目
    Java在人工智能中能起到什么作用?作为编程语言中的扛把子,Java20多年稳定不倒,就在于它的稳定性,维护成本极低。这使得 ... [详细]
  • 微服务下的几个难点问题及常见的解决方案
    原文链接:https:cloud.tencent.comdevelopernews1362051背景介绍1.1幂等性定义数学定义在数学里,幂等有 ... [详细]
  • 今天搭建了redis环境,使用自带的benchmark进行了性能测试选择测试键的范围大小默认情况下面,基准测试使用单一的key。在一个基于内存的数据库里,单一key测试和真实情况下 ... [详细]
author-avatar
滞留童年车
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有