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

news2024/11/19 3:24:10

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.coloradmin.cn/o/1035820.html

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

相关文章

FPGA——UART串口通信

文章目录 前言一、UART通信协议1.1 通信格式2.2 MSB或LSB2.3 奇偶校验位2.4 UART传输速率 二、UART通信回环2.1 系统架构设计2.2 fsm_key2.3 baud2.4 sel_seg2.5 fifo2.6 uart_rx2.7 uart_tx2.8 top_uart2.9 发送模块时序分析2.10 接收模块的时序分析2.11 FIFO控制模块时序分析…

java框架-Spring-事务

配置 配置事务管理器方法: Beanpublic PlatformTransactionManager platformTransactionManager(){return new DataSourceTransactionManager();}原理

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

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

postman 自动升级后恢复collection数据

一、今天postman 自动升级了,导致一定要注册账号才能使用,登录账号后,发现之前的数据全部没有了。 找到目录:C:\Users\{{用户名}}\AppData\Roaming\Postman重新导入即可。 二、关闭自动更新:修改host,C:\W…

力扣-217.存在重复元素

Method 1 先对整个数组进行排序&#xff0c;然后从前往后开始遍历&#xff0c;判断前一个数 是否跟相邻的数相等 AC Code class Solution { public:bool containsDuplicate(vector<int>& nums) {sort(nums.begin(),nums.end());int front nums[0];for( int i 1; i…

Selenium自动化测试 —— 通过cookie绕过验证码的操作!

验证码的处理 对于web应用&#xff0c;很多地方比如登录、发帖都需要输入验证码&#xff0c;类型也多种多样&#xff1b;登录/核心操作过程中&#xff0c;系统会产生随机的验证码图片&#xff0c;进行验证才能进行后续操作 解决验证码的方法如下&#xff1a; 1、开发做个万能…

如何学习微服务Spring Cloud

简单来说&#xff0c;就是“三大功能&#xff0c;两大特性”。 三大功能是指微服务核心组件的功能维度&#xff0c;由浅入深层次递进&#xff1b;而两大特性是构建在每个服务组件之上的高可用性和高可扩展性。别看微服务框架组件多&#xff0c;其实你完全可以按照这三大功能模块…

外卖小程序开发指南:打造完美的点餐体验

第一步&#xff1a;项目设置和初始化 首先&#xff0c;您需要选择一个适合您的开发平台&#xff0c;例如微信小程序、支付宝小程序或其他移动应用平台。接下来&#xff0c;创建一个新的小程序项目&#xff0c;并初始化所需的文件和目录。 示例代码&#xff08;微信小程序&am…

项目进度网络图

概念 项目网络图是项目所有活动及其之间逻辑关系&#xff08;依赖关系&#xff09;的一个图解表示&#xff0c;并从左到右来表示项目的时间顺序。 可手工编制也可用计算机实现。可包括整个项目的全部细节&#xff0c;也可包含一个或多个概括性活动&#xff0c;还相应伴有一个…

向表中的指定列插入数据

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 练习:向test02表,所有列,插入数据 复习下前面的 mysql> #插入记录 mysql> insert into test02 values(1, 张三, 男, 100.5); Query OK, 1 ro…

【密码学补充知识】

&#x1f511;密码学&#x1f512;概述 &#x1f4d5; 1.基本概念 明文 &#xff1a; 要交换的信息 密文 &#xff1a; 明文经过一组规则变换成看似没有意义的随机消息。 加密 &#xff1a; 明文经过一组规则变换成密文的过程 解密 &#xff1a; 密文恢复出明文的过程 加…

【广州华锐互动】鱼卵孵化VR线上教学实训软件

随着科技的发展&#xff0c;教育方式也在不断地进行创新。VR研发公司广州华锐互动&#xff0c;为某院校开发了鱼卵孵化VR线上教学实训软件&#xff0c;可以帮助学生更好地理解鱼类繁殖和养殖的过程&#xff0c;还可以让他们在虚拟环境中进行实践操作&#xff0c;提高他们的技能…

HDFS编程实践-从HDFS中下载指定文件到本地

前言&#xff1a;Hadoop采用java语言开发&#xff0c;提供了Java Api与HDFS进行交互 先要把hadoop的jar包导入到idea中去 为了能编写一个与hdfs交互的java应用程序&#xff0c;一般需要向java工程中添加以下jar包 1&#xff09;/usr/local/hadoop/share/hadoop/common目录下…

Docker部署Nacos注册中心

文章目录 一、部署MySQL数据库并导入Nacos初始化SQL二、部署Nacos注册中心三、验证Nacos 一、部署MySQL数据库并导入Nacos初始化SQL 1、准备工作 docker pull mysql:8.0.27 Pwd"/data/software/mysql" mkdir ${Pwd}/{data,logs} -p chmod 777 ${Pwd}/logs2、添加配…

Matlab图像处理-彩色图像灰度化

图像预处理 预处理的具体操作是将车牌彩色图像灰度化&#xff0c;利用直方图均衡化、中值滤波、边缘提取、形态学运算等数字图像处理方法&#xff0c;确定车牌位置&#xff0c;提高车牌定位精确度及识别正确率。 彩色图像灰度化 图像灰度化本质就是通过一定的方法将彩色图像…

定时器的编码器接口

对应手册编码器接口14.3.12 实现代码 实现旋转编码器计次&#xff0c;与之前的在定时器中断时实现的旋转编码器计次实现内容相同&#xff0c;但是方式不同&#xff0c;之前的是通过触发外部中断&#xff0c;通过中断函数来实现手动计次加一&#xff1b;这次不同&#xff0c;是…

电脑版剪映怎么倒放?

1.打开一个素材 2.添加到时间轨道 3.右击轨道素材 弹出的选项钟选择&#xff0c;基础编辑》倒放&#xff01;

【Java开发】Redis位图实现统计日活周活月活

最近研究了使用 Redis 的位图功能统计日活周活等数据&#xff0c;特来和大家分享下&#xff0c;Redis 位图还可用于记录用户签到情况、判断某个元素是否存在于集合中等。 1 Redis 位图介绍 Redis 位图是一种特殊的数据结构&#xff0c;它由一系列位组成&#xff0c;每个位只能…

Spring Cloud Alibaba Gateway 全链路跟踪TraceId日志

前言 凡是文中需要注册到nacos的都需要这个jar包 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>凡是使用config jar包的都需要写bootstrap.prop…

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

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