![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
查询引擎原理
文章平均质量分 95
代码不会写
啥也不会
展开
-
(论文阅读-分析引擎)Modin
目标是在不改变的Dataframe语义的情况下支持可扩展的dataframe操作。什么是机会主义评价?Exploratory data analysis(EDA):总结、理解并从数据集中获取价值的过程。MPI:MPI是高性能计算常用的实现方式,它的全名叫做Message Passing Interface。顾名思义,它是一个实现了消息传递接口的库。并行计算之MPI篇 · XTAO AchelousOpenMP(Open Multi-Processing)是一套支持跨平台共享内存方式的多线程并发的编程。原创 2024-05-07 14:53:45 · 754 阅读 · 0 评论 -
Dask简介
Dask是一个灵活的Python并行计算库。Dask由两部分组成:为计算优化的动态任务调度:和Airflow,Luigi,Celery,Make很相似,但是专门为交互式的工作负载进行了优化。大数据集合:像并行数组、数据帧和列表,将NumPy、Pandas或Python迭代器等常见接口扩展到大于内存或分布式环境。这些并行集合在动态任务调度器之上运行。通用:提供并行的Numpy array和Pandas DataFrame objects。灵活。原创 2024-05-07 11:27:46 · 849 阅读 · 0 评论 -
从Volcano模型看Presto执行计划
关系代数是关系型数据库查询语言的基础,关系数据库的对外接口是SQL语句,所以SQL语句中的DML、DQL基于关系代数实现了关系的运算。关系模型由关系数据结构关系操作集合和关系完整性约束三部分组成。传统集合运算符。并UNION、交INTERSECTION、差DIFFERENCE、积EXTENDED CARTESIAN PRODUCT专门的关系运算符。选择SELECT、投影PROJECT、连接JOIN、除DIVEDE辅助运算符。包括算术比较符和逻辑运算符关系扩展运算符。原创 2024-05-07 10:48:58 · 1072 阅读 · 0 评论 -
Join优化规则及应用层BI系统实践
查询优化器在数据库中一个重要且复杂的组件,它再一定程度上决定了数据库的性能。如上图,优化器接收一个被parser解析的逻辑算子的代数表达式树,优化器由一些从逻辑表达式树到最优等价物理表达式树的映射组成。换言之,优化器对算子重排序并选择实现算法。数据库查询优化技术主要包括查询重用技术、查询重写规则、查询算法优化技术、并行查询优化技术、分布式查询优化技术及其他方面(如框架结构)的优化技术,这6项技术构成了一个“广义的数据库查询优化”的概念。原创 2024-05-07 10:33:58 · 823 阅读 · 0 评论 -
(论文阅读-优化器)Selectivity Estimation Without the Attribute Value Independence Assumption
一个包含相同relation中多个属性的查询结果size取决于这些属性的联合数据分布joint data distribution,即,所有属性值组合的频次。为了简化对属性大小的估计,大多数商业系统会假设属性值是互相独立的,并仅针对独立的属性来维护统计数据(通常是直方图)。在实际场景中,这个假设几乎都是错误的,因此估计的结果会非常不准确。在本文中,我们针对高效近似(多维)联合数据分布提出了两个主要可选方案。使用多维直方图使用基于线性代数的奇异值分解(SVD)技术。原创 2024-05-06 22:03:43 · 639 阅读 · 0 评论 -
(论文阅读-优化器)Selectivity Estimation using Probabilistic Models
对于涉及多个属性选择和多个关系连接的复杂查询,其结果大小的估计是数据库查询处理中一项困难而又基本的任务。它出现在基于成本的查询优化、查询分析和近似查询回答中。在本文中,我们展示了如何有效地使用概率图形模型作为跨多个关系的多个属性联合频率分布的精确和紧凑的逼近来完成这项任务。概率关系模型(Probabilistic Relational Models, PRMs)是最近的一项发展,它将图形统计模型(如贝叶斯网络)扩展到关系领域。它们表示表中属性之间以及跨外键连接的属性之间的统计依赖关系。原创 2024-05-06 22:00:17 · 801 阅读 · 0 评论 -
(论文阅读-优化器)Orca: A Modular Query Optimizer Architecture for Big Data
注意group2的best plan需要对T2按照T2.b进行hash-distribute,由于T2原始数据是按照T2.a进行hash-distributed的,而group1的best plan是简单的scan,因为T1已经在T1.a进行了hash-distributed。Group的成员,被称为group expressions,会用不同的逻辑方式(例如,不同的join orders)来达成这个group的目标。目前,这些努力只支持SQL标准特性的一个子集,而且它们的优化仅限于基于规则的。原创 2024-05-06 21:46:53 · 920 阅读 · 0 评论 -
(论文阅读-优化器)EFFICIENCY IN THE COLUMBIA DATABASE QUERY OPTIMIZER
查询优化是一个数据库系统能够获得重要性能收益的领域。现代数据库应用通常要求优化器具有高可扩展性和效率。Columbia基于Cascades优化框架的自顶向下优化算法,通过对搜索空间结构和搜索算法的精心重构,简化了自顶向下优化器的设计。原创 2024-05-06 11:07:47 · 1045 阅读 · 0 评论 -
(论文阅读-优化器)A Cost Model for SPARK SQL
本文我们为Spark SQL提出了一个新的cost model。这个cost model涵盖了广义的Projection、Selection、Join(GPSJ)查询。cost model考虑了网络和IO成本,以及最相关的CPU成本。执行成本是从Spark生成的物理执行计划开始计算的。Spark在执行GPSJ查询时采用的操作集合是基于集群和应用参数以及一组数据库统计数据来进行代价的分析建模的。原创 2024-05-05 23:53:48 · 1042 阅读 · 2 评论 -
(论文阅读-多目标优化器)Multi-Objective Parametric Query Optimization
经典查询优化根据一个成本度量cost metric来比较查询计划,并将每个计划与一个固定的成本值关联起来。在本文中,我们引入了多目标参数查询优化(Multi-Objective Parametric Query, MPQ)问题,该问题根据多个成本度量比较查询计划,并将给定计划在指定度量上的成本建模为一个依赖于多个参数的函数。例如,一个实例的成本指标可以包括执行时间或货币费用;参数可以表示在优化时未指定的查询谓词的选择性。原创 2024-05-05 23:35:42 · 1282 阅读 · 2 评论 -
(论文阅读-优化器)Volcano-An Extensible and Parallel Query Evaluation System
火山模型Volcano在数据库查询系统的设计中,为查询优化、并行执行和资源收集提供了丰富的环境。火山模型在代数运算符之间使用了一个标准接口,允许简单地添加新运算符和实现运算符。火山模型极具扩展性,它对于新的算子、算法、数据类型和限定类型的方法都提供了极大的扩展性。火山模型包含两个新颖的元操作符:choose-plan元操作符支持动态的查询评估计划,可以通过延迟执行进行优化。exchange-plan元操作符支持分布式数据集内部的操作符并行,以及横向和纵向的操作符并行。原创 2024-05-05 23:26:54 · 787 阅读 · 0 评论 -
分布式领域计算模型及Spark&Ray实现对比
前面的章节首先对分布式计算领域进行了概述,同时对Spark和Ray的调度设计进行了简要的介绍。我们可以发现,Spark和Ray之所以会采用不同的调度设计,主要原因还在于它们的目标场景的需求差异。Spark当前的核心场景还在于批量的数据计算,在这样的需求场景下我们可以假设数据依赖图是较为简单的,不存在单个分区的任务依赖图、对于同一个分布式数据的不同分区,执行的任务都是同质化的,因此它采用了集中式调度、DAG依赖分析、批量调度等设计方案。原创 2024-05-05 22:58:10 · 1472 阅读 · 2 评论 -
查询引擎中的代码生成技术
目录一、背景二、相关知识2.1 Java虚拟机规范2.1.1 数据类型2.1.2 字节码指令2.1.3 class文件格式2.2 虚函数与CPU预测2.3 查询引擎-火山模型三、代码生成工具3.1 动态编译器Janino3.2 字节码解析器ASM四、代码生成在开源系统中的应用概述4.1 Spark代码生成4.2 Presto代码生成一、背景在大数据系统的查询引擎这一分类中,我们追求的往往是更大的数据量、更快的运行效率。在业界的各大计算引擎.原创 2021-01-15 20:44:58 · 844 阅读 · 1 评论 -
PostgreSQL查询引擎源码技术探索--读书笔记
目录第1章 PostgreSQL概述1.1 概述作为数据库内核中的重要一环,查询引擎在整个数据库管理系统中起到了“大脑”的作用。查询语句是否以最优的方式来执行等均与查询引擎有着密不可分的联系;不同的数据库对同一条查询语句的执行时间各不相同,有快有慢。究其原因,除了存储引擎之间的差别,查询引擎生成的查询计划和执行计划的优劣直接影响数据库在查询时的性能表现。不同的查询引擎产生的查询计划千差万别,表现在查询效率上也千差万别。作为连接服务器层(ServerFramework)与存储引擎层(Stora原创 2020-07-05 15:42:24 · 1840 阅读 · 0 评论