热门标签 | 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个疑问

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


推荐阅读
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 本文介绍了如何通过Sybase Central连接到示例数据库,并查看其中的表和其他对象。主要内容包括启动Sybase Central、建立连接、查看表列表及表的具体信息。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
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社区 版权所有