- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我们的测试 DWH 服务器上,我们使用的是 Vertica Community Edition。我们对 ETL 过程和查询性能非常满意。
我们从几个来源(Informix、SQL Server、MySQL、Google Docs)导入数据,将其放在一个模式中,前缀为 bussinessProcessName_stage_
在 ETL 过程结束时,有许多名为 bussinessProcessName_fact 和 bussinessProcessName_dim_dimName 的表,只有少数 shared_dim_dimName。
是否需要在不同的模式或不同的数据库中分离这些表?同样的问题也适用于 DWH 内部的数据集市。
我们主要使用 star-schema,很少使用 show-flake,甚至还有一个平面设计的数据集市。
最佳答案
大多数数据库系统使用数据库级别作为最高的逻辑层次结构。但是,Vertica 只允许单个数据库同时运行。这意味着逻辑设计发生在模式级别。例如,传统的数据库系统可能有客户
和订单
等数据库。在 Vertica 中,这些将在模式级别识别。
逻辑组织和命名约定因组织而异。重要的是它是标准的并且始终如一地使用。您可能想要查看逻辑上适合的内容,并相应地对表进行分组。例如,每个业务流程名称都可以有自己的架构 (business_process_name.fact_table
)。更好的做法是明确而不是使用单一模式,即使您的表很少。如果将来您添加更多表,将更易于管理。
使用模式的另一个好处是便于管理。在执行备份或维护任务时,它们可以在架构级别执行。
关于database - 如何在物理/逻辑上分离集成层和数据仓库,是否有必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25085968/
我是一名优秀的程序员,十分优秀!