首页 文章

使用SSIS将SQL Azure联合数据库提取到数据仓库

提问于
浏览
2

我正在尝试将 生产环境 数据传输到数据仓库以进行报告 . 我已经尝试了SSIS for Azure and Hybrid Data Movement中的"Importing to Federations"部分,但是我需要将数据从我的联合移动到数据仓库 . 我也在SQL Server Central找到了一个很好的资源,但我仍然无法在数据流向导中显示联合表 . 我也不能在ODBC(SQL Azure DB所需的连接类型)源向导中的SQL命令中添加Use FedDB语句 .

1 回答

  • 2

    我 Build 了一个原型包,基于我对垂直分片的假设(相同的模式分布在多个实例中)

    您要做的是创建ADO.NET连接管理器,并选择“.Net Providers \ Odbc Data Provider”作为提供程序 .

    连接字符串将如下所示 . 如您提供的第一个链接所示,请确定您已授权IP并指定了 Database

    Driver={SQL Server Native Client 11.0};Server=tcp: abcdefghi.database.windows.net;Database=romulus;
    

    控制流程

    Control Flow

    我有Foreach Loop Container设置,以便我可以枚举我的联邦中的所有实例 . 每次循环都会生成到当前实例的连接字符串 . 我将它分配给一个String类型的变量 SourceConnectionString .

    然后,我在ADO.NET连接管理器上设置了一个Expression,将 ConnectionString 属性设置为 @[User::SourceConnectionString] . 这将确保我们的连接在枚举期间实际发生变化 .

    数据流

    数据流通过严格标记源和目标周围的元数据来获得其性能 . 您需要为每个需要与之竞争的表创建数据流 . 有并行运行多个数据流的策略,我在这里没有提到 . 我相信Andy Leonard会在你已经找到的他的Stairway to Integration Services系列中介绍它 .

    我已经在链接的SSC文章中看到了我的结构

    Data Flow

    您的源组件基本上是OLE DB或ADO.NET组件 . 由于我们正在使用Azure,因此我们需要“ADO NET Source”组件 .

    查找组件可以使用OLE DB连接管理器或缓存连接管理器 . 由于您要推送到本地(在我的屏幕截图拼写错误)实例,您可以使用OLE DB连接管理器来处理您的查找 .

    实际上,除了联邦的来源和枚举之外,这个答案和文章中的内容之间几乎没有什么区别 .

相关问题