admin 管理员组文章数量: 1086019
2024年4月14日发(作者:c++析构函数的作用)
热数据需要在内存中存储和处理,因此适合用缓存或内存数据库(如Redis
或SAP Hana)。AWS提供了ElastiCache服务,可生成托管的Redis或
Memcached环境。NoSQL数据库是面向高速但小规模记录(例如,用户会
话信息或物联网数据)的理想选择。NoSQL数据库对于内容管理也很有
用,可以存储数据目录。
01结构化数据存储
结构化数据存储已经存在了几十年,是人们最熟悉的数据存储技术。大多
数事务型数据库(如Oracle、MySQL、SQL Server和PostgreSQL)都是
行式数据库,因为要处理来自软件应用程序的频繁数据写入。企业经常将
事务型数据库同时用于报表,在这种情况下,需要频繁读取数据,但数据
写入频率要低得多。随着数据读取的需求越来越强,有更多的创新进入了
结构化数据存储的查询领域,比如列式文件格式的创新,它有助于提高数
据读取性能,满足分析需求。
基于行的格式将数据以行的形式存储在文件中。基于行的写入方式是将数
据写入磁盘的最快方式,但它不一定能最快地读取,因为你必须跳过很多
不相关的数据。基于列的格式将所有的列值一起存储在文件中。这样会带
来更好的压缩效果,因为相同的数据类型现在被归为一组。通常,它还能
提供更好的读取性能,因为你可以跳过不需要
的列。
我们来看结构化数据存储的常见选择。例如,你需要从订单表中查询某个
月的销售总数,但该表有50列。在基于行的架构中,查询时会扫描整个表
的50个列,但在列式架构中,查询时只会扫描订单销售列,因而提高了数
据查询性能。我们再来详细介绍关系型数据库,重点介绍事务数据和数据
仓库处理数据分析的需求。
(1)关系型数据库
RDBMS比较适合在线事务处理(OLTP)应用。流行的关系型数据库有
Oracle、MSSQL、MariaDB、PostgreSQL等。其中一些传统数据库已经
存在了几十年。许多应用,包括电子商务、银行业务和酒店预订,都是由
关系型数据库支持的。关系型数据库非常擅长处理表之间需要复杂联合查
询的事务数据。从事务数据的需求来看,关系型数据库应该坚持原子性、
一致性、隔离性、持久性原则,具体如下:
▪
原子性:事务将从头到尾完全执行,一旦出现错误,整个事务将会回滚。
▪
一致性:一旦事务完成,所有的数据都要提交到数据库中。
▪
隔离性:要求多个事务能在隔离的情况下同时运行,互不干扰。
▪
持久性:在任何中断(如网络或电源故障)的情况下,事务应该能够恢复到
最后已知的状态。
通常情况下,关系型数据库的数据会被转存到数据仓库中,用于报表和聚
合。
(2)数据仓库
数据仓库更适合在线分析处理(OLAP)应用。数据仓库提供了对海量结
构化数据的快速聚合功能。虽然这些技术(如Amazon Redshift、Netezza
和Teradata)旨在快速执行复杂的聚合查询,但它们并没有针对大量并发
写入进行过优化。所以,数据需要分批加载,使得仓库无法在热数据上提
供实时洞察。
现代数据仓库使用列式存储来提升查询性能,例如Amazon Redshift、
Snowflake和Google Big Query。得益于列式存储,这些数据仓库提供了非
常快的查询速度,提高了I/O效率。除此之外,Amazon Redshift等数据仓
版权声明:本文标题:详解数据存储的六种可选技术 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713087858a619232.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论