适用于:SQL Server
Azure Synapse Analytics
分析平台系统 (PDW)
WideWorldImportersDW 数据库中架构、表和存储过程的说明。
WideWorldImportersDW 数据库用于数据仓库和分析处理。 有关销售和购买的事务数据在 WideWorldImporters 数据库中生成,并使用每日 ETL 流程加载到 WideWorldImportersDW 数据库中。
WideWorldImportersDW 中的数据因此反映了 WideWorldImporters 中的数据,但表的组织方式不同。 WideWorldImporters 具有传统的规范化架构,WideWorldImportersDW 则使用星型架构方法设计表。 除了事实数据表和维度表之外,数据库还包括许多在 ETL 流程中使用的临时表。
架构
不同类型的表按三种架构组织。
| 架构 | 说明 |
|---|---|
| 维度 | 维度表。 |
| Fact | 事实数据表。 |
| 集成 | ETL 所需的临时表和其他对象。 |
表
下面列出了维度表和事实数据表。 集成架构中的表仅用于 ETL 流程,并未列出。
维度表
WideWorldImportersDW 具有以下维度表。 描述包括与 WideWorldImporters 数据库中源表的关系。
| 表 | 源表 |
|---|---|
| 城市 | .'. . |
| 客户 | .'. . |
| Date | 包含日期信息的新表格,日期信息包括财年(基于财年起始日 11 月 1 日)。 |
| Employee |
Application.People。 |
| StockItem | .'. . |
| 供应商 | [.] |
| PaymentMethod |
Application.PaymentMethods。 |
| TransactionType |
Application.TransactionTypes。 |
事实数据表
WideWorldImportersDW 具有以下事实数据表。 描述包括与 WideWorldImporters 数据库中源表的关系,以及经常与每个事实数据表一起使用的分析/报告查询的类。
| 表 | 源表 | 示例分析 |
|---|---|---|
| 订单 |
Sales.Orders 和 Sales.OrderLines |
销售人员、拣货员/打包员的工作效率以及及时拣货。 此外,低库存情况将导致延期交货。 |
| Sale |
Sales.Invoices 和 Sales.InvoiceLines |
销售日期、交付日期、一段时间内的盈利、不同销售人员的盈利。 |
| 购买 | Purchasing.PurchaseOrderLines |
从订货到交货的预期时间和实际时间 |
| 事务 |
Sales.CustomerTransactions 和 Purchasing.SupplierTransactions |
测量发出日期与结束日期,以及金额。 |
| 移动 | Warehouse.StockTransactions |
一段时间内的动向。 |
| 存货 | Warehouse.StockItemHoldings |
现有库存水平及价值。 |
存储过程
存储过程主要用于 ETL 流程和配置目的。
鼓励示例的任何扩展将 Reports 架构用于 Reporting Services 报表,将 PowerBI 架构用于 Power BI 访问。
应用程序架构
这些过程用于配置示例。 它们用于将企业版功能应用到示例的标准版、添加 PolyBase,以及重新对 ETL 进行种子设定。
| 过程 | 用途 |
|---|---|
| Configuration_ApplyPartitionedColumnstoreIndexing | 对事实数据表应用分区和列存储索引。 |
| Configuration_ConfigureForEnterpriseEdition | 应用分区、列存储索引和内存。 |
| Configuration_EnableInMemory | 将集成临时表替换为 SCHEMA_ONLY 内存优化表以提升 ETL 性能。 |
| Configuration_ApplyPolyBase | 配置外部数据源、文件格式和表。 |
| Configuration_PopulateLargeSaleTable | 应用企业版更改,然后填充 2012 日历年的大量数据作为附加历史记录。 |
| Configuration_ReseedETL | 移除现有数据并重启 ETL 种子。 这样可以重新填充 OLAP 数据库,以匹配 OLTP 数据库中更新的行。 |
集成架构
ETL 流程中使用的过程可分为以下几类:
- ETL 包的帮助程序过程 - 所有 Get* 过程。
- ETL 包用于将临时数据迁移到 DW 表的过程 - 所有 Migrate* 过程。
-
PopulateDateDimensionForYear- 采用一年,并确保这一年的所有日期都填充在Dimension.Date表中。
序列架构
在数据库中配置序列的过程。
| 过程 | 用途 |
|---|---|
| ReseedAllSequences | 为所有序列调用过程 ReseedSequenceBeyondTableValue。 |
| ReseedSequenceBeyondTableValue | 用于将下一个序列值重新定位到使用相同序列的任何表中的值之外。 (如 DBCC CHECKIDENT 用于等同于序列但可能跨多个表的标识列。) |