Databricks Lakehouse

Databricks Lakehouse
《Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics》 CIDR21'   整片文章讲的比较宽泛。   Introduction 第一代数仓:结构化数据,用于决策支持和BI。 第二代数仓:解决存储和计算资源耦合、无弹性、非结构化数据激增等问题,采用了data lakes方案,采用开放格式,数据存储到分布式文件系统,主要代表是Hadoop运动。 第三代数仓,2015年...

Snowflake Elastic Data Warehouse

Snowflake Elastic Data Warehouse
《The Snowflake Elastic Data Warehouse》 SIGMOD 16' Snowflake具备如下的特点: 纯粹的SaaS体验:用户将数据放到云上,然后可以通过snowflake对他们的数据进行查询。 关系型:支持SQL和ACID 办结构化:内置函数和SQL扩展来支持对半结构化数据的访问,自动schema discovery和列式存储 弹性:存储和计算资源可以独立无缝弹性,不影响数据可用性和当前查询性能 高可用:容忍node、cluster和data cent宕机...

How to Architect a Query Compiler Revisited

How to Architect a Query Compiler Revisited
How to Architect a Query Compiler, Revisited》 SIGMOD'168 数据库执行一个查询的流程包括前端语法解析、优化器以及后端解释执行。语言编译器的流程与之类似,除了最后一步会编译成机器码执行,DBMS一般还是解析执行的。 在相当长一段时间内,硬盘IO是主要的性能瓶颈,计划的解释执行有利于移植,因此将解释执行替换成编译执行没有太大必要。但NVM硬件发展和业务对AP型查询需求增多,使得很多时候查询是...

Orca优化器

Orca优化器
《Orca: A Modular Query Optimizer Architecture for Big Data》 SIGMOD 2014   Orac是Pivotal数据管理系列产品(包括 Pivotal Greenplum Database和Pivotal HAWQ)共用的优化器模块,面向AP负载,整合了当时最新的技术。 Orac的主要特点: Modularity 对元数据和系统描述进行抽象,因此可移植 Extensibility 将所有的查询元素和优化操作当做first class citizen,避免多阶段优化 Multi-core Ready...

关系数据库优化器概述

关系数据库优化器概述
《An Overview of Query Optimization in Relational Systems》PODS 1998, Microsoft Research 优化器的输入是用户查询,负责生成一个高效的执行计划,优化过程是一个比较复杂的过程。 优化器主要包含三个部分: Search Space:搜索空间包含足够好的计划 代价估计:代价估计足够精确 枚举算法:枚举算法要足够高效 System R优化器案例 以System R为例来初步看下优化器的这三部分,通过这一节,对优化器...

The Columbia Optimizer

The Columbia Optimizer
  《EFFICIENCY IN THE COLUMBIA DATABASE QUERY OPTIMIZER》 1998 这是Portland State University的硕士论文,作者是YONGWEN XU,相比Cascades论文的跳跃和晦涩,这篇可以说是很良心了。 Motivation 当时背景下,优化器仍然是值得研究的方向,尤其是在Decision Support Systems(DSS)、OLAP、大数据量、复杂对象、新的执行技术如并行和分布式执行等等。 第一代可扩展的优化器包括EXODUS、Starburst...

The Volcano Optimizer Generator

The Volcano Optimizer Generator
  《The Volcano Optimizer Generator : Extensibility and Efficient Search》1993 论文介绍了在EXODUS之后的一个新的优化器生成器Volcano。 一个好的optimizer generator要满足如下条件: 既能用到Volcano Executor,也能用到已经存在的其他执行器 优化的时间消耗和内存消耗都比较低 能够高效、可扩展地支持物理属性(如sort order、compression) 允许使用启发信息和数据模型语义来引导搜索和剪枝...

Extensible/Rule Based Query Rewrite Optimization in Starburst

Extensible/Rule Based Query Rewrite Optimization in Starburst
      《Extensible/Rule Based Query Rewrite Optimization in Starburst》SIGMOD 1992 这篇文章是介绍Starburst的基于规则的优化器实现框架。 背景 很多业务的SQL语句或类SQL语句,尤其是中间件软件自动生成的SQL语句,主要面向业务模型,如果不做query rewrite,可能执行非常慢。 例如: 12345678 DISTINCT PFROM Patient p IN Patient_S...

Grammar-like Functional Rules - for Representing Query Optimization Alternatives

Grammar-like Functional Rules - for Representing Query Optimization Alternatives
  《Grammar-like Functional Rules - for Representing Query Optimization Alternatives》 SIGMOD 1988 概述 优化器如果要做到可扩展,则要求执行计划的变换策略需要作为数据而不是代码存在。本质上优化器就是一个专家系统,使用strategy rules将一个查询计划变成另一个等价的更好的计划。这种灵活可扩展带来一个问题是 不够高效:在任意一步,都需要检查很多转换规则的使用条件,而且可能有多个规...

Access Path Selection in a RDBMS

Access Path Selection in a RDBMS
《Access Path Selection in a Relational Database Management System》 1979   SQL语句处理的四个阶段:Parsing, Optimization, Code Generation, Execution。 query block: 由select from where表达的查询块。   单表查询 代价 Access Path Cost公式: cost = page fetches + w * (RSI calls),其中rsi for system R storage interface。 公式是IO代价(主要是读取页面)和CPU代价(System R...