亲爱的社区,希望标题能为您提供我想谈论/需要的建议的提示。
我是一名BI开发人员,在大型BI项目上有3年的经验-当我在IBM工作时,有些涉及医疗行业,有些涉及金融行业。在我目前的工作中,我来到一家初创公司,该公司具有用于该产品的可运营数据库,数据位于SQL Server数据库上。
[4个月来,我一直为前任所付出的一切而扑朔迷离,现在我准备好进行下一步-为DWH DB建模操作数据库表,以便能够提取和使用数据进行分析和BI用途。
我根本没有任何资源,因此我将首先在运营数据库上构建DWH,然后我的愿景是,在我从CTO获得资源后,DWH将在Snowflake DB上。
建模问题:当我处理数据建模问题时,我遇到了一些困惑,即对数据建模的正确方法感到困惑,这是我熟悉的传统方法,但是有Cloud DWH建模和混合方法。我的模型需要灵活,数据提取速度必须非常快。
为分析目的而存储和提取数据的最佳方法是什么?具有很多维度的事实表-规范化方法要么将我需要的所有有关粒度的数据放在同一张表中(考虑未来,迁移到Snowflake),我将有几张表,每张表都是一个粒度及其世界。
我只是想听听你们中的一些人在您公司中实施的内容,如果您有建议或UC可以分享,我在网上搜索了很多,我看到的是很多有偏见的信息,非常令人困惑-没有人真的在说什么在现实世界中起作用。
提前感谢!
标准化的两个关键点是减少磁盘空间使用并优化数据检索;两者在Snowflake中都无关紧要。存储很便宜。最好的是,数据库是经过自我优化的-更糟糕的情况是,您可能必须在非常大的表上设置集群键(请参阅:https://docs.snowflake.net/manuals/user-guide/tables-clustering-keys.html)
我发现具有许多列的大表比具有联接的许多小表的性能更好。例如,在具有1000万行的平板上进行测试时,设置了聚类键;它比获得相同的结果集快了180%,但模型/多表更为复杂。
如果您期望大量写回并且需要更改对象级别,那么您仍然应该考虑规范化-但在这种情况下,最好使用星型模式。
这些模型示例中的任何一个您已经浏览过?
Snowflake Analytics的所有资源https://resources.snowflake.com/analytics-去年峰会的资源:https://resources.snowflake.com/snowflake/learn-how-to-accelerate-analytics-at-snowflake-summit