博客
关于我
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/

你可能感兴趣的文章
MySQL 面试题汇总
查看>>
MySQL 面试,必须掌握的 8 大核心点
查看>>
MySQL 高可用性之keepalived+mysql双主
查看>>
MySQL 高性能优化规范建议
查看>>
mysql 默认事务隔离级别下锁分析
查看>>
Mysql--逻辑架构
查看>>
MySql-2019-4-21-复习
查看>>
mysql-5.6.17-win32免安装版配置
查看>>
mysql-5.7.18安装
查看>>
MySQL-Buffer的应用
查看>>
mysql-cluster 安装篇(1)---简介
查看>>
mysql-connector-java.jar乱码,最新版mysql-connector-java-8.0.15.jar,如何愉快的进行JDBC操作...
查看>>
mysql-connector-java各种版本下载地址
查看>>
mysql-EXPLAIN
查看>>
MySQL-Explain的详解
查看>>
mysql-group_concat
查看>>
MySQL-redo日志
查看>>
MySQL-【1】配置
查看>>
MySQL-【4】基本操作
查看>>
Mysql-丢失更新
查看>>