自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 读书笔记-增强型分析:AI驱动的数据分析、业务决策与案例实践

运用人工智能技术,可以使人类社会变得更美好。人们总是期待产品更适合、服务更贴心、生活更便利。在实践中,技术给企业赋能,企业通过优质的产品和服务满足社会,提升人类福祉。很多金融企业已经开始尝试向潜在客户推送更加精准的产品信息,通过智能投顾及产品交叉销售挖掘来满足客户多样化的潜在需求,开发各种人工智能助手协助客户获得更便利的服务体验。高德纳(Gartner)公司提出了客户体验的金字塔模型,如图1所示,根据客户是否需要、客户是否知道、产品服务触达情况细分了六个层次。

2024-02-21 21:09:29 1067

原创 论文阅读:MonetDB/X100: Hyper-Pipelining Query Execution

在决策支持、OLAP和多媒体检索等计算密集型应用领域,数据库系统往往只能在现代cpu上实现较低的IPC(每周期指令)效率。本文首先以TPC-H基准为重点,深入研究了这种情况发生的原因。通过对各种关系系统和MonetDB的分析,我们得出了一套新的查询处理器设计准则。本文的第二部分介绍了在MonetDB系统中遵循了这些规则的新X100查询引擎架构。表面上来看,它类似于一个经典的Volcano引擎,但关键的区别是,所有的执行都基于向量处理的概念,这使得它有很高的CPU效率。

2023-12-13 13:46:22 297

原创 基于SIMD和缓存友好的结构体数组排序算法(论文阅读笔记)

摘要本文描述了一个通过高效利用SIMD指令和当今处理器缓存内存的,用于对一个数据结构进行排序的新算法。当前,通过SIMD指令实现的多路归并排序已经被作为一个对于int值排序的高效内存排序算法使用了。在使用SIMD指令对数组结构进行排序时,一个常用的方法是首先将每行记录的key和index打包成为一个int值,使用SIMD指令对kv对进行排序,然后基于有序的kv对重组数据行。这种方法可以有效地使用SIMD指令因为它在打包int值时对kv对排序,因此它可以使用高效的、基于SIMD的对int值的多路归并排序实

2022-03-29 21:18:30 1551 4

原创 使用SIMD指令实现数据库运算(论文阅读笔记)

摘要现代cpu的指令允许在多个数据元素上并行执行基本操作。这些指令称为SIMD指令,因为它们将一条指令应用于多个数据元素。SIMD技术最初被内置到商业处理器中,以加速多媒体应用程序的性能。SIMD指令为数据库引擎的设计和实现提供了新的机会。我们研究了数据库上下文中的各种操作,并展示了如何使用SIMD指令加速操作的内部循环。使用SIMD指令有两个直接的性能好处:它允许一定程度的并行,这样多个操作就可以被一次执行。它通常还可以消除条件分支指令,来减少分支预测失败。本文中我们考虑了最重要的数据库操作,包括

2022-03-28 20:05:41 2761 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 798 1

原创 PostgreSQL查询引擎源码技术探索--读书笔记

目录第1章 PostgreSQL概述1.1 概述作为数据库内核中的重要一环,查询引擎在整个数据库管理系统中起到了“大脑”的作用。查询语句是否以最优的方式来执行等均与查询引擎有着密不可分的联系;不同的数据库对同一条查询语句的执行时间各不相同,有快有慢。究其原因,除了存储引擎之间的差别,查询引擎生成的查询计划和执行计划的优劣直接影响数据库在查询时的性能表现。不同的查询引擎产生的查询计划千差万别,表现在查询效率上也千差万别。作为连接服务器层(ServerFramework)与存储引擎层(Stora

2020-07-05 15:42:24 1775

翻译 CarbonData简介

目录一、什么是CarbonDataApache CarbonData是一种新的大数据文件格式,使用先进的柱状存储、索引、压缩和编码技术来提高计算效率,这有助于在pb级的数据上以数量级的速度加快查询速度。CarbonData特别设计了多种优化策略,如多级索引、压缩和编码技术,旨在提高包含filter、aggregation和counst distinct等分析查询的性能,用户期望在拥有较...

2020-04-12 20:19:20 3698

原创 如何用数据解决实际问题-读书笔记

目录序我们常说将数据应用于实际业务,但具体要怎样做呢?根据不同的阶段和水平,我们所需的能力可以分为以下4种: 解读数据 掌握观察数据的“视点”(这是驾驭数据的基础) 基本的数据分析方法 掌握通用的整理和分析数据的基本方法 综合技能 将各种方法或思维方式有机结合起来,形成具有整体一贯性的解决问题的故事 高级分...

2019-12-10 00:31:09 2957

原创 一、索引的分类及应用

目录一、索引概述作为一名应用系统开发人员,为什么要关注数据库内部的存储和检索呢?首先,你不太可能从头实现一套自己的存储引擎,往往需要从众多现有的存储引擎中选择一个适合自己应用的存储引擎。因此,为了针对你特定的工作负载而对数据库调优时,最好对存储引擎的底层机制有一个大概的理解。索引背后的基本想法都是保留一些额外的元数据,这些元数据作为路标,帮助定位想要的数据从而进行快速检索。如果希望用集...

2019-10-25 15:51:21 939

翻译 ASM分析系列之二: Core API-Classes

目录 一、Classes    本章主要解释如何使用core ASM API生成和转换编译后的Java类文件。本章先展示了编译后类文件的结构,然后讲解了对应的生成和转换类文件的ASM接口、组件和工具,同时给出了很多具有说明性的例子。下一章主要对方法的注解和泛型进行详述。1.1 结构1.1.1 概览 编译类的总体结构非常简单。实际上,与简单编译的应用程序不同,编译类保留了结构...

2018-09-01 15:24:24 441

翻译 ASM分析系列之一: 简介

目录一、背景程序分析、生成和转换在许多场景下得到了广泛的使用 程序分析,从简单的语法分析到完整的语义分析,可以用来在应用程序中发现潜在的bug,检测无用代码,逆向工程代码,等等。 程序生成在编译器中使用。包括传统的编译器,但也有用于分布式程序的存根或骨架编译器,仅在时间编译器中使用,等等。 程序转换可用于优化或修改程序、将调试或性能监视代码插入应用程序、面向方面的...

2018-09-01 15:23:33 1409

翻译 Consul内部实现

目录一、架构Consul是一个有很多模块的复杂系统,为了帮助Consul的开发者更好的理解它的运行模型。本章主要介绍Consul的架构。1.1 术语 Agent:Agent是Consul集群中的守护进程。它的生命周期从启动Consul agent开始。Agent可以以client或是server模式运行。由于所有的节点必须运行一个agent,将节点直接以client或是serve...

2018-09-01 15:18:36 5210 3

翻译 Consul API

目录注: 内容翻译自官网,部分内容省略一、ACLs     ACL介绍:https://www.consul.io/docs/guides/acl.html     1.1 启动ACL 二、Agent     /agent节点是用来和本地Consul agent交互的。通常情况下,服务和检查在agent上注册,agent负责集群中的数据同步。例如,agent会在Catalog中注册服务和检查,执行...

2018-07-02 10:45:27 3647

原创 Presto-Code Generation

一、背景1.1 场景presto中使用了基于ASM的airlift.bytecode进行代码生成,一个主要的用途是对从数据源捞上来的数据进行表达式过滤,这是代码生成的主要应用场景,主要是为了降低进行表达式评估中 JVM 的各种开销,如虚函数调用,分支预测,原始类型的对象装箱开销以及内存消耗。1.2 字节码Java编译器编译好Java文件后,产生.class文件存放在磁盘中。这种.class文件是二...

2018-05-30 13:44:11 2402 2

原创 Netty基础知识

目录一、Netty是什么Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty整合了网络编程、多线程处理和并发等多个领域的只是,极大地简化了网络开发的流程。Netty是一个NIO客户端服务器框架,它能够快速和轻松地开发网络应用程序,如协议服务器和客户端。它极大地简化了T

2018-04-15 19:42:16 772

翻译 Presto中的基础概念

https://prestodb.io/docs/current/overview/concepts.html#data-sources目录一、概览要理解Presto,您必须首先理解整个Presto文档中使用的术语和概念。 虽然很容易理解语句和查询,但作为最终用户,您应该熟悉一些概念,例如stage和split,以充分利用Presto执行有效的查询。作为一个Presto管理

2018-04-15 19:33:11 2780

转载 Netty学习一: 核心组件

Netty是Java在网络编程领域的卓越框架。一、Netty的核心组件    Channel    回调    Future    事件和ChannelHandler1.1 ChannelChannel是Java NIO的一个基本构造    它代表一个到实体的开放连接,如读操作和写操作。    目前,可以把Channel看作是传入或者传出数据的载体。因此,它可以被打开或者被关闭,连接或者断开连接。...

2018-02-12 11:34:41 223

翻译 Spark调优(数据序列化和内存调优)

翻译自Spark官网文档:https://spark.apache.org/docs/2.1.0/tuning.html前言    由于大多数Spark计算的内存使用特性,集群中的任何资源都可能成为Spark计算程序中的瓶颈:CPU,网络带宽或是内存。大多数情况下,如果内存可以容纳数据量,那么瓶颈就会是网络带宽,但有时,用户也需要去做一点调优的工作,例如以序列化的格式存

2017-12-06 11:44:21 15327

原创 查询优化技术概念

本文摘取自《数据库查询优化器的艺术》一、查询优化技术简介    查询优化技术主要包括查询重用技术、查询重写规则技术、查询算法优化技术、并行查询的优化技术、分布式查询优化技术和其他优化技术6个方面的技术。1.1 查询重用    查询重用是指尽可能利用先前的执行结果,以达到节约查询计算全过程的时间并减少资源消耗的目的。    目前查询重用技术主要集中在两个方面:

2017-12-04 00:42:50 2776

原创 Spark SQL兼容Hive及扩展

前言     相比于Shark对Hive的过渡依赖,Spark SQL在Hive兼容层面仅依赖HQL Parser、Hive Metastore和Hive SerDes。也就是说,从HQL被解析成抽象语法树(AST)起,就全部由Spark SQL接管了,执行计划生成和优化都由Catalyst负责。本文接下来对于Spark SQL在兼容Hive过程中对于Catalog,SqlParser,A

2017-11-28 14:03:22 4264 1

原创 Dataset API的执行计划构建和执行

通过Dataset API,我们可以直接在数据上执行关系型操作,这一功能主要是借助了Spark SQL的一些核心功能。本文主要分析Dataset API和Spark SQL模块之间的关联关系一、Dataset初始化     Dataset类有两个构造参数,SparkSession和LogicalPlan Dataset API的执行计划构建和执行 > image2017-1

2017-11-24 14:16:01 676

原创 Spark SQL核心类解析

一、执行计划实体相关     Tree是Catalyst执行计划表示的数据结构。LogicalPlans,Expressions和Pysical Operators都可以使用Tree来表示。Tree具备一些Scala Collection的操作能力和树遍历能力。    Tree提供三种特质:UnaryNode:一元节点,即只有一个子节点BinaryNode:二元节点,即

2017-11-24 14:15:10 2936 1

原创 Spark SQL运行原理

文章内容摘自>详细内容请参考书中原文一、简介    介绍Spark SQL,就不得不提Hive和Shark。Hive是Shark的前身,Shark是Spark SQL的前身。    Shark是由伯克利实验室技术团队开发的Spark生态环境组件之一,它扩展了Hive并修改了Hive架构中的内存管理、物理计划和执行3个模块,使之可以运行在Spark引擎上。大大加快了在内存和磁

2017-11-22 20:09:07 6662 2

原创 ES基本概念和常用REST查询

一、相关概念1.1 倒排索引    Elasticsearch使用倒排索引来达到加速检索的目的。    倒排索引:根据属性值来确定记录位置    倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)

2017-11-20 19:47:50 6937

原创 Spark2.2-persist checkpoint lineage解析

源码版本: 2.2如有错误请指正一、背景    Spark中每一个RDD都记录它的血缘lineage,根据lineage,我们可以实现容错机制和数据重用。    相比其他系统的细颗粒度的内存数据更新级别的备份或者LOG机制,RDD的Lineage记录的是粗颗粒度的特定数据Transformation操作(如filter、map、join等)行为。当这个RDD的部分分

2017-11-02 15:27:26 1021

原创 FlumeJava: Easy, Efficient Data-Parallel Pipelines Abastrct

本文主要是对《FlumeJava: Easy, Efficient Data-Parallel Pipelines》论文的概要总结完整论文请参考 https://research.google.com/pubs/pub35650.html部分内容做了简单概要总结,如有错误请指出一、前言二、FlumeJava库2.1 核心抽象2.1.1 核心类PC

2017-10-31 14:18:38 1326

原创 Spark2.2-Task序列化源码解析

源码版本:2.2如有错误请指正一、前言    Spark在运行应用程序时,会根据RDD的操作,将数据处理流程划分为多个stage进行计算,其中划分stage的依据是数据是否产生shuffle。在同一个stage中,RDD之间的依赖都是窄依赖。一个stage下会有多个task,每个task针对不同的分区数据执行同样的运算逻辑。    在Spark集群模式下,多个不同的

2017-10-24 15:26:48 1150 2

翻译 Spark SQL, DataFrames and Datasets Guide

http://spark.apache.org/docs/latest/sql-programming-guide.html一、概览    Spark SQL是Spark一个用于结构化数据处理的模块。和基础的Spark RDD API不同,Spark SQL提供的接口中提供了更多关于与实际数据和正在执行的计算相关的结构化信息。在内部,Spark SQL这些额外的信息来进行额外的优化

2017-10-22 17:13:31 647

翻译 二、Calcite官方文档翻译--进阶

目录二、进阶2.1 适配器Adapters2.1.1 Adapter一个schema adapter允许Calcite去读取特定类型的数据,将这些data以一种table格式schema展示出来。其他语言接口2.1.2 Engines 许多工程和产品都是用Apache Calcite来做SQL解析,查询优化,数据可视化/合并,和物化视图重写。https:...

2017-10-19 16:44:19 2767

翻译 一、Calcite官方文档翻译--概览

目录一、概览1.1 背景 Apache Calcite是一个动态数据管理框架。它包含了许多组成典型数据管理系统的经典模块,但省略了一些关键功能: 数据存储,数据处理算法和元数据存储库。Calcite有意地远离了存储和处理数据的任务。如我们所见,这使得它成为在应用程序和一个或多个数据存储位置和数据处理引擎之间的最佳中间层选择。它同样也是构建数据库的完美基础选择: 在它的基础上...

2017-10-19 16:38:05 9750 6

原创 Spark2.2任务提交运行机制及源码解析

源码版本:2.2参考《Spark内核机制解析及性能调优》如有错误请指正一、Spark运行的核心概念Spark调度器的设计体现得非常简洁清晰和高效,其输入是Spark RDD,输出是Spark执行器(Executor)。正是Spark调度器的设计思想极大地区分出了基于MapReduce模型的Hadoop和基于DAG模型的Spark。主要内容包括Spark运行核心概

2017-10-19 16:27:43 2625 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除