数据可观察性:入门指南
作者:社区 / 开发者
2023年7月12日
导航至
本文由Talha Khalid撰写,他是一位全栈开发者和数据科学家,喜欢将枯燥和复杂的话题变得有趣且易于理解。
随着越来越多的公司依赖数据洞察来推动关键业务决策,数据必须准确、可靠且高质量。从数据中获取洞察力至关重要,但数据的完整性也同样重要,以确保数据没有缺失、错误添加或滥用。这就是数据可观察性的作用所在。
什么是数据可观察性?
您需要访问和分析来自所有系统部分的数据。这包括应用程序、基础设施、系统和用户数据。从所有这些来源收集数据可以使您全面了解系统,并识别改进区域。它涉及对数据(包括日志、指标和跟踪)的全面访问和分析。这些都是数据可观察性的三个支柱。
-
日志提供了事件的按时间顺序的记录(时间序列数据),对于调试和理解系统行为至关重要。
-
指标提供了关于流程的定量数据,并提供了对系统整体健康状况的洞察。
-
跟踪提供了关于系统内执行路径的详细信息,有助于识别瓶颈、延迟问题和错误。
通过整合这三种类型的遥测数据,数据可观察性可以提供一个完整的系统视图。例如,您可以使用指标设置警报,以通知故障,相关示例可以帮助您定位相关的跟踪。分析这些跟踪相关的日志提供了识别和解决根本原因所需的相关背景信息。
什么使数据可观察性与监控不同?
数据可观察性涉及持续添加新指标来改进系统的监控和优化。通过实施数据可观察性实践,组织可以确保他们的系统是可靠、高效和有效的。与监控不同,数据可观察性提供了数据的全面覆盖、可扩展性和可追溯性,从而可以更好地分析任何更改的影响。数据可观察性不仅关注监控数据质量,还提供了对所有数据资产和属性的整体概述。
例如,数据监控可以识别问题,如值超出预期范围、不正确的数据更新或处理的数据量突然变化。监控根据预定义的模式生成警报,并将数据表示为汇总和平均值。然而,没有数据可观察性,仅凭数据测试结果是不可能建立这些模式的。
数据可观察性促进了从理解正在发生什么到理解为什么会发生它的转变。它不仅跟踪数据,还确保其在准确性、完整性、一致性、及时性、有效性和唯一性方面的质量。
为什么数据可观察性很重要
数字化意味着基于可信赖的数据进行管理,即数据准确、相关且更新及时。此外,准确性并非数据质量的唯一特征。就像食物一样,数据也有保质期,即它正确反映现实的时间段。世界变化如此之快,即使是24小时前的数据也可能过时。随着数据源的数量和种类不断增加,某些领域的有效期可能只有几个小时。当数据不完整、错误、缺失或不准确时,随着源和消费者生态系统的复杂化,数据中断时间会相应增加。
数据中断意味着数据工程师和开发者浪费了时间和资源。对于商业用户来说,这会削弱他们在进行数据驱动决策时的信心。然而,团队往往更喜欢采取救火模式来解决问题,而不是采取全面的方法来解决数据中断问题,他们通常只一次性地纠正局部数据质量问题。
这并不符合如今越来越流行的数据运维(DataOps)。就像DevOps一样,DataOps旨在整合数据开发和维护流程,以提高企业治理和行业互动的效率。它通过分布式收集、集中式分析和灵活的信息访问策略来实现,考虑到其保密性、使用限制和完整性。
就像DevOps使用CI/CD方法进行软件开发和运维一样,DataOps旨在使数据工程师和数据科学家之间的协作无缝,从而提高他们的商业价值。这符合业务数字化,并通过将DevOps最佳实践应用于数据管道管理来消除数据中断。
关键组件
数据可观测性工具使用自动监控数据处理管道和通过生成适当的警报来对检测到的问题进行分类,以便快速采取行动解决已识别的事件。它基于以下关键组件
-
数据新鲜度,即与相关过期日期和更新频率的相关性。
-
数据分布,即是否在可接受的范围内。
-
数据量作为衡量数据完整性的指标。这可以让你了解源的状态。例如,如果你通常每天接收2亿行数据,但突然只收到500万行,那么你可能存在数据源或管道瓶颈问题。
-
数据模式。这为组织提供了处理和存储的结构。更改模式通常与数据损坏相关。跟踪谁更改这些结构为理解整个数据生态系统状态提供了基础。
-
数据来源或血缘。这让你了解哪些上游数据源和下游数据接收器受到了架构或范围更改等故障的影响。它还可以告诉你哪些命令生成数据以及谁有权访问它。此外,血缘包括与特定数据表相关的管理、业务和技术建议的信息(元数据),并作为可信信息的单一来源。
关键能力
上述组件在数据中断事件发生时检测到,提供了一种连贯的可观测性框架,以确保真正的端到端可靠性。数据观察解决方案不仅监控这些组件,而且通过以下能力防止不良数据进入生产管道
-
在不改变数据管道、开发新代码或使用特定编程语言的情况下连接到现有的堆栈。这使得您可以快速回收成本,并确保最大测试覆盖率而无需重大投资。
-
在未从存储中实际检索数据的情况下跟踪静止数据。这使得数据监控解决方案具有高性能、可扩展性和成本效益,同时确保安全性。
-
无需手动设置阈值的最小设置。最佳数据观察工具应使用机器学习模型自动学习环境和数据。异常检测工具在异常情况下生成警报,最大限度地减少误报,并使数据工程师从设置和维护观察规则中解脱出来。
-
广泛的上下文,允许您动态定义关键资源、依赖关系和各种场景,以最小努力获得深入的数据可观察性,快速排序和排除故障,并与所有受数据可靠性问题影响的相关利益相关者进行有效沟通。这生成了有关数据资产的大量信息,使您能够负责任地进行更改。
数据可观察性工具
在单一技术框架内实现数据观察工具的整个要求范围具有挑战性。例如,Apache Spark、Flink、NiFi、AirFlow、Kafka等批量和流处理框架通常用作构建大数据处理管道的基础。然而,它们不提供维护元数据和生成警报的完整周期。因此,对于拥有许多来源、接收器和数据处理管道的数据驱动型组织,选择像InfluxDB这样的现成数据观察性工具会更好,它提供了一个用于所有高基数时间序列数据的数据存储,并能够与不同的数据仓库集成。