SQL Server集成服务中的SQL Azure

SQL Azure 是构建在SQL Server技术之上的关系型云端数据库服务。SQL Azure为用户提供了高可用性,可扩展和多租户的数据库服务。用户可以使用现有的T-SQL和关系型数据库知识与工具,在云端方便地构建自己的数据服务。

SQL Server集成服务(SQL Server Integration Services)作为SQL Server商务智能服务的一部分,可以为用户提供企业级的数据整合和数据转换的解决方案。SQL Server集成服务包含了丰富的内置工具,可以让用户实现快速的数据转换和整合。

用户在构建云端数据应用的过程中,往往需要整合来自不同数据端的数据,而端的变化越来越多元。在云端互动的过程中,端也需要根据各自的功能转换云中的数据以满足需求的变化。
使用SQL Server 2008 R2 集成服务所提供的数据流组件可以方便的实现云+端的数据整合和数据转换。下面我会就数据从端向云,和从云向端的整合和转换做一简单的介绍。

将端的数据向云整合和转换

我们使用SQL Server的样例数据库AdventureWorks作为端中的数据源,并将其中的[HumanResources].[Employee] 表整合到云中。打开SQL Server Business Intelligence Development Studio,创建一个新的Integration Services工程,并创建好如图1所示的包。

图1 端到云的集成服务包

编辑ADO NET Source组件使其指向本地的 [AdventureWorks].[HumanResources].[Employee]数据源。配置好以后我们做一个简单的数据转换,使用Derived Column组件为云中的数据表添加一个新列[Flag],并采用默认值为“I am in Cloud!”。

 
图2 编辑Derived Column组件

下面我们添加ADO NET Destination 组件和所使用的Connection Manager。打开ADO NET Destination的编辑器,如图3所示。

 
图3 ADO NET Destination编辑器

添加一个连接到云的Connection Manager,如图4所示,你会发现使用Ado.Net Provider配置一个到云的数据连接,和配置到普通数据源的连接并没有什么不同。


图4 配置ADO Net Destination Connection Manager

接下来,我们选择使用云中的一张新表[CloudEmployees] 作为数据目的输出。构建如图5所示的表结构。
  

图5 创建云中的数据表CloudEmployees

回到ADO NET Destination编辑器中,在编辑器的底部位置,我们可以注意到SQL Server 2008 R2为ADO NET Destination组件提供了Bulk Insert支持。用户如果勾选这项属性,将使集成服务的数据载入速度得到大大提升。

在简单配置列映射关系和错误处理等之后,我们可以运行集成服务包了。我们会发现由于Bulk Insert的支持,数据在很短的时间内就装载到了云端。使用SSMS(SQL Server Management Studio)连接到SQL Azure可以查询到如图6所示的结果。


图6 端到云集成服务包运行结果

将云中数据装载到端

我们使用刚刚装载过的SQL Azure中的数据,并将这些数据装载到本地的平面文件中。我们使用如图7的包。
 

图7 云到端的集成服务包

接下来我们配置OLE DB Source组件,同样的,我们发现配置到云的连接非常方便,配置好连接后,打开OLE DB Source的编辑器,我们选择使用T-SQL命令来获取数据,如图8所示。
 

图8 OLE DB Source编辑器

配置完列映射和错误处理之后,我们运行这个包,结果如图9所示。
 

图9 云到端集成服务包运行结果
 
经过上面两个实例的演示,大家对微软的SQL Azure和SQL Server集成服务应该有了更新的了解。SQL Server集成服务所提供的丰富的组件与工具,以及图形化创建解决方案的特点,使得云和端之间的数据整合与数据转换变得更加平滑和更加容易。如果您想知道更多关于SQL Azure和SQL Server集成服务的知识和技术,请继续关注SQL CRD博客吧。

SQLCRD软件工程师 赵明