NoETL | 数据虚拟化如何在数据不移动的情况下实现媲美物理移动的实时交付?

在我们之前的文章中,我们回顾了Denodo在逻辑数据仓库和逻辑数据湖场景中所使用的主要优化技术(具体内容请参阅之前的文章)。

数据架构 | 逻辑数据仓库与物理数据仓库性能对比_物理数仓、逻辑数仓-CSDN博客文章浏览阅读1.5k次,点赞33次,收藏28次。在逻辑数据湖和逻辑数据仓库方法中,数据虚拟化系统在多个数据源之上提供统一的查询访问和数据治理功能(见图1)。这些数据源通常包括一个或多个物理数据仓库、Hadoop 集群、SaaS 应用程序以及其他数据库。两种方法的主要区别在于:逻辑数据湖更强调 Hadoop 的作用,而逻辑数据仓库则更偏向传统的 BI(商业智能)流程。在“逻辑数据仓库”和“逻辑数据湖”方法中,数据虚拟化系统在多个数据源之上提供统一的报表与治理功能。_物理数仓、逻辑数仓 https://blog.csdn.net/Denodo/article/details/145004420?spm=1001.2014.3001.5501数据查询优化策略: 全聚合下推、分区剪枝、部分聚合下推以及动态数据迁移_查询 数据下推-CSDN博客文章浏览阅读1.5k次,点赞42次,收藏26次。关于数据虚拟化在逻辑数据仓库和逻辑数据湖架构中查询优化的实际应用示例。全聚合下推、分区剪枝、部分聚合下推以及动态数据迁移_查询 数据下推 https://blog.csdn.net/Denodo/article/details/145002597?spm=1001.2014.3001.5501数据湖与逻辑数据仓库的兴起:迈向 NoETL 数据虚拟化时代-CSDN博客文章浏览阅读1.6k次,点赞42次,收藏46次。逻辑数据仓库通过数据虚拟化技术,为企业提供了一种灵活、实时且高效的数据管理方案,帮助企业摆脱数据孤岛的困扰,提升跨部门协作的效率,并在竞争激烈的市场中保持敏捷性。 https://blog.csdn.net/Denodo/article/details/145014913?spm=1001.2014.3001.5501

我们还提供了真实数据,证明如果数据虚拟化系统为每个查询采用正确的优化技术,逻辑架构的性能可以媲美传统物理架构。

但是,数据虚拟化(DV)系统如何为每个查询选择合适的优化技术呢?

答案是基于成本的优化:针对一个查询,DV系统会生成一组候选执行计划,估算它们的成本,并选择成本估算最低的计划。

这听起来与关系数据库的查询优化方式非常相似。实际上,大多数DV系统(以及一些大数据厂商商业化的“数据虚拟化”扩展)依赖于传统的数据库成本估算方法,仅进行了微小调整。然而,这通常会导致较大的估算误差,因为传统方法设计用于单一系统场景,而数据虚拟化查询需要整合多个异构数据源的数据。而Denodo的成本估算过程从零开始设计,专门考虑了DV系统中查询执行的特性。

为了说明DV系统需要考虑的成本因素,图1和图2展示了一个查询的两个候选执行计划。该查询整合了存储在传统数据库中的产品数据与存储在并行数据库中的销售数据,目的是获取过去9个月中每个产品应用的最大折扣。折扣是通过从产品数据库中的“标价”减去销售数据库中的“售价”计算得出的。您无需深入了解这些计划的细节,只需了解DV系统中查询的候选计划由哪些执行步骤组成即可。

正如上述图表所示,DV系统中的查询计划通常包括以下步骤:

  1. 将查询下推到不同类型的数据源。例如,Denodo将查询下推到传统数据库(计划A和计划B的步骤1)和并行数据库(计划A的步骤3,计划B的步骤4)。在许多场景中,还可能涉及其他类型的数据源,如Hadoop集群或SaaS应用。
  2. 从数据源向DV系统传输数据。在上述示例中,这对应于计划A中的步骤2和4,以及计划B中的步骤2和5。
  3. 向数据源中插入数据。“动态数据移动”优化技术(计划B中使用)通过将一个小型数据集从一个数据源移动到另一个数据源的临时表中,在目标数据源内直接整合数据集。因此,估算此操作的成本需要考虑数据插入成本(计划B中的步骤3)。
  4. 在DV系统中后处理并整合部分查询结果(计划A中的步骤5)。

接下来,我们分析成功估算这些步骤成本所需的信息:

1. 数据统计信息

与关系数据库中的基于成本优化类似,DV系统需要参与查询的关系的统计信息。这些统计信息可用于估算每个查询计划步骤中输入数据的大小,这是影响成本的关键因素。

由于DV系统并未本地存储实际数据,因此无法像传统数据库那样生成统计信息。Denodo通过以下两种方式解决该问题:

  • 如果数据源自身维护统计信息(如大多数数据库),Denodo可以直接从数据源目录表中获取。
  • 如果数据源不维护统计信息或无法对外部程序开放,Denodo可以通过对数据源执行预定义查询来计算统计信息。

2. 索引和物理数据访问结构

DV系统需要了解数据源中的索引(或其他物理数据访问结构)信息。下推到数据源的查询性能可能因可用索引的不同而发生数量级变化。Denodo会自动从支持索引信息公开的数据源中获取相关信息(如大多数数据库),或允许用户在无法自动获取时手动声明。

3. 针对不同数据源的成本估算模型

为了估算下推到数据源的查询成本,DV系统需要针对每种类型的数据源建立不同的成本估算模型。不同数据源的性能差异可能非常大,仅靠简单的修正因子(例如假设并行数据库查询速度是常规数据库的n倍)远远不够。有些查询中,并行数据库的速度比传统数据库快数个数量级,而另一些查询中,差异可能很小甚至不存在。因此,准确的估算需要详细计算,充分考虑每个系统的查询执行机制。

此外,还需要考虑数据源硬件的一些特性。例如,在一个拥有96个处理核心的并行数据库上执行查询,与在只有48个处理核心的数据库上执行查询的成本完全不同。

数据插入成本(操作类型3)的差异也需要根据数据源类型单独考虑。

为此,Denodo为逻辑数据仓库/数据湖场景中常见的主要数据源类型(包括传统数据库、并行数据库和Hadoop集群)提供了特定的成本估算模型。

4. 数据传输速度

DV系统还需要考虑从每个数据源传输数据的相对速度。例如,从本地数据库获取10万行数据的成本与从SaaS应用(如Salesforce)获取相同数据的成本差异巨大。Denodo允许为不同数据源指定数据传输因子,以考虑DV系统与数据源之间的传输速率差异。

Denodo是市场上唯一能够综合考虑数据源索引、数据传输速率,以及并行数据库和大数据源查询执行模型的DV系统。一些传统数据库和大数据系统的“数据虚拟化扩展”甚至不考虑虚拟关系的统计信息。在没有这些关键信息的情况下,DV系统无法自动生成高效的执行计划。在最好的情况下,您不得不手动优化每个查询,这会显著增加成本并降低灵活性。而在无法手动调整查询的情况下(例如由BI工具生成的查询),您可能面临性能问题。

因此,我们的建议是:在评估DV供应商和大数据集成解决方案时,不要满足于笼统的“支持基于成本的优化”声明,而应深入了解这些方法所考虑的信息以及它们能够自动做出的决策,从而明确预期性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/68812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】Linux重要工具

Linux中一切皆文件💓💓💓 目录 ✨说在前面 🍋知识点一:Linux软件包管理器yum •🌰1. 什么是软件包 •🌰2. 查看软件包 •🌰3. 如何安装、卸载软件 🍋知识点二&#…

K8S-Pod资源清单的编写,资源的增删改查,镜像的下载策略

1. Pod资源清单的编写 1.1 Pod运行单个容器的资源清单 ##创建工作目录 mkdir -p /root/manifests/pods && cd /root/manifests/pods vim 01-nginx.yaml ##指定api版本 apiVersion: v1 ##指定资源类型 kind: Pod ##指定元数据 metadata:##指定名称name: myweb ##用户…

【C++】在线五子棋对战项目网页版

目录 1.Websocket 1.1.Websocket的简单认识 1.2.什么是轮询呢? 1.3.websocket协议切换过程 1.4.websocketpp库常用接口认识 1.5.websocketpp库搭建服务器流程 1.6.websocketpp库搭建服务器 2.mysqlclient库-接口认识 3.项目模块的划分: 4.项目…

pytest+playwright落地实战大纲

前言 很久没有更新博客,是因为在梳理制作Playwright测试框架实战相关的课程内容。现在课程已经完结,开个帖子介绍下这门课程(硬广, o(〃^▽^〃)o) 课程放在CSDN学习频道, 欢迎关注~ PyTestPl…

数据结构-ArrayList和顺序表

1.线性表 线性表是n个具有相同类型的数据元素所组成的有限序列,当n0时,线性表为一个空表。 常见的线性表:顺序表,链表,栈和队列... 线性表在逻辑上是线性结构,可以说是连续的一条直线。但是在物理结构上…

红外热成像之无人机载荷

电力巡检 相较于传统的人工电力巡线方式,无人机巡检能够在高空对人工难以达到或无法检测的设备进行检测,实现了电子化、信息化、智能化巡检,可以提高巡检的工作效率和应急抢险水平。 森林防火 无人机搭载红外光电系统能在森林高空进行全天候监…

linux tty 终端

linux tty 终端 一、终端二、终端的类型1、虚拟终端2、伪终端 pty3、串口终端4、控制终端 三、内核中的终端1、open2、write3、read1. 读取数据2. 数据返回3. 常见的 termios 四、编程实验 作者: baron 个人博客: baron-z.cn 基于网站原因csdn上面的图片有压缩, 如果不是很清楚…

在 vscode + cmake + GNU 工具链的基础上配置 JLINK

安装 JLINK JLINK 官网链接 下载安装后找到安装路径下的可执行文件 将此路径添加到环境变量的 Path 中。 创建 JFlash 项目 打开 JFlash,选择新建项目 选择单片机型号 在弹出的窗口中搜索单片机 其他参数根据实际情况填写 新建完成: 接下来设置…

智能建筑时代的核心选择——基于SAIL-RK3576核心板的AI边缘计算网关方案

随着智能建筑技术的不断发展,建筑设备正日益向“智慧化”迈进。传统的建筑管理系统往往依赖中央服务器和云端平台进行数据处理和控制,但在实时监控、安防及能耗管理等关键环节,延迟和数据安全问题依然存在。此外,物联网设备数量激…

python列表如何不重复

python列表不重复的方法: python内置的set()方法可以去掉列表里面重复的元素,调用该方法就可以让python列表不重复了 a [23, 15, 15, 56, 89, 89, 56] a set(a) print(a) 运行结果如下:

【Redis】事务的概念及用法

事务的概念及用法 什么是事务事务的操作开启事务(MULTI)执行事务(EXEC)中止事务(DISCARD)为事务提供检查(WATCH)取消对key的监控(UNWATCH) 为什么Redis不支持…

两份PDF文档,如何比对差异,快速定位不同之处?

PDF文档比对是通过专门的工具或软件,自动检测两个PDF文件之间的差异,并以可视化的方式展示出来。这些差异可能包括文本内容的修改、图像的变化、表格数据的调整、格式的改变等。比对工具通常会标记出新增、删除或修改的部分,帮助用户快速定位…

Flutter:搜索页,搜索bar封装

view 使用内置的Chip简化布局 import package:chenyanzhenxuan/common/index.dart; import package:ducafe_ui_core/ducafe_ui_core.dart; import package:flutter/material.dart; import package:get/get.dart; import package:tdesign_flutter/tdesign_flutter.dart;import i…

深度学习基础知识

深度学习是人工智能(AI)和机器学习(ML)领域的一个重要分支,以下是对深度学习基础知识的归纳: 一、定义与原理 定义:深度学习是一种使计算机能够从经验中学习并以概念层次结构的方式理解世界的机…

【Elasticsearch】腾讯云安装Elasticsearch

Elasticsearch 认识Elasticsearch安装Elasticsearch安装Kibana安装IK分词器分词器的作用是什么?IK分词器有几种模式?IK分词器如何拓展词条?如何停用词条? 认识Elasticsearch Elasticsearch的官方网站如下 Elasticsearch官网 Ela…

Ubuntu 24.04 LTS 通过 docker 安装 nextcloud 搭建个人网盘

准备 Ubuntu 24.04 LTSUbuntu 空闲硬盘挂载Ubuntu 安装 Docker DesktopUbuntu 24.04 LTS 安装 tailscale [我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。 安装 nextcloud 参考 Ubuntu24.04系统Docker安装NextcloudOnlyoffice _。 更…

ThinkPHP 8的多对多关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…

计算机网络 (53)互联网使用的安全协议

一、SSL/TLS协议 概述: SSL(Secure Sockets Layer)安全套接层和TLS(Transport Layer Security)传输层安全协议是工作在OSI模型应用层的安全协议。SSL由Netscape于1994年开发,广泛应用于基于万维网的各种网络…

React的应用级框架推荐——Next、Modern、Blitz等,快速搭建React项目

在 React 企业级应用开发中,Next.js、Modern.js 和 Blitz 是三个常见的框架,它们提供了不同的特性和功能,旨在简化开发流程并提高应用的性能和扩展性。以下是它们的详解与比较: Next、Modern、Blitz 1. Next.js Next.js 是由 Ve…

if_yellow_only_restart_upgrading_nodes_with_unassigned_replicas

目录标题 遇事不决,上githubif_yellow_only_restart_upgrading_nodes_with_unassigned_replicas问题分析如何解决并使集群恢复到正常状态1. **检查和分配未分配的副本分片**2. **查看节点日志**3. **检查资源配置**4. **手动升级节点**5. **修改 if_yellow_only_res…