search
HomeDatabaseMysql Tutorial 数据仓库(集市)之间共享维度表

经常有朋友问到一个问题:事实表和维度表是不是一定要在一个数据库里面呢? 为什么会有这样的问题呢?因为我们讲到,如果数据仓库足够大的话,可能会拆分为所谓的数据集市。而通常会按照所谓的业务模块的不同划分,例如人事管理的,销售管理,财务管理的等等

经常有朋友问到一个问题:事实表和维度表是不是一定要在一个数据库里面呢?

为什么会有这样的问题呢?因为我们讲到,如果数据仓库足够大的话,可能会拆分为所谓的数据集市。而通常会按照所谓的业务模块的不同划分,例如人事管理的,销售管理,财务管理的等等。

这样做看起来不错,美国空间,但随之而来又有一个问题了:这些数据库之间其实有点信息是共享的,例如员工信息。那么是不是每个数据集市中都要单独保存一份呢?

我想绝大部分情况下,如果每个数据集市都单独保存一份,这不是一个好的设计。一来数据是重复的,美国服务器,同时也带来了同步更新的问题。

那么,我们该如何跨数据库设计事实表和维度表的关系呢?事实上,只要你动手开始做,(而不仅仅是想),就会发现它并不是那么难

1. 下面的图,我展示了两个不同的数据。作为演示目的,我就是在HR数据库中建立了一个维度表DimEmployees,而在Sales数据库中建立了一个事实表FactSales。

image

很显然,我们不可能为他们在数据库内部设计好关系。但这又有什么问题呢?没有。数据仓库(或者数据集市)只是存数据,至于数据完整性的保证,我们还有其他很多方式(例如SSIS)来做。

2. 我们在设计Analysis Service项目的时候,需要添加两个数据源

image

image

 

3.同时,我们据此创建一个数据源视图

image

很多朋友都诧异地说,在这个对话框,我们显然是只能选择一个数据源的。是的,你没有看错。你在这个向导中,只需要选择任意一个数据源即可。我们要做的是,香港虚拟主机,先把这个数据源视图创建起来。

然后,就可以在数据源视图的空白处,点击右键,选择“添加/删除表…”

image

你会发现这里可以选择不同的数据源

image

4. 为这两个表创建关系,最终看到的效果如下

image

 

5. 创建Cube,设计维度,部署,处理,浏览

最后看到的效果如下

image

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does MySQL handle data replication?How does MySQL handle data replication?Apr 28, 2025 am 12:25 AM

MySQL processes data replication through three modes: asynchronous, semi-synchronous and group replication. 1) Asynchronous replication performance is high but data may be lost. 2) Semi-synchronous replication improves data security but increases latency. 3) Group replication supports multi-master replication and failover, suitable for high availability requirements.

How can you use the EXPLAIN statement to analyze query performance?How can you use the EXPLAIN statement to analyze query performance?Apr 28, 2025 am 12:24 AM

The EXPLAIN statement can be used to analyze and improve SQL query performance. 1. Execute the EXPLAIN statement to view the query plan. 2. Analyze the output results, pay attention to access type, index usage and JOIN order. 3. Create or adjust indexes based on the analysis results, optimize JOIN operations, and avoid full table scanning to improve query efficiency.

How do you back up and restore a MySQL database?How do you back up and restore a MySQL database?Apr 28, 2025 am 12:23 AM

Using mysqldump for logical backup and MySQLEnterpriseBackup for hot backup are effective ways to back up MySQL databases. 1. Use mysqldump to back up the database: mysqldump-uroot-pmydatabase>mydatabase_backup.sql. 2. Use MySQLEnterpriseBackup for hot backup: mysqlbackup--user=root-password=password--backup-dir=/path/to/backupbackup. When recovering, use the corresponding life

What are some common causes of slow queries in MySQL?What are some common causes of slow queries in MySQL?Apr 28, 2025 am 12:18 AM

The main reasons for slow MySQL query include missing or improper use of indexes, query complexity, excessive data volume and insufficient hardware resources. Optimization suggestions include: 1. Create appropriate indexes; 2. Optimize query statements; 3. Use table partitioning technology; 4. Appropriately upgrade hardware.

What are views in MySQL?What are views in MySQL?Apr 28, 2025 am 12:04 AM

MySQL view is a virtual table based on SQL query results and does not store data. 1) Views simplify complex queries, 2) Enhance data security, and 3) Maintain data consistency. Views are stored queries in databases that can be used like tables, but data is generated dynamically.

What are the differences in syntax between MySQL and other SQL dialects?What are the differences in syntax between MySQL and other SQL dialects?Apr 27, 2025 am 12:26 AM

MySQLdiffersfromotherSQLdialectsinsyntaxforLIMIT,auto-increment,stringcomparison,subqueries,andperformanceanalysis.1)MySQLusesLIMIT,whileSQLServerusesTOPandOracleusesROWNUM.2)MySQL'sAUTO_INCREMENTcontrastswithPostgreSQL'sSERIALandOracle'ssequenceandt

What is MySQL partitioning?What is MySQL partitioning?Apr 27, 2025 am 12:23 AM

MySQL partitioning improves performance and simplifies maintenance. 1) Divide large tables into small pieces by specific criteria (such as date ranges), 2) physically divide data into independent files, 3) MySQL can focus on related partitions when querying, 4) Query optimizer can skip unrelated partitions, 5) Choosing the right partition strategy and maintaining it regularly is key.

How do you grant and revoke privileges in MySQL?How do you grant and revoke privileges in MySQL?Apr 27, 2025 am 12:21 AM

How to grant and revoke permissions in MySQL? 1. Use the GRANT statement to grant permissions, such as GRANTALLPRIVILEGESONdatabase_name.TO'username'@'host'; 2. Use the REVOKE statement to revoke permissions, such as REVOKEALLPRIVILEGESONdatabase_name.FROM'username'@'host' to ensure timely communication of permission changes.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Atom editor mac version download

Atom editor mac version download

The most popular open source editor