通常,通过SSIS在本地SQL Server ETL工作流上,我们将数据从任何地方加载到登台表中,然后应用验证和转换将它们加载/合并到下游数据仓库表中。
我的问题是我们是否应该在Azure上做类似的事情,即在Azure SQL数据库中设置一组登台表和下游表,或者使用azure存储区作为登台并将数据通过ADF从那里移到最终的下游表中。 >
看起来很疯狂,我们还提出了一个建议,要使用ADF在它们之间建立单独的登台数据库和下游数据库。
答案 0 :(得分:3)
执行数据移动管道的模型有很多,没有一个是完美的。我将对常见的模式进行一些评论,以防万一有助于您对应用程序进行决策。
对于许多试图转储数据并创建维的数据仓库,通常会有一个过程,其中将原始源数据作为原始数据加载到其他一些数据库/表中,然后将其处理为您想要的格式插入事实和维度表。由于您可能迟到了数据或在一天后更正了数据,因此使该过程变得复杂,因此,通常使用目标事实表上的分区表来设计这些系统,以允许重新处理分区数据(例如一天)而不必重新处理整个事实表。此外,如果数据本身的格式与您要在DW中表示的格式相距甚远,则该暂存表上的转换过程可能会很繁琐。通常在本地系统中,这些数据在单独的数据库中处理(可能在同一SQL Server中),以将其与生产系统隔离。此外,有时可能会从原始源数据(CSV文件或类似文件)重新创建这些登台表,因此它不是该源材料的记录存储。这使您可以考虑在该数据库上使用简单恢复模式(与完全恢复相比,这减少了Log IO要求和恢复时间)。虽然不是每个DW都对已处理的DW数据使用完全恢复模式(因为存在管道,某些DW会对第二台计算机进行双重加载,但在SQL Server中使用完全恢复和物理日志复制(AlwaysOn可用性组)的功能可以使您在世界不同地区创建数据库的灾难恢复副本的灵活性。 (如果需要,您也可以在该服务器上查询读取横向扩展)。此基本模型有所不同,但是许多本地系统都具有类似的内容。
当您查看SQL Azure时,在考虑如何建立等效模型时有一些相似之处和重要区别:
要解决您的原始问题-您可以在SQL Azure上运行数据加载管道吗?是的你可以。与您在本地的现有经验相比,有一些警告,但是它可以起作用。公平地说,也有人直接从CSV文件或类似文件中加载而不使用暂存表。通常他们不做很多转换,因此YMMV根据您的需求。
希望有帮助。