65.9K
CodeProject 正在变化。 阅读更多。
Home

逐步学习 Microsoft 商业智能 - 第 2 天

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.75/5 (40投票s)

2014 年 5 月 11 日

CPOL

10分钟阅读

viewsIcon

140562

downloadIcon

12648

逐步学习商业智能 - SSIS 第 2 天

这篇学习 MSBI 的文章已经过时,请参阅我们使用 SQL Server 2014 的最新文章 https://codeproject.org.cn/Articles/1064477/Learn-to-create-MSBI-Microsoft-Business-Intelligen

引言

这是系列文章中的第二篇:逐步学习 Microsoft 商业智能

在本系列文章中,我们将逐步学习 MSBI 平台的所有三个组件,即 SSIS、SSAS 和 SSRS。

http://www.learnmsbitutorials.net/ 上通过完整的逐步 MSBI 教程学习并深入了解您的知识

完整系列

  1. 第 1 天
  2. 第 2 天
  3. 第 3 天

我们上次学到了什么?

第一天我们学习了以下内容:

  1. 什么是数据仓库?
  2. 它与传统数据库有何不同?
  3. 什么是商业智能?
  4. SSIS、SSAS 和 SSRS 的目的是什么?
  5. 如何使用 SSIS 创建一个简单的 ETL 包?
Day 1 to Day 2

第二天议程

如何设计数据仓库?

到目前为止,我们已经对数据仓库有了基本了解。它通常是一个以非规范化方式保存数据的数据库。来自多个地方(多个数据源)的数据被收集并存储到 DW(数据仓库)中。SSIS(SQL Server 集成服务)是 Microsoft 用于执行此任务的商业智能平台。

现在的问题是如何设计 DW?

为了设计数据仓库,您必须问自己两个问题。

  1. 您想计算什么?
    答案可能是——总利润、总支出等。
  2. 您的筛选器是什么?或者您的计算依据是什么?
    答案可能是 – 位置、时间、客户等,因为您的目标是找出
    1. 特定地点的总销售额是多少?一旦您获得该值,您就可以采取适当的措施,例如,您可以在销售额最少的地方开展一些营销活动或广告。
    2. 在过去的 5 年里,哪一年是业务最好的一年,或者简而言之,哪一年的销售额最高?
    3. 哪个客户购买的商品最多。
Question

DW 主要包含两种主要类型的表。一种是事实表,其中包含业务流程的度量,另一种是维度表,用于对数据进行过滤、分组和排序。在上面的示例中,

  • 地点、时间(保存年份的那个)和客户将成为您的维度
  • 销售额成为你的事实。

注意:事实和维度只是表。

设计数据仓库就是要,

  • 理解业务中的维度和事实
  • 并创建适当的表。

维度和事实与传统表有何不同

为了理解这一点,我们举一个例子。看看传统规范化数据库的数据库图。

Traditional Database

现在让我们看看如何从上面创建一个 DW

Data Warehouse

如您所见,

  • 传统表被转换为非规范化维度。
  • 创建的事实表只包含两件事
    • 可用于计算的数字
    • 维度表键的引用。

数据仓库设计技术

上述技术中,事实表引用维度表,维度表完全非规范化,从而形成了一个看起来像星形的数据库图,因此被称为星型模式设计。 Snowflake

星型模式设计中,一个事实表将由许多维度表包围。

Star 还有一种设计数据仓库的方法。它被称为雪花设计。在这种设计中,某些维度表的规范化在一定程度上得到了考虑。

星型模式和雪花设计的优缺点

  • 星型模式设计由于维度非规范化,因此性能更高。雪花模式的性能相对低于星型模式。
  • 星型模式的数据管理比雪花模式更困难,因为数据冗余更高。
  • 在星型模式中,查询将更简单,因为连接将相对较少。

结论 – 如果数据完整性和数据冗余是主要问题,雪花模式是最佳选择。如果性能是主要问题,星型模式最适合。

实验 2、3、4 和 5 - 探索控制流。

现在是我们的实验时间了。在上一个实验中,我们创建了一个简单的 SSIS 包来演示 ETL 过程。在本文中,我们将继续我们的实验并探索更多的控制流任务。

实验 2 - 执行 SQL 任务

此任务允许我们通过包执行自定义 SQL 脚本。

步骤 1. 创建表

在您的 SQL 数据库中创建如下表

SQL Databse

注意: EmployeeId 是标识列。

步骤 2. 创建 SSIS 项目

创建一个新的空 SSIS 项目,就像我们在实验 1 中创建的那样。

步骤 3. 创建连接管理器

3.1 右键单击连接管理器并选择新建 ADO.NET 连接。
New ADO.NET connection

3.2 单击新建
Click New

3.3 输入服务器名称,输入凭据,选择数据库,然后单击确定。

3.4 再次单击确定。

3.5 将连接管理器重命名为 Lab2Connection。

步骤 4. 添加执行 SQL 任务

在 SSIS 设计器中,默认选择控制流。从工具箱中取出“执行 SQL 任务”并将其添加到设计器中。

步骤 5. 配置“执行 SQL 任务”

5.1 双击任务,它将打开“执行 SQL 任务编辑器”

5.2 确保左侧部分已选中“常规”。在右侧“SQL 语句”组下,将连接类型从默认的 OLEDB 更改为 ADO.NET。

5.3 接下来将连接属性设置为步骤 3 中创建的连接。

5.4 接下来是 SQLSourceType。它支持三个值,

5.4.1 文件连接 – 允许我们执行存储在文件中的 T-SQL 语句。

5.4.2 变量 – 允许我们执行存储在其中一个变量中的 T-SQL 语句。

5.4.3 直接输入——让我们提供要执行的 T-SQL 语句

注意:选择上述值之一后,属性窗口中将显示一个动态选项。对于“直接输入”将显示一个名为“SQL 语句”的属性,对于变量将显示一个名为“源变量”的属性,对于文件连接将显示一个名为“文件连接”的属性。
对于我们的选择“直接输入”。

5.5 单击“SQL 语句”。将出现一个带有三个点的按钮。单击它。它将弹出“输入 SQL 查询”对话框。在其中输入查询并单击确定。

5.6 在“执行 SQL 任务编辑器”窗口中单击确定。

步骤 6. 执行包

按 F5 执行包。

步骤 7. 测试执行

打开 sql server 数据库并确认记录已插入。

注意:我们使用硬编码查询进行演示。您可以检查标识列并确认值是否实际插入。

步骤 8. 为下一个实验做准备

吃点东西,休息一下,为下一个实验做准备。

实验 3 – 备份数据库任务

步骤 3. 添加备份数据库任务

从工具箱中取出“备份数据库任务”并将其添加到控制流设计器窗口

步骤 4. 配置备份数据库任务

4.1 双击任务,它会弹出配置窗口。

4.2 首先要配置的是顶部的连接。选择在步骤 3 中创建的连接管理器。

注意:这里会发生一件非常奇怪的事情。您将在下拉列表中找不到连接管理器(在步骤 3 中创建)。为此,

4.2.1 关闭窗口。

4.2.2 右键单击您的连接管理器并转到属性。

4.2.3 检查 Qualifier 属性的值。它将是这样的:“System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”。

4.2.4 将其更改为简单的“SQL”。

4.2.5 再次双击备份任务。现在您将在下拉框中找到连接管理器。

4.3 在连接下方,您会找到“数据库”选项。从列表中选择一个或多个数据库。

4.4 其他设置保持不变,只需选择您要保存数据库备份的路径即可。

4.5 单击确定

步骤 5. 执行包

按 F5 执行包。

步骤 6. 测试执行

转到所选路径,查看是否已创建备份。

如果备份文件存在,则可以进行下一个实验了。

实验 4 – 脚本任务和变量

在这个实验中,我们将学习两件事。

  1. 脚本任务 – 它允许我们执行任何现有 SSIS 任务无法完成的操作。它允许我们用 C# 编写代码并执行自定义操作。
  2. 变量 – 我们将学习如何声明变量、如何为它们赋值以及如何在脚本任务中使用它们。

注意:一旦创建并分配了一些值,变量就可以用作许多任务的输入。例如,作为执行 SQL 任务的输入,或者可以在我们将在本实验中执行的脚本任务中使用。

步骤 1. 创建 SSIS 项目

创建一个新的空 SSIS 项目。

步骤 2. 创建变量并赋值

2.1 执行以下操作之一,

  • 右键单击控制流并选择变量。

  • 单击 SSIS 设计器右上角的蓝色按钮。


它将打开变量窗口。

2.2 单击“添加变量”按钮

2.3 定义变量并赋值。

步骤 3. 将脚本任务添加到控制流

从工具箱中取出脚本任务并将其添加到控制流

步骤 4. 配置脚本任务。

4.1 双击脚本任务。它将打开脚本任务编辑器。

4.2 接下来我们必须配置要传递给脚本的变量。我们可以将变量作为只读变量或读写变量传递。单击 ReadOnlyVariable 或 ReadWriteVariable 前面的三个点按钮。

选择变量并单击确定。

4.3 接下来,单击编辑脚本。

它将打开一个新的 Visual Studio 实例,其中包含一个“.cs”扩展名文件。

4.4 在 main 方法中编写以下代码。

public void Main()
{
    // TODO: Add your code here
    MessageBox.Show(Dts.Variables["Website"].Value.ToString());
}

4.5 按 Ctrl+Save 保存文件。

4.6 关闭当前 Visual Studio 并返回到打开“脚本任务编辑器”的 SQL Server Data Tools。

4.7 单击确定。

步骤 5. 执行包。

按 F5 并执行应用程序。

步骤 6. 检查输出

庆祝时间

下一步?

在接下来的文章中,我们将更多地讨论 SSIS。

  • 我们将涵盖更多控制流和数据流任务。
  • 将讨论错误处理。
  • 将讨论变量和表达式。
  • 还有很多其他内容。

希望您喜欢阅读这篇文章。您的评论、投票和建议是我们撰写更多此类内容的动力。

如需 WCF、MVC、商业智能、设计模式、WPF 和 UML 等各种主题的技术培训,请随时联系 SukeshMarla@Gmail.com 或访问 www.sukesh-marla.com

有关更多类似内容,请单击此处。订阅文章更新或在 Twitter 上关注 @SukeshMarla

您也可以参考以下 1 小时 MSBI YouTube 视频:- 4 天学习 MSBI。

查看 .NET、C#、ASP.NET、SQL、WCF、WPF、WWF、SharePoint、设计模式、UML 等中的 600 多个常见问题解答。

点击此处获取更多 MSBI 逐步教程。

© . All rights reserved.