加快数据仓库加载无需添加硬件的解决方法
创始人
2024-07-11 17:00:54
0

很多公司流行使用数据仓库进行数据分析,一般从线上数据源备库(mirror,logshipping,slave等)抽取到ods 层

在从ods层到dw再到dm.特别在ods层到dw时,数据的清洗装载需要一定的时间和硬件资源.

但是当硬件成为瓶颈时,怎么能快速完成清洗转载,及时的提供数据分析?

下面提供一种方法使用Ssis 加载到 ods层后,直接通过分区表把数据加载到 dw 

1 准备

  1.  /*create filegroup*/  
  2.   ALTER DATABASE [testxwj] ADD FILEGROUP [account_1]   
  3.  go   
  4. ALTER DATABASE [testxwj] ADD FILEGROUP [account_2]   
  5. go   
  6. ALTER DATABASE [testxwj] ADD FILEGROUP [account_3]  
  7.  
  8. /*create file to filegroup*/  
  9.  
  10. ALTER DATABASE [testxwj] ADD FILE ( NAME = N'account_1', FILENAME = N'E:\account_1.ndf' , SIZE = 409600KB , FILEGROWTH = 20480KB ) TO FILEGROUP [account_1]  
  11.   GO  
  12. ALTER DATABASE [testxwj] ADD FILE ( NAME = N'account_2', FILENAME = N'E:\account_2.ndf' , SIZE = 409600KB , FILEGROWTH = 20480KB ) TO FILEGROUP [account_2]  
  13.  GO  
  14. ALTER DATABASE [testxwj] ADD FILE ( NAME = N'account_3', FILENAME = N'E:\account_3.ndf' , SIZE = 409600KB , FILEGROWTH = 20480KB ) TO FILEGROUP [account_3]  
  15. GO16 

2 使用ssis copy table

  1. sp_spaceused accountdetail; 

  1. /* delete EarnTime is not null*/   
  2.  
  3. /*23 sec*/   
  4. delete from accountdetail where EarnTime is null 
  5. /*26 sec*/   
  6. delete from accountdetail where isnull(CommitStatus,0)<1   
  7. /*12 sec*/  
  8. delete from accountdetail where  isnull(EarnStatus,0) =0 

对传输过来的表进行分区

  1. /*create partition function*/  
  2. declare @bdate char(8),@edate varchar(8),@sql varchar(500)   
  3. select   
  4. @bdate=convert(char(8),GETDATE()-1 ,112)   
  5. ,@edate=convert(char(8),GETDATE() ,112)   
  6. select @bdate,@edate;  
  7. set @sql='   
  8. CREATE PARTITION FUNCTION ac_EarnTime (datetime)  
  9. AS11 RANGE RIGHT FOR VALUES ( '''+@bdate+''' ,'''+@edate+''')'  
  10.  execute(@sql)  
  11. /*create partition schema*/  
  12. CREATE PARTITION SCHEME ac_schema_ac_EarnTime
  13. AS PARTITION ac_EarnTime TO (account_1,account_2,account_3);  
  14. /*create partition table */  
  15. alter table accountdetail  
  16. alter column EarnTime datetime not null;  
  17. alter TABLE accountdetail  
  18. add CONSTRAINT [PK_PARTITIONmis] PRIMARY KEY 
  19. (   id,EarnTime
  20.  )ON ac_schema_ac_EarnTime(EarnTime)

把分区partition 2指向给 dw 值得注意的是 accountdetail_dw 必须跟partition 2 分区所在同一个文件组

  1. /*switch accountdetail to accountdetail_dwl*/  
  2.  ALTER TABLE accountdetail SWITCH PARTITION 2 TO accountdetail_dw ;  
  3. /**/ 

整个过程在 5分钟内.数据仓库最重要的还在当初的设计和选型.

原文标题:当硬件成为瓶颈时怎么提高数据仓库的加载?

链接:http://www.cnblogs.com/xwj1985/archive/2010/08/19/1803272.html

【编辑推荐】

  1. 数据仓库及其体系结构建设
  2. 建立数据仓库的八条基本准则
  3. 成功实施数据仓库项目的七个步骤
  4. 动态数据仓库设计与应用浅谈
  5. 成功实施数据仓库项目的七个步骤

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...