在本课中,你将创建分区,将 Internet Sales 表划分为较小的逻辑部分,便于独立于其他分区进行处理和刷新。 默认情况下,模型中包含的每个表都有一个分区,其中包含所有表的列和行。 对于 Internet Sales 表,我们希望按年份将数据分割成分区,每个年份对应一个分区,总共分成五年的分区。 然后,可以独立处理每个分区。 若要了解详细信息,请参阅分区(SSAS 表格)。
完成本课程的估计时间: 15 分钟
先决条件
本主题是表格建模教程的一部分,应按顺序完成。 在执行本课程中的任务之前,应已完成上一 课:第 10 课:创建层次结构。
创建分区
在“Internet Sales”表中创建分区
在模型设计器中,单击 “Internet Sales ”表,然后单击“ 表 ”菜单,然后单击“ 分区”。
此时将打开 “分区管理器 ”对话框。
在 “分区管理器 ”对话框中的 “分区”中,单击“ Internet 销售 ”分区。
在 分区名称中,将名称更改为
Internet Sales 2005。小窍门
在继续到下一步之前,请注意“表预览”窗口中显示的列名称,表示模型表中选中的列和这些列的源名称。 这是因为“表预览”窗口显示源表中的列,而不是从模型表中显示列。
选择预览窗口右侧的 “查询编辑器 ”按钮。
由于希望分区仅包含特定时间段内的这些行,因此必须包含 WHERE 子句。 只能使用 SQL 语句创建 WHERE 子句。
在 “SQL 语句 ”字段中,通过粘贴以下语句替换现有语句:
SELECT [dbo].[FactInternetSales].[ProductKey], [dbo].[FactInternetSales].[CustomerKey], [dbo].[FactInternetSales].[PromotionKey], [dbo].[FactInternetSales].[CurrencyKey], [dbo].[FactInternetSales].[SalesTerritoryKey], [dbo].[FactInternetSales].[SalesOrderNumber], [dbo].[FactInternetSales].[SalesOrderLineNumber], [dbo].[FactInternetSales].[RevisionNumber], [dbo].[FactInternetSales].[OrderQuantity], [dbo].[FactInternetSales].[UnitPrice], [dbo].[FactInternetSales].[ExtendedAmount], [dbo].[FactInternetSales].[UnitPriceDiscountPct], [dbo].[FactInternetSales].[DiscountAmount], [dbo].[FactInternetSales].[ProductStandardCost], [dbo].[FactInternetSales].[TotalProductCost], [dbo].[FactInternetSales].[SalesAmount], [dbo].[FactInternetSales].[TaxAmt], [dbo].[FactInternetSales].[Freight], [dbo].[FactInternetSales].[CarrierTrackingNumber], [dbo].[FactInternetSales].[CustomerPONumber], [dbo].[FactInternetSales].[OrderDate], [dbo].[FactInternetSales].[DueDate], [dbo].[FactInternetSales].[ShipDate] FROM [dbo].[FactInternetSales] WHERE (([OrderDate] >= N'2005-01-01 00:00:00') AND ([OrderDate] < N'2006-01-01 00:00:00'))此语句指定分区应包括那些 OrderDate 为 2005 年的日历年这一筛选条件下的行中的所有数据。
单击 “验证” 。
请注意,将显示一条警告,指出源中不存在某些列。 这是因为在 第 3 课:重命名列时,你重命名了模型中 Internet Sales 表中的这些列,与源中的这些列不同。
在 Internet Sales 表中为 2006 年创建分区
在 “分区管理器 ”对话框中的 “分区”中,单击
Internet Sales 2005刚刚创建的分区,然后单击 “复制”。在 分区名称中,键入
Internet Sales 2006。在 SQL 语句中,若要使分区仅包含 2006 年的那些行,请将 WHERE 子句替换为以下内容:
WHERE (([OrderDate] >= N'2006-01-01 00:00:00') AND ([OrderDate] < N'2007-01-01 00:00:00'))
在 Internet Sales 表中为 2007 年创建分区
在 “分区管理器 ”对话框中,单击“ 复制”。
在 分区名称中,键入
Internet Sales 2007。在 “切换到”中,选择 “查询编辑器”。
在 SQL 语句中,若要使分区仅包含 2007 年的那些行,请将 WHERE 子句替换为以下内容:
WHERE (([OrderDate] >= N'2007-01-01 00:00:00') AND ([OrderDate] < N'2008-01-01 00:00:00'))
在 Internet Sales 表中为 2008 年创建分区
在 “分区管理器 ”对话框中,单击“ 新建”。
在 分区名称中,键入
Internet Sales 2008。在 切换到中,选择 查询编辑器。
在 SQL 语句中,若要使分区仅包含 2008 年的那些行,请将 WHERE 子句替换为以下内容:
WHERE (([OrderDate] >= N'2008-01-01 00:00:00') AND ([OrderDate] < N'2009-01-01 00:00:00'))
在 Internet Sales 表中为 2009 年创建分区
在 “分区管理器 ”对话框中,单击“ 新建”。
在 分区名称中,键入
Internet Sales 2009。在 “切换到”中,选择 “查询编辑器”。
在 SQL 语句中,若要使分区仅包含 2009 年的那些行,请将 WHERE 子句替换为以下内容:
WHERE (([OrderDate] >= N'2009-01-01 00:00:00') AND ([OrderDate] < N'2010-01-01 00:00:00'))
进程分区
在 “分区管理器 ”对话框中,请注意刚创建的每个新分区的分区名称旁边的星号(*)。 这表示该分区尚未处理(未刷新)。 创建新分区时,应运行进程分区或进程表作来刷新这些分区中的数据。
处理互联网销售分区
单击“ 确定 ”关闭 “分区管理器 ”对话框。
在模型设计器中,单击 “Internet Sales ”表,然后单击“ 模型 ”菜单,然后指向 “进程 ”(刷新),然后单击“ 进程分区”。
在“ 进程分区 ”对话框中,验证 模式 是否设置为 “进程默认值”。
选中所创建五个分区中每个分区的 “进程 ”列中的复选框,然后单击“ 确定”。
如果提示输入模拟凭据,请输入您在第 2 课步骤 6 中指定的 Windows 用户名和密码。
然后,将显示“ 数据进程 ”对话框,并显示每个分区的进程详细信息。 请注意,每个分区传输的行数是不同的。 这是因为每个分区仅包括 SQL 语句中 WHERE 子句中指定的该年的行。 2010 年没有数据。
后续步骤
若要继续本教程,请转到下一课:课程: 第 12 课:创建角色。