mysql多维数据仓库指南--第二篇第5章_2
时间:2008-03-27 来源:jiangdm
测试
本节我将向你展示,事先成功编译好的存储过程将每天完成由源推送CDC模式功能,从source数据库中的sales_order表提取数据,载入到数据仓库的sales_order_fact表中。
第一步,你需要运行列表5-2中的脚本来在source数据库中创建sales_order表。运行列表5-3脚本往数据仓库(dw)数据库中增加一些测试数据(四个销售订单记录和一个日期记录)。
列表5-2 建立sales_order 表
/*****************************************************************/
/* */
/* create_sales_order.sql */
/* */
/*****************************************************************/
USE source;
CREATE TABLE sales_order
( order_number INT
, customer_number INT
, product_code INT
, order_date DATE
, entry_date DATE
, order_amount DECIMAL (10, 2))
;
/* end of script */
列表 5-3 测试推送模式的数据
/*****************************************************************/
/* */
/* push_data.sql */
/* */
/*****************************************************************/
USE dw;
INSERT INTO order_dim VALUES
(NULL, 17, CURRENT_DATE, '9999-12-31')
, (NULL, 18, CURRENT_DATE, '9999-12-31')
, (NULL, 19, CURRENT_DATE, '9999-12-31')
, (NULL, 20, CURRENT_DATE, '9999-12-31')
;
INSERT INTO date_dim VALUES
(NULL, '2007-02-06', 'February', 2, 6, 2007, CURRENT_DATE, '9999
12-31')
;
/* load sales orders in the source database */
USE source;
INSERT INTO sales_order VALUES
(17, 1, 1, '2007-02-06', '2007-02-06', 1000)
, (18, 2, 1, '2007-02-06', '2007-02-06', 1000)
, (19, 3, 1, '2007-02-06', '2007-02-06', 4000)
, (20, 4, 1, '2007-02-06', '2007-02-06', 4000)
;
/* end of script */
在你开始之前,你必须把你的mysql日期设置为:2007-02-07(销售订单测试数据的截至日期)并且切换到Source数据库(有那个存储过程的数据库)。
切换到source数据库可以键入下面的命令并且按回车
mysql> use source;
mysql 将打印出如下回应:
Database changed
接下来,运行push_sales_order存储过程,用如下命令向销售订单事实表载入数据。
mysql> call push_sales_order();
回应表示有4条记录有效。
Query OK, 4 rows affected (0.09 sec)
最后通过查询表来确定当前的销售订单被载入到sales_order_fact表中。回顾一下在上一章中你载入的16条销售订单记录,最后四条的时间是2007-02-06。
现在切换数据库为dw
mysql> use dw;
然后,运行下面命令查询sales_order_fact表。
mysql> select * from sales_order_fact;
结果如下所示:
+----------+-------------+------------+-------------+--------------+
| order_sk | customer_sk | product_sk |order_date_sk| order_amount |
+----------+-------------+------------+-------------+--------------+
| 1 | 1 | 2 | 1 | 1000.00 |
| 2 | 2 | 3 | 1 | 1000.00 |
| 3 | 3 | 4 | 1 | 4000.00 |
| 4 | 4 | 2 | 1 | 4000.00 |
| 5 | 5 | 3 | 1 | 6000.00 |
| 6 | 1 | 4 | 1 | 6000.00 |
| 7 | 2 | 2 | 1 | 8000.00 |
| 8 | 3 | 3 | 1 | 8000.00 |
| 9 | 4 | 4 | 1 | 10000.00 |
| 10 | 5 | 2 | 1 | 10000.00 |
| 11 | 1 | 2 | 2 | 20000.00 |
| 12 | 2 | 3 | 2 | 25000.00 |
| 13 | 3 | 4 | 2 | 30000.00 |
| 14 | 4 | 2 | 2 | 35000.00 |
| 15 | 5 | 3 | 2 | 40000.00 |
| 16 | 1 | 4 | 2 | 45000.00 |
| 17 | 1 | 3 | 3 | 1000.00 |
| 18 | 2 | 3 | 3 | 1000.00 |
| 19 | 3 | 3 | 3 | 4000.00 |
| 20 | 4 | 3 | 3 | 4000.00 |
+----------+-------------+------------+-------------+--------------+
20 rows in set (0.00 sec)
现在最后四条就是四条记录。
小结
本章你学习了全部源数据和CDC方法以及拉取和推送模式的源数据提取。你实施了CDC和推送模式进行销售订单数据的提取。接下来这章,你将学习装载日期维的各种技术。