DW中ODS的解释

转自:http://zh.wikipedia.org/wiki/ODS


ODS

维基百科,自由的百科全书
跳转至: 导航搜索

ODS英语Operational Data Store)是一种数据架构或数据库设计的概念,出现原因是来自于当需要集成来自多个系统的数据,结果又要给一或多个系统使用时。

集成来自多个系统的数据,应先创建数据模型(data model)。由于ODS并不属于特定的系统,因此其数据模型的设计应为主题导向式(subject-oriented),实现方法与数据仓库无异。为求快速建置以及呈现来源系统数据,实务上常见许多企业采取的做法是直接将来源系统的数据以类似复制的方式至来源系统以外的数据库,将它视为来源数据的复本,而没有进行真正的数据集成。

数据给多个系统使用的方法,包括可以将其包装成SOA的'服务'、进行分析或报表、也可以再将数据通过ETL的方式传送至其他系统。

相较于数据仓库ODS较偏向作业(operational)面的用途,通常数据有较频繁的更新以及较短的历史,但这主要是概念上的差异,实际建置时可以创建在同一平台上,由一份数据从事两种性质的服务。

目前数据仓库厂商提出了active data warehouse概念,基本上与ODS概念极为接近,亦即数据仓库厂商认为在其解决方案中除数据仓库外也包含ODS功能。


### ODS与数据仓库的区别 ODS(操作型数据存储)和数据仓库(Data Warehouse, DW)在数据管理和分析中扮演不同的角色,尽管两者在某些方面有相似之处,但它们在设计目标、数据特性和使用场景上有显著差异。 ODS主要用于支持战术型决策,它是一个面向主题的、集成的、可变的、当前的细节数据集合。ODS的数据处理技术允许接近实时地展示实体的状态,这意味着ODS中的数据是当前的,且能够快速响应业务需求的变化。ODS中的数据是易失的和可更新的,当新的数据流进ODS时,受其影响的字段会被新信息覆盖或更新,除了审计数据外,不保留其他的历史内容。此外,ODS中的数据几乎完全是细节数据,仅具有少量的动态聚集或汇总数据,通常设计成包含事务级的数据,即包含该主题域最低级别的数据。业务用户频繁地直接访问ODS进行日常操作和决策支持[^2]。 相比之下,数据仓库支持战略型决策,它是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合。数据仓库中的数据是历史的,用于支持长期的趋势分析和决策制定。数据仓库中的数据是静态的,一旦数据被加载到数据仓库中,通常不会进行更新,而是保留历史记录以供分析。数据仓库中的数据经过清洗、转换和整合,形成了一个一致的数据视图,用于支持复杂的查询和分析。数据仓库中的报表通常是在数据集市中完成的,而不是直接在数据仓库中生成[^3]。 ### ODS与数据仓库的架构设计 在实际应用中,ODS和数据仓库可以并行架构设计,形成优势互补。这种架构设计便于扩展,可以解决互联网公司遇到的快速变化、快速开发等特点。特别是对于那些刚刚创建数据团队,数据开发人员紧缺的公司,可以尝试使用这种数据架构解决问题。ODS和数据仓库各自承担不同的职责,ODS负责处理实时或近实时的数据需求,而数据仓库则专注于历史数据的存储和分析[^4]。 ### ODS层的数据仓库建模 在数据仓库项目中,ODS层通常作为数据仓库的过渡层,负责将原始数据从HDFS等存储介质中读取,并进行初步的处理和转换。ODS层的主要作用是将数据放入能够对数据进行操作的框架中,例如Hive。在ODS层,数据保持原貌不做任何修改,起到备份数据的作用;同时采用压缩技术减少磁盘存储空间;创建分区表以防止后续的全表扫描;创建外部表以确保数据的安全性和灵活性。这些措施有助于提高数据处理的效率和可靠性[^5]。 ### 示例代码 以下是一个简单的Hive表创建示例,展示了如何在ODS层创建外部表并使用分区和压缩: ```sql -- 创建外部表 CREATE EXTERNAL TABLE ods_table ( id INT, name STRING, timestamp TIMESTAMP ) PARTITIONED BY (dt STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE LOCATION '/user/hive/ods_table'; -- 添加分区 ALTER TABLE ods_table ADD PARTITION (dt='2023-10-01'); -- 使用压缩 SET hive.exec.compress.output=true; SET mapreduce.output.fileoutputformat.compress=true; SET mapreduce.output.fileoutputformat.compression.codec=org.apache.hadoop.io.compress.GzipCodec; ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值