论文研读-数据共享-大数据流分析中的共享执行技术

Shared Execution Techniques for Business Data Analytics over Big Data Streams

大数据流分析中的共享执行技术

1、摘要

2020年的一篇共享工作的论文:商业数据分析需要处理大量数据流,并创建物化视图以便给用户实时提供分析结果。物化每个查询,并作为单独的查询执行计划进行持续刷新并不高效并且不可扩展。本文针对并行执行的多个查询,提出一个全局执行计划,并最大限度减少运算符之间的scan、运算和操作之间流动的记录数量。我们提出了用于创建和维护物化视图的共享执行技术,以支持业务数据分析查询。利用多个业务数据分析查询中的供行来支持大数据流的可扩展性和高效处理。本文重点介绍了用于选择谓词、分组、聚合计算的共享执行技术。介绍了全局执行计划如何在分布式流处理系统(INGA,构建在Storm之上)中运行。在INGA中,我们能够支持2500个物化视图,该视图通过利用查询之间的共享结构使用237个查询构建。能够使用深度为21的单个全局查询执行计划树来运行所有的237个查询。

思考:

其实就是将多个并行的查询执行计划合并成一个全局的执行计划。这里需要做到:1)识别出共有的部分;2)合并成全局执行计划;3)最后的执行结果如何分发给各个并行执行的SQL

2、思路

以下面的示例进行介绍,下面3个SQL进行并行执行。主要分为group by、where谓词和聚合操作。

63c9b1ffc267c009d360c661d86a1cd6.png

常规执行器下每个查询一个执行计划,输入流需要输入3次;而全局执行计划仅需要执行一次,即需要输入1次数据流。

39bd11bf295776fac24a9b3aa11068c0.png

图2中,将3个SQL整个到一个全局执行计划中,一次数据流输入,执行3个SQL。全局执行计划使用heap数据结构来表示,使用节点表示操作符。使用SubsetHeap表示谓词节点,group by/aggregate使用SupersetHeap表示。黄色节点是谓词,蓝色是group by。有下面两个定义:

1)SubsetHeap

和MinHeap类似,作为一个基于树的数据结构。SubsetHeap的root节点时一个空集,表示为∅:A是B的父节点,从而A是B的子集,这里指的是谓词,而非结果集

A = parent(B) ⇒ key(A) ⊂ key(B)

2)SupersetHeap

和MaxHeap类似。Root节点是一个全集U。A是B的父节点,从而B是A的子集。这里指group by列,而非结果集:

A = parent(B) ⇒ key(A) ⊃ key(B)

再次回到图2,从上述定义上来讲,country=’US’谓词是country=’US’ && country=’NY’的子集,所以country=’US’位于父节点。

从多个谓词的语义上来将,country=’US’的结果集大,可以在谓词country=’US’的基础上接着计算country=’NY’,这样就可以先计算出3个SQL的谓词公共部分,将其结果集共享;下一步在此结果集基础上计算3个SQL的其他部分。

对于group by/agg:group by advertiser_id,insertion_order_id的列包含group by advertiser_id分组列,所以他是父节点。从结果集上讲,group by advertiser_id的结果可以在group by advertiser_id,insertion_order_id基础上接着计算,这就为group by共享计算做好了基础。

从图2中可以看到,3个SQL整个成一个SQL执行计划,先计算谓词公共部分,然后计算更深一层的谓词公共部分,接着在谓词计算基础上计算group by公共部分,最后输出结果。

如此,做到一次数据流输入,一次执行计划的执行,完成3个SQL语句。

缺陷:严格来说,这3个SQL语句并不是真正并行执行,而是挑出公共部分按照全局执行计划依次执行各个节点。有可能其中一个SQL非常简单,在全局执行计划的分支位置正好使得他是最后执行的分支,这样其他SQL就会拖累他。

3、论文

https://www.cs.purdue.edu/homes/aref/IDAS/ssdbm2020-pdfa.pdf

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

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

相关文章

Centos7安装wps无法打开及字体缺失的问题解决

在centos7上安装了最新的wps2019版本的wps-office-11.1.0.11704-1.x86_64.rpm,生成了桌面图标并信任,可以新建文件,但是软件无法打开。在终端执行如下命令,用命令行启动wps: cd /opt/kingsoft/wps-office/office6/ ./…

Learn Prompt- Midjourney 图片生成:基本设置和预设

/settings指令为模型版本、样式值、质量值和升级器版本等常用选项提供切换按钮。 备注 添加到提示末尾的参数将覆盖/settings中的设置。 模型版本​ 1️⃣ MJ Version 12️⃣ MJ Version 23️⃣ MJ Version 34️⃣ MJ Version 45️⃣ MJ Version 5🌈 Niji Mode&a…

zerotier-client

title: “zerotier-client” createTime: 2022-10-10T11:50:5108:00 updateTime: 2022-10-10T11:50:5108:00 draft: false author: “zcb” tags: [“zerotier-plant”,“zerotier-client”,“zerotier”] categories: [“zerotier”] description: “测试的” 1.windows 1.1…

存储管理详解

目录 存储管理(1) 第一节 存储管理概述(内存管理) 一、存储体系 二、存储管理的任务 三、地址转换 存储管理(2) 第二节 分区管理方案 一、固定分区 二、可变分区 三、分区管理方案的优缺点 第…

人类的态势感知可分为先验、似然、后验的三部分

人类的态势感知可以分为先验、似然和后验三个部分。这些部分描述了在不同阶段对环境的感知和理解。先验感知:先验感知基于先前的知识、经验和先验信息来理解环境。它利用已有的知识和模型,进行预测和推断,从而形成对当前环境的初步认知。先验…

Qt5开发及实例V2.0-第二十一章-Qt.Quick Controls开发基础

Qt5开发及实例V2.0-第二十一章-Qt.Quick Controls开发基础 第21章 Qt Quick Controls开发基础21.1 Qt Quick Controls概述21.1.1 第一个Qt Quick Controls程序21.1.2 Qt Quick窗体应用程序的构成 21.2 Qt Quick控件21.2.1 概述21.2.2 基本控件21.2.3 高级控件21.2.4 样式定制 2…

通过插件去除Kotlin混淆去除 @Metadata标记

在Kotlin中,Metadata是指描述Kotlin类的元数据。它包含了关于类的属性、函数、注解和其他信息的描述。Metadata的作用主要有以下几个方面: 反射:Metadata可以用于在运行时获取类的信息,包括类的名称、属性、函数等。通过反射&…

Spring面试题5:面试官:为什么说Spring是一个容器?如何给Spring容器提供配置元数据?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:为什么说Spring是一个容器? Spring被称为一个容器,是因为它提供了一个运行环境和管理机制,用于管理应用程序中的对象的生命周期和依赖关系。 …

多维时序 | MATLAB实现WOA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现WOA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制) 目录 多维时序 | MATLAB实现WOA-CNN-LSTM-Attention多变量时间序列预测(SE注意力机制)预测效果基本描述模型描述程序设计参考资料 预测效果 基本描…

STL-函数对象、谓词、常用算法

函数对象 函数对象概念 重载函数调用操作符的类,其对象常称为函数对象 函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 函数对象使用…

嵌入式单片机上练手的小型图形库

大家好,今天分享一款小型的图形库。 Tiny Graphics Library: http://www.technoblogy.com/show?23OS 这个小型图形库提供点、线和字符绘图命令,用于 ATtiny85 上的 I2C 128x64 OLED 显示器. 它通过避免显示缓冲器来支持RAM有限的处理器&…

tcpdump常用命令

需要安装 tcpdump wireshark ifconfig找到网卡名称 eth0, ens192... tcpdump需要root权限 网卡eth0 经过221.231.92.240:80的流量写入到http.cap tcpdump -i eth0 host 221.231.92.240 and port 80 -vvv -w http.cap ssh登录到主机查看排除ssh 22端口的报文 tcpdump -i …

银行家算法——C语言实现

算法思路 将操作系统看作是银行家,操作系统所拥有的资源就相当于银行家所拥有的资产,进程向操作系统申请资源就相当于资产家向银行贷款,规定资产家在向银行贷款之前,先申明其所贷数额的最大值,申明之后其贷款的数额不…

数据结构与算法-时间复杂度与空间复杂度

数据结构与算法 🎈1.概论🔭1.1什么是数据结构?🔭1.2什么是算法? 🎈2.算法效率🔭2.1如何衡量一个算法的好坏?🔭2.2算法的复杂度🔭2.3时间复杂度📖2…

软件设计师考试学习2

数据结构与算法基础 数组 稀疏矩阵 用代入法计算,A 数据结构的定义 非线性结构分为树和图,区别在于有没有环路 顺序表与链表 引入头节点可以使所有的节点处理方式一致 如果没有空的头节点,头节点需要单独处理 顺序存储与链式存储 查找…

AI-Chat,一款集全网ai功能的应用(附下载链接)

AI-Chat是一款综合性的聊天机器人,集成了多种先进的模型和功能。它采用了GPT4.0、联网版GPT和清华模型等多种模型,使得其具备更强大的语言处理能力。同时,AI-Chat还融合了AI绘画模型,例如Stable Diffusion绘画、文生图、图生图、艺…

基于下垂控制的并网逆变器控制MATLAB仿真模型

微❤关注“电气仔推送”获得资料(专享优惠) 主要模块: 建议使用MATLAB2021b及以上版本打开! 功率计算模块、下垂控制模块、电压电流双环控制模块、虚拟阻抗压降模块 扰动设置: 在0.5秒到2秒始端设置0.25Hz的电网频…

手机上网流程解析

来看一个手机开机之后上网的流程,这个过程称为 Attach。可以看出来,移动网络还是很复杂的。因为这个过程要建立很多的隧道,分配很多的隧道 ID,所以我画了一个图来详细说明这个过程。 1、手机开机以后,在附近寻找基站 e…

Hadoop源码阅读(三):HDFS上传

说明: 1.Hadoop版本:3.1.3 2.阅读工具:IDEA 2023.1.2 3.源码获取:Index of /dist/hadoop/core/hadoop-3.1.3 (apache.org) 4.工程导入:下载源码之后得到 hadoop-3.1.3-src.tar.gz 压缩包,在当前目录打开Pow…

2023华为杯数学建模竞赛E题

一、前言 颅内出血(ICH)是由多种原因引起的颅腔内出血性疾病,既包括自发性出血,又包括创伤导致的继发性出血,诊断与治疗涉及神经外科、神经内科、重症医学科、康复科等多个学科,是临床医师面临的重要挑战。…