我正在尝试将我们的生产数据传输到数据仓库以进行报告。我已经尝试遵循SSIS for Azure and Hybrid Data Movement中的“导入到联合”部分,但我需要将数据从联合移动到数据仓库。我还在SQL Server Central找到了一个很好的资源,但我似乎仍然无法在数据流向导中调出联合表。我也不能在 ODBC(SQL Azure DB 所需的连接类型)源向导的 SQL 命令中添加 Use FedDB 语句。
1 回答
我构建了一个原型包,基于我对垂直分片的假设(相同的模式分布在多个实例中)
您要做的是创建一个 ADO.NET 连接管理器并作为提供者,选择“.Net Providers\Odbc 数据提供者”。
连接字符串将如下所示。正如您提供的第一个链接所示,请确保您已授权 IP 并指定Database
Driver={SQL Server Native Client 11.0};Server=tcp: abcdefghi.database.windows.net;Database=romulus;
控制流
我设置了一个Foreach 循环容器,以便我可以枚举我的联合中的所有实例。每次通过循环都会生成到当前实例的连接字符串。我将其分配给字符串类型的变量SourceConnectionString
。
然后,我在 ADO.NET 连接管理器上设置了一个表达式,将ConnectionString
属性设置为@[User::SourceConnectionString]
. 这将确保我们的连接在枚举期间实际发生变化。
数据流
数据流通过严格控制源和目标周围的元数据来获得其性能。您需要为每个需要处理的表创建一个数据流。有一些并行运行多个数据流的策略,我在这里不做说明。我确信 Andy Leonard 在您已经找到的集成服务阶梯系列中对此进行了介绍。
正如您在链接的 SSC 文章中看到的那样,我已经构建了我的结构
对于源组件,您基本上可以使用 OLE DB 或 ADO.NET 组件。由于我们使用的是 Azure,因此我们需要“ADO NET Source”组件。
查找组件可以使用 OLE DB 连接管理器或缓存连接管理器。由于您正在推送到本地(在我的屏幕截图中拼写错误)实例,您可以使用 OLE DB 连接管理器来处理您的查找。
真的,除了来源和通过联邦的枚举之外,这个答案与文章中的内容几乎没有什么区别。