schema - 雪花云数据仓库上的多个数据集市架构/建模
问题描述
语境 :
假设我们有多个数据集市(例如:人力资源、会计、营销……),并且它们都使用星型模式作为维度建模(Kimball 方法)。
问题 :
由于雪花云数据仓库架构消除了分离单独的物理数据集市/数据库以保持性能的需要。那么,在 Snowflake 上构建多个数据集市的最佳方法是什么?
为每个数据集市创建数据库?创建一个具有多个架构的数据库(EDW),每个架构都引用一个数据集市?
谢谢 !
解决方案
罗恩是正确的——答案取决于几件事:
- 如果有一致的维度,那么一个数据库和模式可能是要走的路
- 如果它们是完全非集成的数据集市,我会使用单独的模式甚至单独的数据库。它们都是 Snowflake 中的逻辑容器(而不是物理容器),具有可用于隔离用户的完全基于角色的访问控制。
真的 - 你今天是怎么做到的?这对您有用吗,或者您需要或想做的事情是您今天无法使用当前的物理设置完成的。您的 BI 工具如何设置安全性?它们是引用数据库名称还是仅引用模式名称?如果可以的话,尽量减少对数据管道和报告的更改,从而减少可能需要重构的东西(至少对于您的第一个 POC 或迁移而言)。
需要注意的一点是,使用 Snowflake,您可以轻松地进行跨数据库连接(即 database.schema.table)——您所需要的只是 SELECT 访问,因此即使您通过数据库 oyu 分隔集市,仍然可以进行跨集市必要时报告。
希望有帮助。
推荐阅读
- node.js - MongoError:将会话选项传递给另一个函数时不允许使用过期会话
- excel - 公式翻译问题 (#NAME?) 多语言用户
- javascript - AsyncStorage 不支持将 null/undefined 作为值传递。如果要删除值,请改用 .remove 方法。在本机反应
- reactjs - 如何使用 Semantic UI React 和钩子获取下拉列表的值
- android - 如何在尝试打开具有特定扩展名的文件时让 android os 建议一个颤振应用程序,例如:.torrent
- c++ - 在 Visual Studio 2019 中使用 std::vector 定义类时未解决的外部符号错误
- coldfusion - Coldfusion 保护管理部分问题
- google-apps-script - 如何在谷歌应用脚本中的网络应用中路由
- android - Android java - 暗模式实现
- azure-pipelines - 如何依赖于配置特定的作业以下载其相关的管道工件