Sql 数据库中的暂存表与存储区域
通常,在通过SSI的本地SQL server ETL工作流中,我们从任何位置将数据加载到临时表中,然后应用验证和转换将其加载/合并到下游数据仓库表中 我的问题是,我们是否应该在Azure上做类似的事情,在Azure SQL数据库中有一组暂存表和下游表,或者使用Azure存储区域作为暂存,并通过ADF将数据从那里移动到最终的下游表中Sql 数据库中的暂存表与存储区域,sql,sql-server,azure-sql-database,azure-storage,azure-data-factory-2,Sql,Sql Server,Azure Sql Database,Azure Storage,Azure Data Factory 2,通常,在通过SSI的本地SQL server ETL工作流中,我们从任何位置将数据加载到临时表中,然后应用验证和转换将其加载/合并到下游数据仓库表中 我的问题是,我们是否应该在Azure上做类似的事情,在Azure SQL数据库中有一组暂存表和下游表,或者使用Azure存储区域作为暂存,并通过ADF将数据从那里移动到最终的下游表中 看起来很疯狂,我们也有一个建议,即使用ADF在单独的暂存数据库和下游数据库之间移动。有不同的数据移动管道模型,没有一个是完美的。我将对我看到的常见模式做一些评论,以帮
看起来很疯狂,我们也有一个建议,即使用ADF在单独的暂存数据库和下游数据库之间移动。有不同的数据移动管道模型,没有一个是完美的。我将对我看到的常见模式做一些评论,以帮助您对应用程序做出决策 对于许多试图暂存数据并创建维度的数据仓库,通常会有一个过程,将原始源数据作为原始数据加载到其他一些数据库/表中,然后将其处理为希望插入事实和维度表的格式。由于您可能会有数据延迟到达或数据在晚些时候更正,因此该过程变得复杂,因此这些系统通常使用目标事实表上的分区表来设计,以允许重新处理分区数据(例如一天),而无需重新处理整个事实表。此外,如果数据本身的形式与您希望在DW中表示数据的方式相去甚远,那么该暂存表上的转换过程可能会非常密集。通常在内部部署系统中,这些都在单独的数据库(可能在同一个SQL Server上)中处理,以将其与生产系统隔离。此外,有时这些暂存表可以从原始源数据(CSV文件或类似文件)重新创建,因此它不是该源材料的记录存储。这允许您考虑在该数据库上使用简单恢复模式(与完整恢复相比,它减少了日志IO要求和恢复时间)。虽然并非每个DW都对已处理的DW数据使用完全恢复模式(有些DW会将双负载加载到第二台计算机,因为有管道),但使用完全恢复和物理日志复制的能力(AlwaysOn可用性组)在SQL Server中,您可以灵活地在世界其他地区创建数据库的灾难恢复副本。(如果愿意,也可以在该服务器上进行查询读取扩展)。这个基本模型有很多变体,但许多内部部署系统都有类似的功能 当您查看SQL Azure时,在考虑如何建立等效模型时,存在一些相似之处和一些差异:
希望这能有所帮助。谢谢您详尽的回答。现在我将使用单独的暂存数据库。