作为关系型数据库的标准语言,SQL 凭借着功能丰富、使用方便灵活、语言简洁等特性备受欢迎,行业中如 MySQL、Oracle、SQL Server、Sybase、Informix 等主流数据库都将 SQL 作为其标准处理语言。同时,据 2022 年 IEEE Spectrum 编程语言排行榜显示,SQL 在就业需求中排名第一,是最吃香的热门语言之一。
然而,正是这样一款主流的语言,却在近日惨遭弃用。据外媒 The Register 报道,一家名为 Fivetran 的自动化数据集成公司想要用一款开源工具 dbt(Data Build Tool)将 SQL 取而代之。万万没想到,吐槽也接踵而至,行业中反对的声音远比支持的要大得多。
缘由
Fivetran 是一家创立于 2012 年的技术公司,主要是为公司开发 SaaS 数据集成服务,以提取、加载来自不同来源的数据并将其转换到数据仓库中。
在早期,Fivetran 之所以选择自动化数据集成方向,是因为发现对于使用基于云的软件和存储的现代公司来说,传统的 ETL(Extract-Transform-Load,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)工具性能严重不足,且所需的复杂配置往往导致项目失败,为此,Fivetran 在城里之初便聚焦于零配置、零维护的管道开发。简单来看,Fivetran 主要是帮助企业将数据搬到云上数仓,其遵循的使命是,让用户使用数据就像用电一样简单,无论数据的来源如何。
2021 年 9 月,Fivetran 获得了一轮 5.65 亿美元的融资,估值达到了 56 亿美元。领投方为网络先驱马克 - 安德森创建的投资公司 a16z。一时之间,Fivetran 被视为云计算时代的数据管道独角兽,发展势不可挡。
不过,近日一位 Twitter 博主、也是数据分析平台 Cogniti 的首席技术官 @Matthew Mullins 突然发了一条推文,他写道,"Fivetran 放弃支持 SQL,并强迫用户转向 dbt。但你可能会因为更为 " 现代化 " 而喜欢它。"
一石激起千层浪,很多人处于比较迷茫的状态。相继质问:
究竟是谁在负责 Fivetran 的产品管理?它似乎正在与外界脱节。数据集成中间件市场的过去历史表明,这将会是一个巨大的战略失误。拥抱 " 模型 ",但不要在 SQL 的迅速崛起和扩张过程中放弃 " 代码 "(即 SQL)。
而之所以发出这样的声明,Matthew Mullins 称他收到了一封来自 Fivetran 的邮件,具体如下:
在 2023 年 4 月,我们将结束对 Basic SQL Transformations 的支持。你收到这封邮件是因为你的账户当前或者曾经有活跃的 Basic SQL Transformations。
两年前,我们推出了现代的数据转换方法:免费的 Fivetran Transformations for dbt Core。通过内置的版本控制、测试和可重复使用的宏,dbt 改进了数据转换的体验,同时仍然保持了基于 SQL 的简单使用。我们相信这是建立你的 ELT 管道的最简单和最有效的方法。
我们的许多客户已经从 SQL 转换到 dbt。通过免费的 Fivetran Transformations for dbt Core,你还可以利用先进的功能,如:
集成调度:在仓库的连接器数据加载时自动触发数据模型运行。
数据脉络图:通过可视化的数据管道端到端的日志、统计和状态来增加你的可观察性。
我们将帮助您完成这一转变 ......
为什么要放弃 SQL,选择 dbt?
其实对于很多公司而言,在新品中进行技术转型也实属正常。但是根据 Fivetran 资料显示,其在全球已有超过 759 家公司,包括与 ASICS、Autodesk、DocuSign、Forever 21、WeWork 和 Urban Outfitters 等知名企业都有合作。除此之外,Fivetran 还支持数百个数据库的连接,如 IBM、Oracle、SAP 和 Snowflake 等。
随着这一计划的执行,影响范围也颇为广泛。为此,也有不少人好奇,dbt 究竟有怎样的魔力,使得 Fivetran 要放弃 SQL?
所谓 dbt,也被称之为是 " 数据加工大师 ",它是一个使用 Python 语言编写软件的工具。它可以使分析工程师能够通过编写选择语句来转换其仓库中的数据。dbt 能够通过 SQL 实现数据转换,将命令转化为表和视图。在功能上,dbt 主要聚焦于 ELT(提取、加载、转换)中的 T(转换数据)环节,它不提取或加载数据,但设计为在转换仓库内已经存在的数据时表现出色。
诞生于 2016 年的 dbt 一开始是开源的,不过在 2018 年,其背后的 dbt Labs 团队推出了商业产品。当前 dbt 主要包含两个版本,其中 dbt Core 是免费的,在 Apache 许可证下作为开源软件发布。
另一个名为 dbt Cloud,属于 Saas 云版本,它提供了一个基于网络的 IDE,帮助团队开发 dbt 项目和一个调度器。个人可以免费使用,但对于一些需要协作的功能,或者企业使用而言,则需要支付使用费用。
长期以来,SQL 一直是分析工程师开发转换和执行分析的首选语言。dbt 的到来,其结合了 SQL,可以将 dbt 项目变成了 SQL 的编程环境,并提供使用编程语言功能的功能,例如在 SQL 中通常无法实现的写函数和控制结构。这意味着分析师不需要学习新的语言或工具,可以像以前一样自由地转换数据。
一定程度上来看,dbt 简化了使用 SQL 来创建数仓的门槛。
dbt 实则为累赘?
在发出这份邮件之后,Fivetran 公司表示,开发人员仍然能够使用 dbt 的 SQL。话虽如此,但很多开发者并不买账,纷纷怒斥道:
我知道如果你买了 Fivetran 来做 ELT,这会令人沮丧。我从不希望我的 SQL 依靠第三方平台上,所以它感觉就像一个奇怪的附加组件(不要让我开始考虑使用 Fivetran 触发 dbt 运行的成本)。
强制供应商集成看起来很糟糕。dbt 不是行业标准——它只是一个受欢迎的开发商开发的工具。依赖某一个供应商似乎还挺危险的。
在这条极具争议的推文下方,Fivetran 的 CEO George Fraser 也迅速现身进行了回应," 你可以为这件事责备我。必须集中精力,Basic SQL 和 dbt SQL 实际是做同一件事的两种方法 "。同时,他也表示 Fivetran 也正在努力降低扫清采用 dbt 的障碍。
当前 dbt 已经成为一款主流开源数据转换工具,不过不少人也对其使用门槛也表达了担忧,称 " 如果我们已经掌握了 SQL,再去了解 dbt 的学习曲线是否很难?" 而且,dbt 面向团队也不是免费的。
在数据分析平台 Cogniti 的首席技术官 Matthew Mullins 看来,Basic SQL 支持不需要任何额外的基础设施,但使用 dbt,用户只能创建表和视图,且他们也需要额外的基础设施来运行它们。这实际上是一个有点令人头疼的问题。同时,他表示,"无论哪种方式,他们都是在把你逼上梁山。你将不得不设置运行 dbt 所需的一切,并对某人进行培训,而且你现在被限制在 dbt 支持的内容和 dbt 的模式中。"
如今使用 dbt 的企业其实不在少数,在今年 2 月,dbt Labs 完成了 D 轮 2.22 亿美元的融资,Snowflake 和 Databricks 均有参与,该公司估值也达到了 42 亿美元。
不过,dbt 真的是扩展和增强 SQL 的最佳工具,并能成为云数据转换行业的标准吗?你使用过 dbt 吗?