我的数据仓库有雪花模式,我正在尝试为此模式创建一个多维数据集。但我不知道如何添加子维度。我是新手,我对层次结构和层次感到困惑。这是我的数据仓库:
ratings-fact_table ----> books_dm ----> authors
rating_id book_id author_id
book_id author_id
user_id publisher_id ----> publishers
publisher_id
|
users_dm ----> cities ---------> countries
user_id city_id country_id
city_id country_id
请帮忙!
答案 0 :(得分:4)
我猜你的数据仓库是建立在一些关系数据库(MySQL等)之上的。您可以通过在数据库中创建 SQL视图手动将雪花模式转换为星型模式来解决此问题。然后在您的OLAP架构中,您将使用这些表:
ratings-fact_table
books_dm_view
users_dm_view
其中:
books_dm_view
是SQL视图:
CREATE VIEW books_dm_view AS
SELECT * FROM books_dm b
LEFT JOIN authors a ON b.author_id = a.author_id
LEFT JOIN publishers p ON p.publisher_id = b.publisher_id
users_dm_view
是SQL视图:
CREATE VIEW users_dm_view AS
SELECT * FROM users_dm u
LEFT JOIN cities c ON c.city_id = u.city_id
LEFT JOIN countries n on n.country_id = c.country_id`
这样,您的维度没有子维度,您无需在OLAP架构中使用额外的联接。