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