为了研究这个问题,我们对数据生态中的数十个开源工具进行了研究,并提出了下面两个问题:
-
该工具独一无二的能力是什么?
-
该工具不能用来做什么?
我们调研的范围仅限开源项目和 Pre-B 轮融资阶段的公司产品。针对每个工具,我们尽可能简短的对这两个问题进行了回答。数据生态中的工具混乱的现象并不会很快消失,但我们希望这篇文章是一个好的开始。
下面是这些工具的介绍:
-
Great Expectataions / Superconductive: Great Expectations 是专门用于测试数据系统以及创建测试文件的专用工具。Great Expectations 也可以用于数据分析。Greata expectations 是高度可热插入和可扩展的,并且完全开源。但是,它并不是一个管道执行框架或数据可视化工具。
-
Databand:Databand 是一个数据化运维(DataOps)解决方案,它专门用于监控产品管道和检测工作流代码、数据或系统层面的事件,同时它还可以帮助工程师对问题进行根本原因分析(root cause nalysis, RCA)。但针对管道协调、数据质量测试或者数据版本控制,Databand 不能作为一个单点解决方案。
-
Dolt / Liquidata:Dolt 是一个基于 Git 版本控制的 SQL 数据库,因此你可以像使用 Git 一样对 Dolt 进行提交、克隆、拉取、分支和合并等操作。Dolt 是专门用于数据共享的工具,但 Dolt 不能专门用于某种特定的数据操作,如特征储存或数据转移。Dolt 是可用于这些数据操作的一种通用数据库。
-
Bayes:Bayes 是一个可视化的具有探索性的数据分析工具。它会指导你进行建议的可视化操作,并通过基于交互式叙述的报告轻松实现具有可解释性的共享。Bayes 不是一个商业化的智能面板,也不是面向程序员的基于代码的笔记本。
-
Hex:Hex 是一个具有计算能力的笔记本平台,它专门用于数据共享。用户可以连接到数据,进行分析,然后轻松地构建一个具有完全交互能力的应用程序,并且组织中的所有人都可以使用这种完全的交互。但是 Hex 并不能作为一个机器学习工程平台或制图工具来使用。
-
Sisu Data:Sisu 是一个主动分析平台,非常适合快速浏览复杂的企业数据并帮助数据分析师解释关键业务指标为何在变化。Sisu 可以在几秒钟内测试数十亿个假设,并引导用户找到影响程度最大的变化因子。但 Sisu 既不能作为预测工具或模型构建工具,也不能作为描述性面板。
-
Ascend:Ascend 专门用于使用更少的代码来构建、运行和优化云数据管道。Ascend 将数据连接到它的代码,从而通过自动维护、数据摘要分析、沿袭跟踪、成本优化等方式来建立声明性的数据管道。Ascend 不是一个通用的 Spark 解决方案,而是位于上层的数据工程平台。
-
Dataform:Dataform 擅长于帮助你管理数据仓库中的数百个数据集。Dafaform 帮助团队将原始数据转化为一组定义明确、可通过测试且可归档化的数据集以进行分析。Dataform 不能作为提取工具使用。
-
DataKitchen:DataKitchen 是一个 DataOps 流程工具,非常适合将连续部署、可观察性、测试和环境管理带入复杂的数据科学及分析领域。DataKitchen 能够自动执行分析创建和部署工作流、管道执行、代码和数据测试、以及管道监视和维护。但 DataKitchen 不是数据科学、ETL 或专用的排版工具。
-
Snorkel:Snorkel 是一个用于以编程方式构建训练数据建库的平台。在 Snorkel 中,用户可以直接编写标记函数,而无需手动标记数据。Snorkel 不能用于无监督学习,它是一个人机回圈(human-in-the-loop)平台,致力于从根本上加速用户将其领域知识注入机器学习(Machine Leaningb,ML)模型的过程。
-
Transform(stealth):Transform 旨在构建一个度量标准存储库,以确保企业能够以标准化、格式化、有组织的方式捕获标准化的度量定义,从而进行流线分析并进行决策。Transform 不是数据管道框架或商业智能工具。
-
Materialize:Materialize 擅长在流数据之上执行和维护 PostgreSQL 查询,并以毫秒级的延迟保持最新状态。Materialize 不是时间序列数据库或其他流式微服务平台。
-
DataHub / Linkedln:DataHub 是一个由元数据支持的搜索和发现程序,旨在提高 AI 和数据科学的生产效率。它具有独特的分布式流优先元数据体系结构,已使其在 LinkedIn 的人脉和大数据上获得成功。它不是数据集成或处理工具,也不是用于运行数据质量检查的协调器。
-
Prefect:Prefect 是一种工作流程编排工具,可让用户使用纯 Python API 定义任务流,并使用可扩展基础结构轻松部署它们。Prefect 可提供建立健壮管道所需的语义,例如重试,日志记录,缓存,状态转换回调,故障通知等。Prefect 不是无代码工具或基础结构提供程序。
-
Marad / Project A:Mara 旨在将 SQL,Bash 和 Python 脚本组合到管道中。从命令行或通过 Web UI 运行管道。Mara 不是调度、数据移动或依赖关系检测工具。
-
dbt / Fishtown Analytics:dbt 擅长在数据仓库中创建、维护和记录基于 SQL 业务逻辑的数据库可用性组(Database Availability Group,DAG)。不过 dbt 不是通用的工作编排器。
-
Watchful:Watchful 主要用于在无标注人工的情况下,快速创建大规模、高质量且带有概率标签的训练数据。通过 Watchful,你可以通过反馈机制快速构建、测试和原型化模型。
-
Preset:Preset 是 Apache Superset 的制造商设计的基于 SaaS 的数据探索和可视化平台。Preset 用于可视化和数据消耗分析,它不是计算或编排平台。
-
Kedro:Kedro 是一个针对数据和 ML 管道的最棒的软件。Kedro 使用可重现的分析工作流程,I/O 抽象和管道建模,实现了从实验到生产的无缝过渡。Kedro 不是工作流协调器或实验跟踪框架。
-
Toro Data:Toro 擅长于帮助团队在其数据上部署相应的监视,同时它还会提供建议监视的内容并使其易于执行而无需编写和部署代码。Toro 不会清理或改变数据,也不会原生地控制管道或工作流流。
-
Tecton:Tecton 非常适合于策划和服务产品功能。Tecton 不是数据处理引擎(例如 Spark)或模型管理工具。相反,它利用现有的数据处理引擎来处理原始批、流、实时数据,将其转换为功能,并部署这些功能以进行训练和提供服务。
-
Dagster / Elementl:Dagster 是一个数据协调器,擅长为本地开发、测试、部署和操作构建数据应用程序。Dagster 管道组件可以使用任何语言或框架进行创作,并通过通用元数据和工具组合在一起以形成统一的数据应用程序。Dagster 不是处理引擎,也不是数据或对象仓库。
-
Select Star:Select Star 是用于解决数据发现问题的数据目录和管理工具。它在帮助你理解数据方面具有独特的优势,例如提供以下这些信息:你拥有什么数据、数据的存放位置、数据结构以及使用方式。Select Star 不提供 SQL 客户端或 ETL(Extract-Transform-Load)处理。
-
Monte Carlo(stealth):Monte Carlo 是一个数据可靠性分析平台,其中包括数据监视、故障排除和事件管理。Monte Carlo 不是测试框架、管道或版本控制工具。
-
Flyte / Lyft:Flyte 专门用于开发可扩展的、容器原生的可复验的管道,这些管道连接不同的分布式系统,同时使数据流处于前部和中心。Flyte 不是机器学习平台,但可以作为其核心组件之一。
通过编制这份清单,一方面是为了赞扬这些工具、其创始人和 OSS 领导者,是他们推动了数据工具生态系统的发展。另一方面,我们希望在社区展开关于这些工具局限性的有益讨论,我们希望本文能够为数据工具生态提供有益的启示,并希望它们继续蓬勃发展。