Sql 用于在ETL管道中执行数据提取和转换的领域特定语言

Sql 用于在ETL管道中执行数据提取和转换的领域特定语言,sql,etl,data-warehouse,dsl,Sql,Etl,Data Warehouse,Dsl,作为提取转换加载(ETL)管道的一部分,是否有任何领域特定语言(DSL)可以促进数据提取和转换 我想从第三方SQL数据库提取数据,并将数据转换为已定义的JSON格式,以将其存储到我的应用程序中。有许多不同的数据库模式可以从中提取数据,因此我想知道是否已经有一种方法可以通过(常用的)提取语言(理想情况下,该语言对其他数据源(如web服务等)不可知)来配置它 我环顾了一下四周,但除了几篇研究论文外,我找不到太多关于ETL的商定标准(减去我已经介绍过的“L”),我不想重新发明轮子 我很感激任何指向正确

作为提取转换加载(ETL)管道的一部分,是否有任何领域特定语言(DSL)可以促进数据提取和转换

我想从第三方SQL数据库提取数据,并将数据转换为已定义的JSON格式,以将其存储到我的应用程序中。有许多不同的数据库模式可以从中提取数据,因此我想知道是否已经有一种方法可以通过(常用的)提取语言(理想情况下,该语言对其他数据源(如web服务等)不可知)来配置它

我环顾了一下四周,但除了几篇研究论文外,我找不到太多关于ETL的商定标准(减去我已经介绍过的“L”),我不想重新发明轮子


我很感激任何指向正确方向的指针。

为ETL创建一个好的、全方位的DSL,我认为这不仅仅是一件困难的事情,而且是一件愚蠢的差事。为了处理许多现实世界的ETL复杂性,您最终需要重新创建一种通用语言

和ETL“没有编程技巧”,因为这种尝试将与清理和整合不同源系统的混乱性作斗争

当然,单独使用通用语言是可能的,但由于抽象级别较低,以及所有必须实现的基础结构代码,因此非常耗时

图形化ETL工具和一些ETL DSL通过添加脚本或调用外部程序来解决这个问题。虽然这是有用的和必要的,但它的缺点是使用多个不同的编程模型,在它们之间移动时会产生相关的心理和技术摩擦

另一种不同的、我认为更好的方法是将ETL功能添加到通用语言中。如果做得好,您可以将特定于ETL的功能和高抽象级别的优点与通用语言及其大型生态系统的强大功能结合起来,所有这些都是通过单个编程模型实现的

作为后一种方法的一个例子,我的公司提供了一个跨平台的.NET ETL库,它将ETL思想与现代应用程序开发的优势结合起来。例如,它提供了熟悉的ETL功能,并在多个地方使用这些功能来简化配置。如果听起来很合身,就去做

actionETL现在也有一个免费的

干杯,
Kristian

这只是我的观点,但是,假设一个解决方案的规模不小,我会一直使用一个专用的ETL/ELT工具,并且永远不会编写代码来执行ETL功能——我假设当你谈论语言时,你指的是编码语言?编码方法很快变得很难/不可能支持和维护,因此需要专用的ETL工具来共享您的视图。我发现这个看起来很灵活。你认为呢?几乎所有的图形化ETL工具,你都会获得可视化(好)和可点击性(个人偏好),但你会失去可重用性、封装性和一系列其他东西(坏)。最好的方法显然是尝试一下,并估计它在各种全尺寸项目中的效果(或不效果)。一定要查看比较actionETL和SSIS的“影响ETL生产率的十三个因素”白皮书——图形化ETL工具具有大多数相同的特点:再次感谢您分享您的见解。