Context 和 Alias 哪个更有用?
Which of Context and Alias is more useful?
在表链接过程中,我们将有循环,这将导致报告中出现重复记录,因此为了克服,我们使用 Context
和 Alias
.
据我所知,两者的作用相同,但两者之间有什么区别,哪个更有效。
我知道的一件事是别名创建了更多表,但所有表都是逻辑结构,所以别名在上下文中更有用吗?
这有点像在问,哪个工具更有用:扳手还是螺丝刀?这取决于手头的任务。
别名创建额外的逻辑 table 是正确的。有时这是理想的方法,但并非总是如此。
我处理这个问题的一种方法是首先确定一个物理维度是否有多个逻辑维度。
例如,考虑具有两个日期键的事实 table:transaction_dt_key
、completed_dt_key
。这两个都与 date_dim
table 中的 date_key
字段相关联。当然,如果您要将两个事实字段连接到 date dim table,您会创建一个循环。在这种情况下,别名是合适的——您可以为 dim table 添加别名,将事实键连接到原始和别名 table,然后创建一个与别名 table 关联的新对象.
查看此示例的另一种方式是,交易日期和完成日期是两个不同的事物。因此,用两个不同的对象来表示它们是合适的,因此这将通过别名来实现。
在这方面,Universe 中的设计将更接近数据集市的 逻辑 设计,而不是其 物理 设计.
另一方面,当同一维度 table 与多个事实 table 相关联时,上下文很有用。
考虑这个例子:模型有
customer_dim
store_dim
sales_fact
returns_fact
两个事实 table 都有一个 customer_id
和 store_id
字段。连接所有键将创建一个循环。在这种情况下,一个上下文是合适的——一个上下文包含 sales_fact
和两个 dims,另一个上下文包含 returns_fact
和两个 dims。
它们都用于控制宇宙中循环的一般目的。
就个人而言,我在同一个宇宙中都使用过它们。它们可以是互补的。
我完全同意乔的解释和例子。
由于可以在模型上物理地看到别名,因此维护起来比上下文更容易。
在表链接过程中,我们将有循环,这将导致报告中出现重复记录,因此为了克服,我们使用 Context
和 Alias
.
据我所知,两者的作用相同,但两者之间有什么区别,哪个更有效。
我知道的一件事是别名创建了更多表,但所有表都是逻辑结构,所以别名在上下文中更有用吗?
这有点像在问,哪个工具更有用:扳手还是螺丝刀?这取决于手头的任务。
别名创建额外的逻辑 table 是正确的。有时这是理想的方法,但并非总是如此。
我处理这个问题的一种方法是首先确定一个物理维度是否有多个逻辑维度。
例如,考虑具有两个日期键的事实 table:transaction_dt_key
、completed_dt_key
。这两个都与 date_dim
table 中的 date_key
字段相关联。当然,如果您要将两个事实字段连接到 date dim table,您会创建一个循环。在这种情况下,别名是合适的——您可以为 dim table 添加别名,将事实键连接到原始和别名 table,然后创建一个与别名 table 关联的新对象.
查看此示例的另一种方式是,交易日期和完成日期是两个不同的事物。因此,用两个不同的对象来表示它们是合适的,因此这将通过别名来实现。
在这方面,Universe 中的设计将更接近数据集市的 逻辑 设计,而不是其 物理 设计.
另一方面,当同一维度 table 与多个事实 table 相关联时,上下文很有用。
考虑这个例子:模型有
customer_dim
store_dim
sales_fact
returns_fact
两个事实 table 都有一个 customer_id
和 store_id
字段。连接所有键将创建一个循环。在这种情况下,一个上下文是合适的——一个上下文包含 sales_fact
和两个 dims,另一个上下文包含 returns_fact
和两个 dims。
它们都用于控制宇宙中循环的一般目的。 就个人而言,我在同一个宇宙中都使用过它们。它们可以是互补的。 我完全同意乔的解释和例子。 由于可以在模型上物理地看到别名,因此维护起来比上下文更容易。