SparkSQL窗口函数实操

概述

我们在数据分析过程中,会需要在数据集中按照某个维度进行分组,并且需要在组内进行一个类似排名、统计、相邻数据提取等分析操作。因此,在SQL 2003标准中,引入了窗口函数的能力。本文将基于Spark 3.0 版本的Spark SQL的窗口函数能力进行介绍,并给出一些实验示例。最后,基于主要的窗口函数能力,来介绍能够解决哪些业务场景的分析需求。

阅读全文

浅谈OLAP系统核心技术点

引言

OLAP系统广泛应用于BI, Reporting, Ad-hoc, ETL数仓分析等场景,本文主要从体系化的角度来分析OLAP系统的核心技术点,从业界已有的OLAP中萃取其共性,分为谈存储,谈计算,谈优化器,谈趋势4个章节。

阅读全文

Paper翻译 Spark SQL Relational Data Processing in Spark

摘要

Spark SQL是Apache Spark中的一个新模块,用于将关系处理和Spark的函数编程API相集成。基于Shark的经验,Spark SQL使得Spark开发者能够充分利用关系处理(声明式查询和优化后的存储)的优势以及让SQL用户调用Spark中复杂的分析库(如机器学习)。与之前的系统相比,Spark SQL主要有两个优势:一是在关系型和过程处理间集成更加紧密,通过一个声明式的DataFrame API来集成过程式Spark代码。二是包含了一个高扩展性的优化器Catalyst,使用Scala编程语言特性构建,使得添加可组合的规则、控制代码生成和定义扩展点比较容易。使用Catalyst,我们已经构建了许多特性(如JSON方式的模式引用,机器学习类型以及外部数据库的联邦查询)来满足现代数据分析的复杂需求。我们认为Spark SQL是Spark上的SQL和Spark本身的一种进化,它提供了更丰富的API和优化,同时保留了Spark编程模型的优点。

阅读全文

Paper翻译 Apache Calcite A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources

摘要

Apache Calcite是一个基础软件框架,提供了查询处理、优化和查询语言,支持多个主流开源数据处理系统,比如Apache Hive,Apache Storm,Apache Flink,Druid和MapD。Calcite的架构由如下组件构成:

阅读全文

工程师如何从技术转型做管理

转载自 微信公众号 | IT人的职场进阶 (前亚马逊工程师,现58转转技术总监)

“我,程序员,32岁,距离退休,只剩3年了!”

这句话用来形容2019年互联网行业最适合不过了。从18年开始,大大小小的互联网公司开始了不止一轮的裁员,19年网上开始充斥一类文章,专门写互联网公司超过35岁的人,如果到这个年龄,还不是leader,业务又不核心,那么请焦虑吧。

阅读全文

Drill性能识别和调优

引言

本文的内容来自DRILL的官方提供的性能识别和调优指南。

阅读全文

我的论文

本文整理了个人涉及技术领域的相关论文,同时也推荐给大家,根据个人兴趣选择阅读。持续更新中...

阅读全文

Drill执行引擎介绍

1. 概述

Apache Drill是一个低延迟的分布式查询引擎,用于大规模数据集,包括结构化和半结构化/嵌套数据。受Google的Dremel启发,Drill被设计成可扩展到数千个节点,并以BI/分析环境所需的交互速度查询数PB的数据。Drill对于大型数据集上的简短、交互式即席查询也很有用。Drill能够以JSON和Parquet等格式查询嵌套数据,并执行动态模式发现。

阅读全文

数据库之行列存储简介

前言

数据库之所以有行存和列存之分,主要是为了满足不同的使用场景。我们常见的Oracle、MySQL等主流关系型数据库都是以行存为主,适合OLTP的应用,涉及事务处理、增删改查等操作。随着大数据的发展,新兴的Vertica、Greenplum、MonetDB、C-Store等数据库支持列式存储,适合OLAP的应用,涉及海量数据的分析操作。甚至业界一些数据库为了同时支持OLTP和OLAP的能力,采用行列混合存储的模式,来兼容这两种应用场景。因此,数据库采用不同的数据存储布局,决定了它本身对外支持的特性,用户据此并结合业务场景来选择合适的数据库产品。下面,本文将主要针对行列存储的概念、组织形式、优缺点进行简要介绍。

阅读全文

Paper翻译 AnalyticDB Real-time OLAP Database System at Alibaba Cloud

摘要

随着数据在规模和多样性方面的爆炸式增长,OLAP数据库在提供低延时(比如几百毫秒)的实时分析服务方面发挥着越来越重要的作用,尤其是当接入的查询天生就是复杂的和即席的。而且,这些系统被期望能够提供高查询并发和写入吞吐量,以及支持结构化和复杂数据类型(比如,JSON、Vector和文本)上的查询。

阅读全文