博客
关于我
SQL Server 列存储索引 第四篇:实时运营数据分析
阅读量:755 次
发布时间:2019-03-23

本文共 1368 字,大约阅读时间需要 4 分钟。

SQL Server 列存储系列:实时运营数据分析(Real-time Operational Analytics)

传统的BI系统

在传统的BI系统中,运营数据库(OLTP)与数据仓库(DW)通常是分开设计的。这是因为在OLTP中处理的事务数据需要实时响应,而分析查询则经常需要大量的数据聚合和复杂计算。为了确保分析结果的准确性,通常采用ETL(Extract、Transform、Load)工具定期将数据从事务数据库同步到分析数据库。

数据同步的挑战

尽管ETL工具能够定期将数据从OLTP转移到DW,但数据同步不可避免地存在时延。这种时间差异意味着分析数据库中的数据可能与事务数据库存在一定的误差(GAP),从而导致分析结果的可靠性下降。此外,双存储(事务数据和分析数据)增加了存储与计算资源的占用,并要求更多的技术资源进行维护。

what is Real-time Operational Analytics?

传统BI系统之所以存在时间延迟的根本原因是分析查询与业务查询通常运行在同一数据源上。为了实现实时运营数据分析,可以在行存储表上创建可更新的非聚集列存储索引。这种设计通过在数据产生副本的同时,分别用于业务处理和分析工作,有效避免了两个工作负载之间的冲突。

ColumnStore索引的优势

在行存储表中创建非聚集列存储索引,可以为列数据提供高性能的访问方式。具体来说,这种索引会在底层存储一个完整的数据副本,用于高效执行分析查询。数据的更新自动同步到索引结构,确保分析查询始终使用最新的数据。在大多数情况下,非聚集列存储索引能够有效减少分析查询对事务处理的影响。

实施 Columns Store 索引

在实际应用中,创建非聚集列存储索引非常简单。只需在目标表中定义所需的列即可完成。以下是示例代码:

CREATE NONCLUSTERED COLUMNSTORE INDEX index_nameON table_name (column_list);

这种设计不仅支持实时运营数据分析,还显著提升了事务查询的性能。通过集成到OLTP环境中,非聚集列存储索引能够在不影响事务处理的前提下,提供实时的数据分析能力。

实时运营数据分析的挑战

尽管非聚集列存储索引能够为实时运营数据分析提供支持,但仍然面临一些挑战。第一,标准化的OLTP架构通常对表间连接和数据关系进行了严格规范,这对跨表分析查询的性能产生了一定的影响。第二,尽管可以通过非聚集列存储索引实现实时运营分析,但需要权衡分析性能与事务处理复杂度之间的关系。

提高实时运营数据分析性能的方法

延迟压缩技术是提升实时运营数据分析性能的有效手段之一。通过将新数据存储在delta存储区后,一定时间延迟后再对数据进行压缩存储,可以显著减少压缩存储对事务处理的影响。这种方法不仅提高了数据压缩的效率,还有助于优化事务查询的性能。

结论

实时运营数据分析通过在同一数据源上同时支持业务查询和分析查询,有效解决了传统BI系统中数据延迟和多存储带来的问题。虽然非聚集列存储索引的支持可能不如专用数据仓库那样高效,但其灵活性和与OLTP系统的成熟集成优势使其成为实时运营分析的理想选择。通过结合延迟压缩等优化技术,可以有效提升实时运营数据分析的整体性能,降低对事务系统的影响。

转载地址:http://sryzk.baihongyu.com/

你可能感兴趣的文章
MTTR、MTBF、MTTF的大白话理解
查看>>
mt_rand
查看>>
mysql -存储过程
查看>>
mysql /*! 50100 ... */ 条件编译
查看>>
mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
查看>>
mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
查看>>
mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
查看>>
mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
查看>>
MySQL 8.0 恢复孤立文件每表ibd文件
查看>>
MySQL 8.0开始Group by不再排序
查看>>
mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
查看>>
multi swiper bug solution
查看>>
MySQL Binlog 日志监听与 Spring 集成实战
查看>>
MySQL binlog三种模式
查看>>
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
查看>>
MySQL Cluster 7.0.36 发布
查看>>