微批量更新的Azure SQL DWH设计

时间:2019-03-25 02:51:50

标签: azure azure-sqldw

对于使用Azure SQl DWH进行数据库设计,我只需要一个意见

这是当前情况:

我们正在使用Azure SQL DWH构建DWH系统,其来源来自Timeseries DB,该数据库每15秒捕获一次与Sensor相关的信息。现在,我们每隔2分钟运行一次数据块集群,该集群将这些数据聚合并将其存储在Fact表中。 对于所有事实表,我都保留索引类型:具有Round Robin分布的集群列存储索引

类似地,我们的Dimension表是从Service bus主题填充的。这些主题将接收所有的“插入/更新/删除”记录,这些记录是在Azure Web作业的帮助下捕获的,Azure Web作业不断合并这些主题并在维表中进行必要的输入。

对于所有维表,我都保留索引类型:具有Round Robin分布的聚簇索引(用于业务键)。

您认为这对于Azure SQl DWH来说是一个很好的设计,因为该记录正在以小批量方式在目标中更新。另外,使用直接查询模式在DWH中的那些表上运行某些Power BI报表,以进行近实时分析。

请建议是否有其他替代方法

1 个答案:

答案 0 :(得分:2)

通过将Fact分布更改为HASH(),将Dimension分布更改为Replicate,您将获得更好的性能。

轮循表将在后续查询中强制重新分配,并且复制将避免在联接之前对跨节点数据进行重新排序。