【问题标题】:Why we need to use T-SQL over SQL when creating reports from Data Warehouse? [closed]从数据仓库创建报表时,为什么我们需要使用 T-SQL 而不是 SQL? [关闭]
【发布时间】:2014-12-27 15:41:22
【问题描述】:

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

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

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

一些有用的 T-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。感谢您的回答!但是,当其他类似问题被认为有用时,我不明白为什么我的问题被否决了......

标签: sql tsql data-warehouse


【解决方案1】:

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

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

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

【讨论】:

  • 感谢 OxOFFF,我是一名 IT 专业的毕业生,并且面试了一个入门 BI 职位,但我没有在我的数据库工程课程中学习 DW 或 T-SQL,所以我一直在自学从那时起学习,因为我真的想在未来成为 BI。您的回答帮助我理解了为什么使用 T-SQL。再次感谢您花时间写答案!祝你有美好的一天~
猜你喜欢
  • 1970-01-01
  • 2011-02-23
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多