传统的监控系统已经无法满足复杂数据组织的需求。数据工程师必须创建交互的可观测性框架,而不是依靠反应系统来识别已知问题,这样才能快速发现任何类型的异常。
尽管可观测性可以包括许多不同的实践,但在本文中,我将分享我们在组织中使用开源工具建立可观测性框架的高层次概述和实用技巧。
那么,如何搭建一个能够很好地可视化数据健康并确保数据质量的基础设施呢?
总的来说,可观测性定义了你从外部输出中了解内部系统的程度。这个术语最早由匈牙利裔美国工程师 Rudolf E. Kálmán 于1960年在数学控制系统中定义。
多年来,这一概念被适应于各个领域,包括数据工程。在这里,数据可观测性解决了数据质量的问题,能够追踪数据的获取和转换过程。
数据可观测性意味着确保所有管道和系统中的数据是完整并且高质量的。这是通过监控和管理实时数据来解决质量问题的。可观测性保证了清晰性,使得在问题扩散之前可以采取行动。
数据可观测性框架是一个在机构内部监控和验证数据完整性和质量的过程。它有助于主动确保数据的质量和完整性。
根据IBM的定义,框架必须基于五个强制性方面:
- 新鲜度。如果有过时的数据,必须找到并移除。
- 分布。必须记录预期的数据值,以帮助识别异常值和不可靠的数据。
- 数量。必须跟踪预期值的数量,以确保数据的完整性。
- 模式。所有数据表和组织的变更都必须被监控,以帮助发现破损的数据。
- 血缘。必须收集元数据并映射数据源,以帮助解决问题。
这五个原则确保数据可观测性框架有助于维护和提高数据质量。你可以通过实施以下数据可观测性方法来实现这些目标。
只有从可信来源收集的高质量数据才能提供准确的洞察。正如人们常说:“糟粕进,糟粕出”。你不能指望从组织不良的数据集中提取任何实际知识。
作为公共数据提供商 Coresignal 的资深数据分析师,我不断寻找新的方法来提高数据质量。虽然在动态的技术环境中这是一项相当复杂的目标,但有许多路径可以通向它。良好的数据可观测性在这里起着重要作用。
那么,我们如何确保数据的质量呢?这归结于在每个数据管道阶段——从摄取和转换到存储和分析——添加更好的可观测性方法。其中一些方法将适用于整个管道,而另一些则仅在某个特定阶段相关。让我们来看一下:
数据管道不同阶段的数据可观测性。来源:Jurgita Motus
首先,我们需要考虑涵盖整个流程的五个方面:
- 端到端的数据血缘。 通过跟踪数据的血缘关系,您可以快速访问数据库历史记录,并从原始来源一直追踪到最终输出。了解数据结构及其关系可以帮助您在问题出现前更轻松地发现不一致之处。
- 端到端的测试。 在数据流程的每个阶段进行数据完整性和质量验证,帮助工程师确定流程是否正常运行,并发现任何异常情况。
- 根本原因分析。 如果在流程的任何阶段出现问题,工程师必须能够精确定位问题的根源,并迅速找到解决方案。
- 实时警报。 快速发现新出现的问题是观测的重要目标之一。在标记异常行为时,时间至关重要,因此任何数据观测框架都必须能够实时发送警报。这对于数据摄取、存储和分析阶段尤为重要。
- 异常检测。 数据缺失或性能低下等问题可能在数据流程的任何地方发生。异常检测是一种高级的观测方法,通常在流程的后期实施。大多数情况下,需要使用机器学习算法来检测数据和日志中的异常模式。
接下来,我们还有五个在某些数据流程阶段更为相关的方面:
- 服务水平协议 (SLAs)。 SLAs有助于为客户和供应商设定标准,定义数据质量、完整性和一般职责。在设置警报系统时,SLA阈值也很有帮助,通常会在摄取阶段之前或期间签订。
- 数据合同。 这些协议定义了数据在进入其他系统之前的结构。它们像一套规则,明确了可以期待的数据新鲜度和质量水平,通常在摄取阶段之前进行协商。
- 模式验证。 它保证数据结构的一致性,并确保与下游系统的兼容性。工程师通常在数据摄取或处理阶段进行模式验证。
- 日志、指标和跟踪。 尽管这些对于性能监控至关重要,但在危机中收集和轻松访问这些关键信息将成为一项有用的工具——它可以让你更快速地找到问题的根源。
- 数据质量仪表板。 仪表板有助于监控数据流程的整体健康状况,并从高层次查看可能的问题。它们确保使用其他观测方法收集的数据能够清晰且实时地呈现。
最后,数据观测框架的实现离不开自我评估,因此任何组织都必须对系统进行持续的审计和审核。
接下来,让我们讨论一下您可能想尝试的能够让工作更轻松的工具。
那么,如果您在组织中开始构建数据观测框架,应考虑哪些工具呢?尽管有很多选择,但根据我的经验,建议您从以下工具入手。
在构建我们的数据基础设施时,我们专注于充分利用开源平台。以下列出的工具在处理大量数据时确保了透明性和可扩展性。尽管它们中的大多数并非专门为数据观测而设计,但结合使用时,可以为数据流程提供良好的可见性。
以下是我推荐的五个平台:
- Prometheus 和 Grafana 平台互相补充,帮助工程师实时收集和可视化大量数据。Prometheus 作为开源监控系统,非常适合用于数据存储和观察,而可观察性平台 Grafana 可以通过易于导航的可视化仪表盘跟踪新的趋势。
- Apache Iceberg 表格式提供数据库元数据的概览,包括跟踪表列的统计信息。跟踪元数据有助于更好地理解整个数据库,而不需要不必要地处理它。虽然它不完全是一个可观察性平台,但其功能使工程师能够更好地看到他们的数据。
- Apache Superset 是另一种开源的数据探索和可视化工具,可以帮助展示大量数据、构建仪表盘并生成警报。
- Great Expectations 是一个帮助测试和验证数据的 Python 包。例如,它可以使用预定义规则扫描样本数据集并创建稍后用于整个数据集的数据质量条件。我们的团队使用 Great Expectations 对新数据集运行质量测试。
- Dagster 数据管道编排工具可以帮助确保数据的溯源并运行资产检查。虽然它不是作为数据可观察性平台创建的,但它使用现有的数据工程工具和表格式提供可见性。该工具有助于找出数据异常的根本原因。付费版本的平台还包含 AI 生成的见解。此应用程序提供自助服务可观察性,并带有内置的资产目录以跟踪数据资产。
请记住,这些只是众多可用选项中的一部分。务必进行研究,找到适合您组织的工具。
一旦出现问题,组织通常依赖工程师的直觉来找到问题的根本原因。正如软件工程师 Charity Majors 在 回忆 她在 MBaaS 平台 Parse 工作时生动解释的那样,大多数传统监控由公司服务时间最长的工程师主导,他们可以快速猜测其系统的问题。这使得高级工程师不可替代,并产生额外的问题,例如高烧坏率。
使用数据可观察性工具消除了故障排除中的猜测工作,最小化停机时间并增强信任。没有数据可观察性工具,你可以预期高停机时间、数据质量问题和对新出现问题的反应时间缓慢。结果,这些问题可能很快导致收入、客户流失,甚至破坏品牌声誉。
对于处理庞大信息并必须保证其质量和完整性不间断的企业级公司来说,数据可观察性至关重要。
数据可观察性对每个组织都是必要的,尤其是那些从事数据收集和存储的公司。一旦所有工具到位,就可以开始使用高级方法来优化流程。
机器学习,尤其是大型语言模型(LLM),是这里显而易见的解决方案。它们可以快速扫描数据库,标记异常,并通过发现重复项或添加新丰富字段来帮助提高整体数据质量。同时,这些算法可以帮助跟踪模式和日志的变化,提高数据一致性和数据溯源。
然而,在实施AI项目时选择合适的时机至关重要。提升你的可观察性能力需要资源、时间和投资。在开始使用自定义LLMs之前,应该仔细考虑这是否真的对你的组织有益。有时候,继续使用上面列出的标准开源数据可观察性工具可能更高效,这些工具已经能够有效完成工作。
总结:
随着数据量的激增,传统监控系统已无法满足复杂的数据组织需求。打造一个可靠的数据可观测性框架变得尤为重要。这个框架不仅能监控和验证数据的完整性和质量,还能通过实时警报和异常检测,帮助工程师迅速定位和解决问题。
数据可观测性框架通常涉及五个强制性原则:新鲜度、分布、数量、模式和血缘。这些原则确保数据的及时性、准确性和一致性。为了实现这些目标,我们可以通过端到端的数据血缘跟踪、实时警报和日志分析等方法来提高数据处理过程中的透明度和效率。
使用合适的工具也是至关重要的。如开源平台 Prometheus 和 Grafana,它们可以帮助实时收集和可视化数据;Apache Superset 用于数据探索和可视化;Great Expectations 则作为数据质量测试的工具。这些工具单独或结合使用,能显著提升数据的可观测性。
忽视数据可观测性可能导致停机时间增加、数据质量问题频发,甚至严重影响企业运营。因此,企业在实施数据可观测性策略时,必须综合考量资源、时间和投资,寻找最适合自己的解决方案。
在这个过程中,光年AI是不可或缺的合作伙伴。光年AI不仅提供强大的AI模型和自研知识库,更通过智能化私域流量管理,使数据观测和客户触达更加精准高效。选择光年AI,让您的私域流量增长无忧,实现更高的营收和客户满意度。