“
阿里巴巴大数据之路那本书上,全是举的电商的例子,如果不是电商怎么做,有点靠个人理解。
任何脑力工作除了技术的部门,也有艺术的部分。在大数据开发的世界里,数据仓库设计是一门艺术,而这门艺术分为两种流派:统一行业标准和非统一行业标准。
今天,我们通过对比这两种标准的特点,来探索它们的差异,并通过一个生动的例子让大家更好地理解。
”

01
—
统一行业标准
统一行业标准的特点在于规范和一致性。无论是数据模型还是表结构,整个行业基本上是相似的。这样的设计带来了许多好处:
易于理解和维护:由于行业内的数据结构相似,不同公司的数据仓库在设计和维护上都比较简单。
数据交换和整合方便:统一的数据标准使得不同系统之间的数据交换变得容易。
成熟的最佳实践:由于使用统一标准,行业内积累了大量的最佳实践,可以直接应用。
示例:电子商务行业

在电子商务行业,数据结构相对统一,典型的表结构包括用户表、订单表和商品表。
-- 用户表CREATE TABLE users (user_id INT PRIMARY KEY,user_name VARCHAR(50),register_date DATE,last_login DATE);-- 订单表CREATE TABLE orders (order_id INT PRIMARY KEY,user_id INT,order_date DATE,total_amount DECIMAL(10, 2),FOREIGN KEY (user_id) REFERENCES users(user_id));-- 商品表CREATE TABLE products (product_id INT PRIMARY KEY,product_name VARCHAR(100),category VARCHAR(50),price DECIMAL(10, 2));
02
—
非统一行业标准
灵活性高:能够根据具体业务需求进行定制,满足特定需求。
适应性强:对于快速变化的业务环境,能够快速调整和扩展数据结构。
创新空间大:没有统一标准的约束,可以根据业务需求进行创新。
示例:共享单车行业
共享单车行业的业务需求复杂多变,表结构也随之灵活多样。这里只是举一个例子,但相比电商行业,该行业相关资料很少。

-- 用户表CREATE TABLE users (user_id INT PRIMARY KEY,user_name VARCHAR(50),register_date DATE,last_login DATE);-- 单车表CREATE TABLE bikes (bike_id INT PRIMARY KEY,bike_type VARCHAR(20),status VARCHAR(10),last_maintenance DATE);-- 骑行记录表CREATE TABLE rides (ride_id INT PRIMARY KEY,user_id INT,bike_id INT,start_time TIMESTAMP,end_time TIMESTAMP,start_location VARCHAR(100),end_location VARCHAR(100),FOREIGN KEY (user_id) REFERENCES users(user_id),FOREIGN KEY (bike_id) REFERENCES bikes(bike_id));
需求保留期限
在数据保留期限方面,两种行业标准也有不同的考虑。在统一行业标准中,由于数据需求较为固定,保留期限通常较长。而在非统一行业标准中,由于业务变化快,保留期限通常较短。例如,共享单车行业的数据需求不需要看太久,30天的数据通常已经足够。
-- 定期清理超过30天的骑行记录DELETE FROM rides WHERE end_time < NOW() - INTERVAL '30 days';
03
—
小结
通过对比统一行业标准和非统一行业标准,我们可以发现每种设计都有其独特的优势和适用场景。
电子商务行业由于其业务稳定性和标准化,更适合统一行业标准的设计。而共享单车行业则由于其业务的多变性和灵活性,更适合非统一行业标准的设计。
无论是哪种设计,关键是要根据具体业务需求进行合理的选择和调整。
希望这篇文章能让你对数据仓库设计有一个更清晰的认识,同时在实际工作中应对各种挑战时游刃有余。记住,数据仓库设计不仅是一门技术,更是一门艺术!如果觉得本篇文章对你有用,不妨也可以关注一下我的专栏,专栏具体地址如下图所示,里面文章更精彩

往期精彩




