Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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软件工程师 赵明