自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (数据分析方法)波动贡献计算方式

注意,连环替代法和差额分析法中,基期都可以选择历史值(X天同期)或是预测值,选择不同基期获得的分析效果不一样,历史值波动贡献分析主要为了解析基于过去数据的波动原因,而预测值的波动贡献分析主要为了解释和目标的差距波动原因。时序数据分析中的波动和贡献计算方式一定是一一对应的,当波动采用偏移7天的同比进行衡量时,贡献也一定需要采用偏移7天的基准值进行贡献衡量。在根因分析中,除了灵活的维度和指标层级拆解,我们还需要在拆解过程中找出对分析目标影响最大的因素,以此来达到交互式根因分析的效果。

2024-05-07 15:07:44 608

原创 (论文阅读-分析引擎)Modin

目标是在不改变的Dataframe语义的情况下支持可扩展的dataframe操作。什么是机会主义评价?Exploratory data analysis(EDA):总结、理解并从数据集中获取价值的过程。MPI:MPI是高性能计算常用的实现方式,它的全名叫做Message Passing Interface。顾名思义,它是一个实现了消息传递接口的库。并行计算之MPI篇 · XTAO AchelousOpenMP(Open Multi-Processing)是一套支持跨平台共享内存方式的多线程并发的编程。

2024-05-07 14:53:45 737

原创 分析师常用商业分析模型

并让企业的战略变得明朗。但注意,交互式的分析探索工具,无法提前预设分析路径,探索的目的就是为了实现[PM经过数据探查将逻辑树的拆解思维固化下来]这一步骤,我们需要在每一个节点向下扩展时将所有可能的路径枚举出来让用户选择。每条路径中,都需要记录全维度的扩展记录,如当前路径已经按照一级品类进行扩展了,那么子路径将会携带一级品类的一个具体维值作为过滤条件,且不可再次在一级品类维度上进行扩展了。,可以理解为某一时间段内的消费次数,具体的时间段需要依据产品特性而定,F值越大,说明用户活跃度越高,是个正向反馈。

2024-05-07 11:56:43 645

原创 Dask简介

Dask是一个灵活的Python并行计算库。Dask由两部分组成:为计算优化的动态任务调度:和Airflow,Luigi,Celery,Make很相似,但是专门为交互式的工作负载进行了优化。大数据集合:像并行数组、数据帧和列表,将NumPy、Pandas或Python迭代器等常见接口扩展到大于内存或分布式环境。这些并行集合在动态任务调度器之上运行。通用:提供并行的Numpy array和Pandas DataFrame objects。灵活。

2024-05-07 11:27:46 807

原创 定性分析和定量分析

定性研究方法是根据社会现象或事物所具有的属性和在运动中的矛盾变化,从事物的内在规定性来研究事物的一种方法或角度。它以普遍承认的公理、一套演绎逻辑和大量的历史事实为分析基础,从事物的矛盾性出发,描述、阐释所研究的事物。进行定性研究,要依据一定的理论与经验,直接抓住事物特征的主要方面,将同质性在数量上的差异暂时略去。定量分析是指在数学方法基础上,通过研究社会现象的数量特征、数量关系和数量变化,对发展趋势进行分析、预测和解释。

2024-05-07 10:59:02 809

原创 从Volcano模型看Presto执行计划

关系代数是关系型数据库查询语言的基础,关系数据库的对外接口是SQL语句,所以SQL语句中的DML、DQL基于关系代数实现了关系的运算。关系模型由关系数据结构关系操作集合和关系完整性约束三部分组成。传统集合运算符。并UNION、交INTERSECTION、差DIFFERENCE、积EXTENDED CARTESIAN PRODUCT专门的关系运算符。选择SELECT、投影PROJECT、连接JOIN、除DIVEDE辅助运算符。包括算术比较符和逻辑运算符关系扩展运算符。

2024-05-07 10:48:58 1048

原创 Join优化规则及应用层BI系统实践

查询优化器在数据库中一个重要且复杂的组件,它再一定程度上决定了数据库的性能。如上图,优化器接收一个被parser解析的逻辑算子的代数表达式树,优化器由一些从逻辑表达式树到最优等价物理表达式树的映射组成。换言之,优化器对算子重排序并选择实现算法。数据库查询优化技术主要包括查询重用技术、查询重写规则、查询算法优化技术、并行查询优化技术、分布式查询优化技术及其他方面(如框架结构)的优化技术,这6项技术构成了一个“广义的数据库查询优化”的概念。

2024-05-07 10:33:58 813

原创 (数据分析方法)相关性分析

相关关系是指变量的数值之间存在着依存关系,即一个变量的数值 会随着另一个变量或几个变量的数值变化而呈现出一定的变化规律。很多时候,我们都需要分析数据之间的相关性,相关性分析是数据回归前提,具有相关性的数据可以进一步进行回归分析。在 客观现实中,许多现象之间都存在着某种相互关联的关系。例如,降雨 量与云层厚度之间的关系;居民收入增长率与物价指数的关系;人的身 高和体重的关系;汽车行驶速度与行驶里程之间的关系;圆的面积与圆 的半径之间的关系等。

2024-05-07 10:13:44 4361

原创 (数据分析方法)长期趋势分析

长期趋势是指在相当长的时期内,社会现象表现为持续不断地向上增长或向下降低的趋势。表现为向上发展趋势的,如工农业产品的产量、商品流转额等。表现为向下发展趋势的如成本不断降低等。还有若干数列在相当长的时期内并无明显升降趋势,可称之谓水平趋势。在一个长时间的动态致列中,往往存在着受不同因家影响的几种变动,如受某种根本性原因所决定的长期变动趋势和一年内季节因家影响的季节变动,以及其他变动。对动态数列进行统计分析的一项重要任务,就是要分别测定这些变动。如此循环直到收敛,得到最终权重参数,并且用这组参数去预测未来。

2024-05-06 22:29:22 1551

原创 LangChain框架学习总结

LangChain是一个用来基于语言模型开发应用的框架。我们相信,最强大、最与众不同的应用程序不仅会通过API调用语言模型,而且还会:数据感知:将语言模型连接到其他数据源代理性:允许语言模型与其环境交互LangChain为开发者提供了很多模块化的组件,但从组件的效果来看,它们的最终目的只有一个:协助开发者构造更合理、信息更为丰富的Prompt,来从LLM获得更为准确和详细的回答。LangChain自身并没有太高的技术壁垒,但它可以为我们省下许多的开发时间。

2024-05-06 22:18:04 1284

原创 (读书笔记-大模型) LLM Powered Autonomous Agents

有限的上下文长度:LLM 处理上下文信息的能力有限,尽管 self-reflection 等机制可以从过去的错误中学习,但更长或无限的上下文窗口将会带来很大的好处。感知记忆:这是记忆的早期阶段,它能够在原始刺激结束后保持对感官信息(视觉、听觉等)的印象。显式、陈述性记忆:这是对事实和事件的记忆,指的是那些可以有意识地回忆起来的记忆,包括情景记忆(事件和经过)和语义记忆(事实和概念);反思和完善:智能体可以对过去的行为展开自我批评和自我反思,从错误中吸取教训,并针对未来的步骤进行完善,提高最终结果的质量。

2024-05-06 22:06:17 1306

原创 (论文阅读-优化器)Selectivity Estimation Without the Attribute Value Independence Assumption

一个包含相同relation中多个属性的查询结果size取决于这些属性的联合数据分布joint data distribution,即,所有属性值组合的频次。为了简化对属性大小的估计,大多数商业系统会假设属性值是互相独立的,并仅针对独立的属性来维护统计数据(通常是直方图)。在实际场景中,这个假设几乎都是错误的,因此估计的结果会非常不准确。在本文中,我们针对高效近似(多维)联合数据分布提出了两个主要可选方案。使用多维直方图使用基于线性代数的奇异值分解(SVD)技术。

2024-05-06 22:03:43 626

原创 (论文阅读-优化器)Selectivity Estimation using Probabilistic Models

对于涉及多个属性选择和多个关系连接的复杂查询,其结果大小的估计是数据库查询处理中一项困难而又基本的任务。它出现在基于成本的查询优化、查询分析和近似查询回答中。在本文中,我们展示了如何有效地使用概率图形模型作为跨多个关系的多个属性联合频率分布的精确和紧凑的逼近来完成这项任务。概率关系模型(Probabilistic Relational Models, PRMs)是最近的一项发展,它将图形统计模型(如贝叶斯网络)扩展到关系领域。它们表示表中属性之间以及跨外键连接的属性之间的统计依赖关系。

2024-05-06 22:00:17 787

原创 (论文阅读-优化器)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 888

原创 (论文阅读-优化器)EFFICIENCY IN THE COLUMBIA DATABASE QUERY OPTIMIZER

查询优化是一个数据库系统能够获得重要性能收益的领域。现代数据库应用通常要求优化器具有高可扩展性和效率。Columbia基于Cascades优化框架的自顶向下优化算法,通过对搜索空间结构和搜索算法的精心重构,简化了自顶向下优化器的设计。

2024-05-06 11:07:47 1011

原创 (论文阅读-优化器)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 1022 2

原创 (论文阅读-多目标优化器)Multi-Objective Parametric Query Optimization

经典查询优化根据一个成本度量cost metric来比较查询计划,并将每个计划与一个固定的成本值关联起来。在本文中,我们引入了多目标参数查询优化(Multi-Objective Parametric Query, MPQ)问题,该问题根据多个成本度量比较查询计划,并将给定计划在指定度量上的成本建模为一个依赖于多个参数的函数。例如,一个实例的成本指标可以包括执行时间或货币费用;参数可以表示在优化时未指定的查询谓词的选择性。

2024-05-05 23:35:42 1269 2

原创 (论文阅读-优化器)Volcano-An Extensible and Parallel Query Evaluation System

火山模型Volcano在数据库查询系统的设计中,为查询优化、并行执行和资源收集提供了丰富的环境。火山模型在代数运算符之间使用了一个标准接口,允许简单地添加新运算符和实现运算符。火山模型极具扩展性,它对于新的算子、算法、数据类型和限定类型的方法都提供了极大的扩展性。火山模型包含两个新颖的元操作符:choose-plan元操作符支持动态的查询评估计划,可以通过延迟执行进行优化。exchange-plan元操作符支持分布式数据集内部的操作符并行,以及横向和纵向的操作符并行。

2024-05-05 23:26:54 762

原创 分布式领域计算模型及Spark&Ray实现对比

前面的章节首先对分布式计算领域进行了概述,同时对Spark和Ray的调度设计进行了简要的介绍。我们可以发现,Spark和Ray之所以会采用不同的调度设计,主要原因还在于它们的目标场景的需求差异。Spark当前的核心场景还在于批量的数据计算,在这样的需求场景下我们可以假设数据依赖图是较为简单的,不存在单个分区的任务依赖图、对于同一个分布式数据的不同分区,执行的任务都是同质化的,因此它采用了集中式调度、DAG依赖分析、批量调度等设计方案。

2024-05-05 22:58:10 1359 2

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

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

2024-02-21 21:09:29 1224

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

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

2023-12-13 13:46:22 354

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

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

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

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

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

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

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

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

2020-07-05 15:42:24 1820

翻译 CarbonData简介

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

2020-04-12 20:19:20 3757

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

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

2019-12-10 00:31:09 3019

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

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

2019-10-25 15:51:21 991

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

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

2018-09-01 15:24:24 468

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

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

2018-09-01 15:23:33 1436

翻译 Consul内部实现

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

2018-09-01 15:18:36 5275 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 3703

原创 Presto-Code Generation

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

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

原创 Netty基础知识

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

2018-04-15 19:42:16 805

翻译 Presto中的基础概念

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

2018-04-15 19:33:11 2802

转载 Netty学习一: 核心组件

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

2018-02-12 11:34:41 234

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

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

2017-12-06 11:44:21 15398

原创 查询优化技术概念

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

2017-12-04 00:42:50 2849

原创 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 4388 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 694

空空如也

空空如也

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

TA关注的人

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