WhereHows提供对结构化和非结构化元数据的全面管理,具有强大的数据目录和搜索功能,便于数据发现和使用,由LinkedIn开源,拥有强大的社区支持和文档资源。
适合需要全面元数据管理和数据目录功能的公司,尤其是大型互联网企业或拥有海量数据的企业。提供了直观的Web界面,用户可以通过浏览器访问该平台,进行数据发现、血缘查看、注释、讨论等操作。界面简洁易用,方便非技术人员也能快速上手。
同时提供了后台API,供开发者进行自动化集成和扩展。开发人员可以通过API与其他数据处理系统、工作流工具等进行集成,实现元数据管理的自动化流程,如自动捕获和更新元数据等。
一、功能特点
1.数据发现:允许用户通过搜索功能快速找到所需的数据。支持对数据集名称、描述、所有者、标签等元数据信息进行搜索,帮助数据工程师、分析师和其他数据工作者在庞大的数据集中快速定位到目标数据。
2.数据血缘:能够跟踪数据集和任务的上下游关系,清晰展示数据的来源、流向和转换过程。用户可以了解到每个数据集是由哪些任务产生的,以及该数据集又被哪些后续任务所使用,便于追踪数据的演化历史和影响范围。
3.工作流发现:通过项目、流、子流、任务的树结构,直观地查看任务血缘。用户可以清晰地了解到整个工作流的执行情况和任务之间的依赖关系,有助于发现潜在的问题和优化工作流程。
4.统一元数据服务:从各种数据源收集元数据,并进行标准化处理,提供统一的元数据模型。支持多种常见的数据存储和处理系统,如Hadoop HDFS、Apache Hive、Teradata、Oracle等,能够整合不同系统中的元数据,打破数据孤岛,实现元数据的集中管理和共享。
二、架构设计
1.核心框架
基于akka分布式框架:akka actor在其中起着关键作用,负责执行各个存储系统和调度系统元数据的收集工作,并将收集到的元数据转换为统一模型后存入WhereHows的MySQL数据库中。这种分布式架构使得系统能够高效地处理大规模的元数据收集和管理任务,提高了系统的可扩展性和并发处理能力。
2.数据模型
数据集:包含数据集的schema、备注、样本等信息,以URN作为数据集唯一标识,通过dataset_id关联到底层实际物理元数据信息,涵盖了HDFS、Hive、Teradata等多种存储系统中的数据。
操作数据:包括流组定义、流定义、流执行信息、任务定义、任务执行信息、所有者信息、调度信息等。不同调度系统的数据模型存在差异,WhereHows在操作数据ETL时需要将其转换为统一模型进行存储和管理。
血缘数据:主要记录任务和数据集之间的依赖关系,如读还是写、涉及多少条记录等,是连接数据集和操作数据的桥梁,用户可以通过血缘数据追踪数据的来源和流向。
ETL和Web服务配置:与ETL过程和Web服务相关的配置信息,用于定义和控制元数据的收集、转换和加载过程,以及Web服务的运行参数和行为。
3.ETL逻辑
使用jython脚本:由于不同存储系统和调度系统的元数据收集、转换、存储逻辑存在差异,WhereHows使用jython脚本编写具体的ETL逻辑。这使得在引入新的源系统或对现有系统进行扩展时,只需编写相应的ETL job jython脚本,提高了系统的灵活性和可扩展性。
ETL三阶段执行:框架定义的元数据收集步骤按照ETL三阶段执行,即extract、transform、load。在数据集ETL中,会收集不同存储系统如HDFS、Teradata等的数据集元数据;操作数据ETL定时从调度系统的数据库中爬取信息并进行模型转换和版本推导;血缘ETL则从日志和配置文件中收集血缘信息,并采用“微批拉取”的解决方案获取任务ID信息列表以提取血缘信息。
4.存储与访问
MySQL数据库:作为元数据的存储核心,将收集和转换后的元数据统一存储在MySQL中,便于管理和查询。
Web界面和后台API:提供直观的Web界面供用户进行数据发现、血缘查看、注释、讨论等操作,同时提供后台API供开发者进行自动化集成和扩展,方便与其他数据处理系统、工作流工具等进行集成。
三、局限性
对于一些特殊的、定制化的数据存储和处理系统,可能需要额外的开发和配置工作才能实现集成;在处理超大规模数据和高并发访问时,性能可能会受到一定的影响,需要进行优化和调整;与一些商业化的元数据管理工具相比,在某些高级功能和用户体验方面可能存在一定的差距。
1. 集成复杂性
特殊系统集成困难:对于一些特殊的、定制化的数据存储和处理系统,WhereHows可能会面临集成挑战。这些系统可能具有独特的架构、数据格式或访问协议,需要额外的开发和配置工作才能实现元数据的收集和整合。例如,某些企业内部自研的高度专业化的数据存储系统,其元数据结构可能与WhereHows预设的模型差异较大,需要投入大量时间来编写定制的ETL(提取、转换、加载)脚本以适配。
系统更新维护:当源数据系统或相关技术发生更新时,如数据库软件升级、存储系统架构变更等,可能会导致已有的集成出现问题。需要重新评估和调整元数据收集和转换的逻辑,这增加了系统维护的成本和工作量。例如,当Hadoop生态系统中的某个组件进行了重大更新,WhereHows可能需要对与该组件相关的元数据收集模块进行修改。
2. 性能问题
大规模数据处理挑战:在处理超大规模数据和高并发访问时,WhereHows的性能可能会受到一定的影响。大量的元数据收集、转换和存储操作可能会导致系统响应时间延长,尤其是在数据量呈指数级增长的情况下。例如,在一个拥有海量数据的大型互联网公司,当同时有多个部门的用户查询复杂的数据血缘关系时,系统可能会出现卡顿。
复杂查询性能瓶颈:对于一些复杂的元数据查询,如深度嵌套的数据血缘查询或者跨多个数据源的联合查询,系统可能需要花费较长的时间来处理。这是因为这些查询涉及到多个数据表的关联和大量数据的遍历,对系统的计算资源和存储I/O提出了较高的要求。
3. 功能局限性
高级功能缺失:与一些商业化的元数据管理工具相比,WhereHows在某些高级功能方面可能存在差距。例如,在自动化元数据标记、智能数据分类、复杂的数据策略管理等功能上可能不够完善。这些高级功能对于一些对元数据管理要求较高的企业,如金融机构进行严格的风险数据管控时,可能是必不可少的。
用户体验差异:在用户界面和操作便捷性方面,虽然WhereHows提供了Web界面和API,但在一些细节上可能不如商业工具。例如,对于非技术用户,其界面的直观性和操作的简易性可能还需要进一步提升,以方便用户更轻松地进行元数据浏览、编辑和查询等操作。
4. 数据质量和准确性
元数据质量依赖源系统:WhereHows收集的元数据质量在很大程度上依赖于源数据系统提供的信息。如果源系统的元数据本身不准确、不完整或者过时,那么WhereHows所管理的元数据也会受到影响。例如,若一个数据仓库中的表定义没有及时更新,WhereHows中的相关元数据也会出现错误的表述。
数据更新及时性挑战:在动态的数据环境中,确保元数据的及时更新是一个挑战。尽管有ETL流程来收集和更新元数据,但在数据频繁变化的情况下,可能会出现元数据更新滞后的问题,影响用户对数据最新状态的了解。例如,对于实时性要求较高的流数据场景,可能无法及时准确地反映元数据的变化。
四、应用场景
1.数据治理领域
数据溯源与审计:能够清晰地跟踪数据的来源、流向以及在各个环节中的转换过程,帮助企业在面对数据质量问题、合规性检查或安全事件时,快速定位问题源头和受影响的范围。例如,在金融行业,可用于追踪客户交易数据的处理流程,确保数据的准确性和合规性。
数据质量管理:通过元数据管理,对数据的定义、格式、约束等进行规范和管理,为数据质量评估提供依据。数据管理员可以根据元数据中的数据标准和规则,对数据进行清洗、转换和验证,提高数据的质量。
主数据管理:集中管理企业的关键主数据,如客户、产品、供应商等信息,确保主数据在各个系统中的一致性和准确性。不同业务部门可以通过WhereHows获取统一的主数据视图,避免数据不一致导致的业务问题。
2.大数据管理与分析
数据发现与理解:数据工程师、分析师和科学家可以利用其强大的搜索功能,快速找到所需的数据资产。同时,通过查看元数据中的数据描述、业务含义、数据来源等信息,更好地理解数据的内容和用途,为数据分析和挖掘提供支持。
数据管道管理:在构建和管理复杂的数据管道时,WhereHows可以记录数据在各个处理步骤中的转换和流动情况,帮助数据工程师监控和优化数据管道的性能,及时发现和解决数据处理过程中的问题。
数据湖管理:对于企业的数据湖,WhereHows可以作为元数据管理的核心工具,对存储在数据湖中的各种类型和来源的数据进行统一管理,提高数据湖的可管理性和数据的可用性。
3.企业数据共享与协作
跨部门数据协作:不同部门之间可以通过WhereHows共享数据和元数据信息,了解彼此的数据需求和数据资产情况,促进跨部门的数据协作和项目推进。例如,市场部门和销售部门可以共享客户数据,共同制定营销策略。
数据资产目录:创建企业级的数据资产目录,使企业内部的所有用户都能够方便地浏览和查找可用的数据资产,提高数据的共享程度和利用率,避免重复建设和数据孤岛的形成。
数据权限管理:结合企业的组织架构和用户角色,对数据资产进行权限管理,确保只有授权的用户才能访问和使用敏感数据,保障数据的安全性和隐私性。
4.数据集成与ETL过程
元数据驱动的ETL:在ETL过程中,WhereHows可以提供源数据和目标数据的元数据信息,帮助ETL开发人员更好地理解数据结构和转换规则,自动生成或优化ETL脚本,提高ETL过程的效率和准确性。
数据集成管理:在进行企业内部不同系统之间的数据集成时,WhereHows可以作为元数据的桥梁,协调不同系统之间的数据格式、编码和语义差异,确保数据在集成过程中的一致性和完整性。
实时数据集成:对于实时数据集成场景,WhereHows可以实时更新元数据信息,使数据集成工具能够及时获取最新的元数据变化,保证实时数据的准确传输和处理。
5.人工智能与机器学习
特征工程:数据科学家在进行特征工程时,可以利用WhereHows快速找到相关的数据特征,并了解其数据质量、分布情况等元数据信息,为特征选择和转换提供依据,提高模型的准确性和性能。
模型训练与管理:记录模型训练过程中使用的数据、算法、参数等元数据信息,方便对模型进行版本管理、评估和优化。同时,通过血缘关系可以追溯模型的训练数据来源和处理过程,确保模型的可解释性和可靠性。
数据标注管理:在进行数据标注工作时,WhereHows可以管理标注任务的元数据,如标注人员、标注规则、标注进度等,提高标注工作的效率和质量,为机器学习模型的训练提供高质量的标注数据。