Azure 突触 (DWH) 中的关系
Relationships in Azure synapse (DWH)
我目前在 Azure 突触 DWH 工作,我有一些理论问题:
我如何在 table(Dim 和 Fact)之间建立关系,如果我想建立这些关系,我会有什么影响。
我读到要创建主键,我需要设置一个非集群 table,但这意味着什么?
Azure Synapse Analytics (ASA) 具有三个引擎:
- 无服务器 SQL 池(SQL 按需)
- 专用 SQL 池(Azure SQL 数据仓库的下一步)
- Apache Spark 池
None 目前支持数据库关系,截至目前。我怀疑你的意思是专用 SQL 池,只是为了确认它不支持 FOREIGN KEY
语法。关系更像是一个 OLTP 概念,在 ASA 等大数据平台中并不常见。
因此,您的选择是在下游或进口到您的仓库时强制执行这些关系。一种常见的方法是识别未知值并在导入时用 -1 / Unknown 值替换它们。这将确保您的键列中没有 NULL。
此外,在 Azure Analysis Services 表格模型或 Power BI 模型中加强下游关系。
如果您确实需要关系,那么根据您的数据量,您可能会考虑 Azure SQL 数据库,它支持高达 4TB 的数据量以及提供强大压缩的列存储索引。
我目前在 Azure 突触 DWH 工作,我有一些理论问题:
我如何在 table(Dim 和 Fact)之间建立关系,如果我想建立这些关系,我会有什么影响。
我读到要创建主键,我需要设置一个非集群 table,但这意味着什么?
Azure Synapse Analytics (ASA) 具有三个引擎:
- 无服务器 SQL 池(SQL 按需)
- 专用 SQL 池(Azure SQL 数据仓库的下一步)
- Apache Spark 池
None 目前支持数据库关系,截至目前。我怀疑你的意思是专用 SQL 池,只是为了确认它不支持 FOREIGN KEY
语法。关系更像是一个 OLTP 概念,在 ASA 等大数据平台中并不常见。
因此,您的选择是在下游或进口到您的仓库时强制执行这些关系。一种常见的方法是识别未知值并在导入时用 -1 / Unknown 值替换它们。这将确保您的键列中没有 NULL。
此外,在 Azure Analysis Services 表格模型或 Power BI 模型中加强下游关系。
如果您确实需要关系,那么根据您的数据量,您可能会考虑 Azure SQL 数据库,它支持高达 4TB 的数据量以及提供强大压缩的列存储索引。