首页 >>  正文

sql+server三种触发器

来源:baiyundou.net   日期:2024-08-02

整理 | 苏宓出品 | CSDN(ID:CSDNnews)

作为关系型数据库的标准语言,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 吗?

参考:

https://www.theregister.com/2022/10/07/fivetran_slated_for_dropping_sql/

https://www.fivetran.com/blog/dbt-explained

https://twitter.com/mullinsms/status/1578209629083140101

— ","force_purephv":"0","gnid":"952ab7433b0439d7d","img_data":[{"flag":2,"img":[{"desc":"","height":"80","s_url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752_1.gif","title":"","url":"https://p0.ssl.img.360kuai.com/t0186957a1ca5352752.gif","width":"640"},{"desc":"","height":"403","title":"","url":"https://p0.ssl.img.360kuai.com/t01f3813ed4337f688f.jpg","width":"1080"},{"desc":"","height":"886","title":"","url":"https://p0.ssl.img.360kuai.com/t01f2f5e41e80b874e4.jpg","width":"1080"},{"desc":"","height":"247","title":"","url":"https://p0.ssl.img.360kuai.com/t0117d91a4ca32ec998.jpg","width":"1080"},{"desc":"","height":"520","title":"","url":"https://p0.ssl.img.360kuai.com/t010f1d2176847c06d9.jpg","width":"1080"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1665388747000,"pure":"","rawurl":"http://zm.news.so.com/8d8034a226b278e5e3d519cf13d14162","redirect":0,"rptid":"9166c5e8a5a2e3cc","s":"t","src":"CSDN","tag":[{"clk":"ktechnology_1:asic","k":"asic","u":""},{"clk":"ktechnology_1:twitter","k":"twitter","u":""}],"title":"放弃支持 SQL 惹争议,CEO:你可以怪我!

廖王饺3939SQL Server数据库设计中的三大范式 -
韦岩贵13333359215 ______ 是数据库设计过程中逻辑设计阶段所使用的技术,指关系数据库中的关系满足的条件,第一范式是满足最低的要求,指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的...

廖王饺3939sql server有几种关联查询方式? -
韦岩贵13333359215 ______ 其实没有关联查询这一说法,只有连接查询 或者数据库表关联 你是问什么

廖王饺3939SQL Server 2005 数据库具有哪三种类型的文件 -
韦岩贵13333359215 ______ 1、主数据文件.每一个数据库都有一个主数据文件除了用来存储数据,还能跟踪该数据库中的所有其它文件.(后缀名:.mdf) 2、辅助数据文件.一个数据库可以有0个到多个辅助数据文件 (后缀名:.ndf) 3、日志文件.每个数据库都至少有一个日志文件包含恢复数据库中所有事务所需的信息(后缀名:.ldf)

廖王饺3939数据库语言有哪些 -
韦岩贵13333359215 ______ 数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句. 数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句. 数据查询语言(DQL),例如:SELECT语句.(一般不会单独归于一类,...

廖王饺3939SQL Server启动事务有几种方式? -
韦岩贵13333359215 ______ 有三种.第一种是显式声名的事务,这种事务要以BEGIN TRANSACTION为事务的起始标志.第二种是自动提交事 务,这是SQL Server的缺省设置.每一个T-SQL语句在执行完成后会被自动提交.第三种是隐含事务,在这种方式下,SQL ...

廖王饺3939mssql,mysql,sqlserver三者有何不同 -
韦岩贵13333359215 ______ mssql=sqlserver,都是Microsoft® SQL Server™,只是不同的简称.mysql,是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.两者的区别是MSSQL是企业级数据库,mysql是轻量级数据库(当然也可以作为企业级数据库,但需要购买很多其他的服务)

廖王饺3939数据库高中可以学习吗? -
韦岩贵13333359215 ______ 可以学习. 工业自动化领域,大家经常接触到上位机软件,比如我们常用的WinCC,IFix,FactoryTalk View,WiSCADA等,都会牵扯到历史数据的存储,用于历史趋势,历史报警,报表的显示,很多公司都推出了自己的实时数据库软件,比如GE...

廖王饺3939sql sever 是什么? -
韦岩贵13333359215 ______ SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等.目前,绝大多数...

廖王饺3939在SQL Server中区分大小写的几种方法 -
韦岩贵13333359215 ______ 从数据库Collate到存储过程到函数,各种方法都有,选择适合你的. 第一种:ALTER TABLE tb ALTER COLUMN colname nvarchar(100) COLLATE Chinese_PRC_CI_AS--不区分大小写 ALTER TABLE tb ALTER COLUMN colname nvarchar(...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024