Wide World Importers SSAS 多维项目实战指南:基于 WideWorldImportersDW 构建 Analysis Services 多维数据集

📅 发布时间:2026/9/23 21:56:08
Wide World Importers SSAS 多维项目实战指南:基于 WideWorldImportersDW 构建 Analysis Services 多维数据集
Wide World Importers SSAS 多维项目实战指南基于 WideWorldImportersDW 构建 Analysis Services 多维数据集【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址: https://gitcode.com/gh_mirrors/sq/sql-server-samples本篇技术指南围绕 sql-server-samples 仓库中 Wide World Importers 示例套件的 SSAS 多维SSASMD项目展开讲解如何基于数据仓库 WideWorldImportersDW 的星型模式构建 Analysis Services 多维数据集并通过 MDX 查询对 Wide World Importers 业务数据开展多维分析。读完本文你将掌握该示例的完整环境搭建、项目结构、构建与部署流程并理解其数据源视图、维度、度量值组与立方体的底层定义。项目定位从关系型数据仓库到多维分析模型samples/databases/wide-world-importers/wwi-ssasmd/README.md 明确说明了这个子项目的用途它为分析型数据库WideWorldImportersDW提供一套 SQL Server Analysis ServicesSSAS多维模型Multidimensional即 SSASMD项目基于 WideWorldImportersDW 的 schema 创建 Analysis Services 立方体从而支持对 Wide World Importers 数据执行 MDX 查询。在整条数据链中WideWorldImporters 示例套件本身分为 OLTP 数据库WideWorldImporters与分析型数据仓库WideWorldImportersDW两套模型其整体说明见 samples/databases/wide-world-importers/README.md。本 SSASMD 项目位于该套件的wwi-ssasmd目录中与同目录下的wwi-dw-ssdt数据仓库 SSDT 工程、wwi-ssisETL 工程、wwi-ssasmdSSAS 工程等共同组成一套OLTP → 数据仓库 → 多维分析的完整分析链路。其中wwi-dw-ssdt 负责定义数据仓库表结构Fact_Sale、Dimension_City、Dimension_Date 等而本项目的职责是把这些事实表与维度表组织成语义化的多维模型。从官方元数据看README 中的 About this sample该示例的适用对象与属性如下属性值适用产品SQL Server 2016 或更高版本核心特性Analysis Services Multidimensional工作负载类型Analytics分析作者Robert Cain, Jos de Bruijn更新历史2017 年 6 月 21 日初次发布环境前置条件要运行本示例需要满足以下软件要求SQL Server 2016 或更高版本且已安装WideWorldImportersDW数据库。该数据库可通过仓库中的 SSDT 工程 wwi-dw-ssdt 创建也可直接安装官方发布的数据仓库备份文件。Visual Studio 2015 Update 3 或更高版本。若使用 Visual Studio 2017需要额外安装Microsoft Analysis Services 建模项目Analysis Services Modeling Projects扩展该扩展可从 Visual Studio Marketplace 获取README 中给出了对应条目。SQL Server 2016或更高Analysis Services服务。需要注意SSAS 必须与 Visual Studio 安装在同一个机器上否则无法在本地构建该项目README 明确强调了这一点。从工程文件可以印证其目标工具链版本WideWorldImportersMultidimensionalCube.dwproj 中声明了ProductVersion为13.0.1601.5对应 SQL Server 2016 / Visual Studio 2015 工具链解决方案文件 wwi-ssasmd.sln 的 Format Version 为 12.00、# Visual Studio 14这进一步佐证了该工程是基于 SSDT/BI 工具链开发的 SSAS 多维项目。项目文件结构解读wwi-ssasmd目录下的工程由以下文件组成wwi-ssasmd/ ├── wwi-ssasmd.sln # Visual Studio 解决方案 └── wwi-ssasmd/ ├── WideWorldImportersMultidimensionalCube.dwproj # SSAS 多维项目文件 ├── WWI-SSASMD.database # 分析服务数据库定义 ├── Wide World Importers.cube # 立方体定义 ├── Wide World Importers.partitions # 分区定义 ├── WideWorldImportersDW.ds # 数据源 ├── Wide World Importers DW.dsv # 数据源视图 ├── City.dim # 城市维度 ├── Customer.dim # 客户维度 ├── Date.dim # 日期维度 ├── Employee.dim # 员工维度 ├── Payment Method.dim # 付款方式维度 ├── Purchase Finalized.dim # 采购定案维度 ├── Stock Item.dim # 库存项目维度 ├── Supplier.dim # 供应商维度 ├── Transaction Finalized.dim # 交易定案维度 └── Transaction Type.dim # 交易类型维度此外目录中还保留了部分带机器名后缀的开发副本如Date-ThinkerPad.dim、Date-DESKTOP-OS5I5AQ.dim、Wide World Importers DW-ThinkerPad.dsv、Wide World Importers-ThinkerPad.cube等这些是作者在不同开发机上保存的本地视图文件属于 Visual Studio 设计器为各开发机器生成的个性化副本正式建模内容以不带机器后缀的主文件为准。从 dwproj 工程文件 中可以清楚地看到项目包含的建模对象1 个立方体Wide World Importers.cube依赖分区定义 Wide World Importers.partitions、10 个维度City、Stock Item、Employee、Customer、Supplier、Payment Method、Transaction Type、Transaction Finalized、Purchase Finalized、Date、1 个数据源WideWorldImportersDW.ds与1 个数据源视图Wide World Importers DW.dsv。工程采用Development配置其中内置的默认连接字符串为Data Source.;Initial CatalogWideWorldImportersDW;Integrated SecurityTrue提供程序为System.Data.SqlClient即默认使用本机实例、Windows 集成身份验证连接 WideWorldImportersDW 数据库。你可以在部署前按实际环境修改该连接。运行示例构建、授权与部署README 给出的完整运行流程分为四个阶段下面逐一步骤展开说明并补充可验证的配置细节。第一步打开解决方案在 Visual Studio 中打开解决方案文件 wwi-ssasmd.sln。解决方案中包含唯一项目WideWorldImportersMultidimensionalCubeGUID{9A7C1971-1B25-4F3A-B4E3-844B34A1238A}其开发配置为Development|Default同时配置了 Build 与 Deploy 动作。第二步构建解决方案在 Visual Studio 中执行Build Solution。构建过程会校验立方体、维度、数据源视图等定义的 XMLA 架构工程引用了 Analysis Services 2003 至 2013 引擎的多个 schema 命名空间如ddl300/ddl400/ddl500并生成可供部署的 XMLA 脚本与asdatabase文件。构建失败时可重点检查是否满足SSAS 与 VS 同机的前置条件。第三步确认 SSAS 服务器权限通过 SQL Server Management StudioSSMS确认当前账号具备对 Analysis Services 服务器的管理权限在 SSMS 中连接到 Analysis Services 服务器连接类型选择 Analysis Services。在对象资源管理器中右键单击服务器节点选择属性打开服务器属性对话框。点击安全Security页签。确认你的账号已列入服务器管理员列表若不在点击添加Add将账号加入服务器管理员。这一步是部署成功的前提——只有服务器管理员才能向 SSAS 实例发布数据库。第四步发布 SSASMD 数据库部署分为两个关键配置点数据源连接与部署目标服务器。配置数据源连接在解决方案资源管理器中展开项目WWI-SSASMD的数据源Data Source节点。双击数据源WideWorldImportersDW.ds打开数据源设计器Data Source Designer。点击编辑Edit修改连接字符串使其指向装有 WideWorldImportersDW 数据库的服务器并确认数据库名称为WideWorldImportersDW。默认连接字符串Data Source.;Initial CatalogWideWorldImportersDW;Integrated SecurityTrue即本机 集成身份验证的典型形态。点击模拟信息Impersonation Information选择使用特定 Windows 用户名和密码Use a specific Windows user name and password填写具备数据仓库读取权限的账号。点击确定关闭对话框。配置部署属性并部署右键单击WWI-SSASMD项目选择属性打开项目属性对话框。点击部署Deployment页签将目标服务器Target Server改为实际的 Analysis Services 服务器地址点击确定。右键单击WWI-SSASMD项目选择部署Deploy将 Analysis Services 数据库发布到目标服务器。部署动作在 dwproj 工程文件 中已被配置Development|Default.Deploy.0因此也可直接右键项目执行部署。部署完成后还需要对立方体执行处理Process操作将 WideWorldImportersDW 中的事实数据加载进多维存储——立方体定义中所有对象数据库、立方体、度量值组的状态均标注为UnprocessedStorageMode为MolapMOLAP 多维联机分析处理数据经聚合后存储于 SSAS 本地ProcessingMode为Regular处理动作可通过 SSMS 或 Visual Studio 中的处理菜单触发。立方体内部结构维度、度量值组与事实表从 Wide World Importers.cube 的定义可以看到该多维模型围绕 WideWorldImportersDW 数据仓库的五张核心事实表构建了对应的度量值组Measure Group度量值组对应事实表主要度量Sale销售Fact_SaleSales Quantity、Sales Unit Price、Sales Tax Rate、Sales Total Excluding Tax、Sales Tax Amount、Sales Profit、Sales Total Including Tax、Sales Total Dry Items、Sales Total Chiller Items、Sales CountStock Holding库存持有Fact_Stock HoldingQuantity On Hand、Last Stocktake Quantity、Last Cost Price、Reorder Level 等Transaction交易Fact_Transaction交易金额类度量Order订单Fact_Order订单金额、数量类度量Purchase采购Fact_Purchase采购金额、数量类度量立方体中的维度与事实表的外键关系在立方体定义中有完整的映射例如Fact_Sale通过FK_Fact_Sale_Invoice_Date_Key_Dimension_Date、FK_Fact_Sale_Delivery_Date_Key_Dimension_Date关联两个日期角色维度通过FK_Fact_Sale_City_Key_Dimension_City关联城市维度通过FK_Fact_Sale_Stock_Item_Key_Dimension_Stock Item关联库存项目维度通过FK_Fact_Sale_Salesperson_Key_Dimension_Employee关联销售人员维度通过FK_Fact_Sale_Customer_Key_Dimension_Customer与FK_Fact_Sale_Bill_To_Customer_Key_Dimension_Customer关联客户与账单客户维度。Fact_Order同时关联 Order Date、Picked Date 两个日期角色维度以及 Customer、City、Stock Item、Salesperson、Picker员工角色维度等。Fact_Stock Holding与Fact_Purchase均通过FK_Fact_Stock_Holding_Stock_Item_Key_Dimension_Stock Item、FK_Fact_Purchase_Stock_Item_Key_Dimension_Stock Item关联库存项目维度Fact_Purchase 还通过FK_Fact_Purchase_Date_Key_Dimension_Date关联日期维度。Fact_Transaction关联 Customer、Bill To Customer、Transaction Date日期角色维度等。维度与层次结构各.dim维度文件定义了维度属性与层次结构例如Date 维度Date.dim是最丰富的维度包含 Date、Calendar Year、Quarter、Half Of Year、Month、Short Month 等属性并提供日历标签Calendar Year Label、Calendar Quarter Label 等、财年标签Fiscal Year Label、Fiscal Quarter Label 等以及期初标签Beginning Of Year Label、Beginning Of Month Label 等等多组属性集支持从日、月、季、半年、年以及财年等多个粒度进行时间分析。立方体中以角色维度Invoice Date、Delivery Date、Transaction Date、Order Date、Picked Date 等复用了该维度。City 维度City.dim包含 City、State Province、Country、Continent、Sales Territory、Region、Subregion、Latest Recorded Population 等属性支持地理层级下钻。Customer 维度Customer.dim包含 Customer、Bill To Customer、Category、Buying Group 等属性。Employee 维度Employee.dim包含 Employee、Preferred Name、Employee Role 等属性立方体中以 Salesperson、Picker 等角色维度复用。Stock Item 维度Stock Item.dim包含 Stock Item、Color、Lead Time Days、Unit Price 等属性。数据源视图Wide World Importers DW.dsv 是连接数据源与立方体之间的语义层负责定义从 WideWorldImportersDW 关系表到分析模型对象的映射关系事实表、维度表及其关系。立方体定义中所有度量与维度键的ColumnBinding都指向该数据源视图中的TableID与ColumnID例如Fact_Sale.Quantity、Fact_Sale.Invoice_Date_Key等。用 MDX 探索 Wide World Importers 数据立方体部署并处理完成后即可通过 MDX 查询进行多维分析。以下示例基于立方体中的实际度量与维度属性编写立方体名称为Wide World Importers可在 SSMS 的 MDX 查询窗口执行-- 按日历年度查看销售额不含税与销量 SELECT { [Measures].[Sales Total Excluding Tax], [Measures].[Sales Quantity] } ON COLUMNS, [Date].[Calendar Year Label].Members ON ROWS FROM [Wide World Importers];-- 按客户类别与城市维度交叉分析销售利润 SELECT [Measures].[Sales Profit] ON COLUMNS, NON EMPTY { [Customer].[Category].Members } * { [City].[Sales Territory].Members } ON ROWS FROM [Wide World Importers];注意正式查询前建议先通过 SSMS 连接到 Analysis Services 实例展开数据库节点确认部署后的立方体与维度名称再据此调整 MDX 中的对象标识符。适用限制与注意事项示例代码非生产用途README 的 Disclaimers 明确声明本示例包含的代码不适用于生产环境应仅作为学习 SSAS 多维建模与 Wide World Importers 数据集的参考。工具链依赖项目基于 SQL Server 2016 时代的 SSDT 工具链构建ProductVersion 13.0在更新版本的 Visual Studio 中打开时需按提示安装兼容的 Analysis Services 建模项目扩展并确认本机 SSAS 实例与开发工具同机部署。连接与部署目标需按环境调整默认数据源连接指向本机实例Data Source.并使用集成身份验证实际部署前务必按 README 步骤修改连接字符串、模拟信息与目标服务器。开发副本文件可忽略带机器名后缀的.dim/.ds/.dsv/.cube文件是设计器生成的本地副本修改主文件后重新构建即可无需手工维护这些副本。【免费下载链接】sql-server-samplesAzure Data SQL Samples - Official Microsoft GitHub Repository containing code samples for SQL Server, Azure SQL, Azure Synapse, and Azure SQL Edge项目地址: https://gitcode.com/gh_mirrors/sq/sql-server-samples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考