从数据仓库创建报表时,为什么需要使用T-SQL而不是SQL?

从数据仓库创建报表时,为什么需要使用T-SQL而不是SQL?,sql,tsql,data-warehouse,Sql,Tsql,Data Warehouse,有人能告诉我为什么在从数据仓库创建报告时需要使用T-SQL而不是SQL吗 SQL也有函数和联接,但我看到所有在线教程在从DW创建报告时都使用T-SQL 可以用SQL完成吗?如果T-SQL是必须的,您能解释一下原因吗?就T-SQL能做什么而言,SQL做不到 一些关于T-SQL和创建报告的有用的教程链接也会很棒 提前感谢~不管T-SQL比普通SQL具有更多的功能,在一般的数据仓库中,您有两种主要方法: 使业务逻辑更接近数据。通过这种方式,您可以开发大量的T-SQL函数,并应用许多可用的优化来提高ET

有人能告诉我为什么在从数据仓库创建报告时需要使用T-SQL而不是SQL吗

SQL也有函数和联接,但我看到所有在线教程在从DW创建报告时都使用T-SQL

可以用SQL完成吗?如果T-SQL是必须的,您能解释一下原因吗?就T-SQL能做什么而言,SQL做不到

一些关于T-SQL和创建报告的有用的教程链接也会很棒


提前感谢~

不管T-SQL比普通SQL具有更多的功能,在一般的数据仓库中,您有两种主要方法:

  • 使业务逻辑更接近数据。通过这种方式,您可以开发大量的T-SQL函数,并应用许多可用的优化来提高ETL的性能。优点是提高ETL和报告的性能。但缺点是更改代码的成本和迁移成本。DWH增长的常见情况是迁移到一些MPP平台。如果你在MSSQL中有很多T-SQL代码,你必须完全重写它,这将花费你很多钱(有时甚至超过MPP解决方案+硬件的成本)
  • 将业务逻辑放在外部ETL解决方案中,如Informatica、DataStage、Pentaho等。在数据库中,使用纯SQL和所有复杂逻辑(如果需要)进行操作是ETL解决方案的责任。优点是更改的简单性(只需移动转换框并使用GUI更改其属性)和更改平台的简单性。唯一的缺点是性能,这通常比数据库内实现慢2-3倍

  • 这就是为什么您可以找到关于T-SQL的教程,或者关于ETL/BI解决方案的教程。SQL是一种非常通用的工具(许多ANSI标准都适用于它),它是任何DWH专家的基本技能,而且ANSI SQL更简单,因为它没有任何特定于数据库的东西

    ,T-SQL是Microsoft对SQL语言(Sybase,SQL Server)的专有扩展。如果您使用的是SQL Server或Sybase,那么无论您的环境是OLAP还是OLTP,您都在使用T-SQL。您唯一可以控制的是,是否严格遵守SQL标准,并且不使用任何特定于T-SQL的扩展。然而,出于可移植性的原因,我从来都不喜欢不以最有效的方式做一些事情。谢谢大家,我使用SQL server 2012,我正在学习DW。上面的链接回答了T-SQL可以做而SQL不能做的事情。长话短说,T-SQL比SQL有更多的函数,如cast、convert、date()、循环、if/then、case等。我假设创建报告需要这些函数,这就是为什么所有教程都使用T-SQL而不是SQL。谢谢你的回答!然而,我不明白为什么我的问题被否决了,而其他类似的问题被认为是有用的…感谢OxOFFF,我是一名IT毕业生,曾接受过一次BI入门职位的面试,但我在数据库工程课上没有学习DW或t-SQL,所以从那以后我一直在自学,因为我真的希望将来成为BI。你的回答帮助我理解了为什么使用T-SQL。再次感谢您花时间写下答案!祝你今天愉快~