自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于GNN与transfomer的关系

从 Transformer 来看,我们需要分别计算 Q(Query), K(Key), V, 然后使用 Q 和 K 来计算自注意力矩阵A,A矩阵代表了 token (节点或词)之间的相关性,使用计算 AV 来完成不同 token 之间的加权融合。图和Transoformer的联系:kq的计算结果,可以看做是一个(n,n)的图邻接矩阵,联想到图网络的消息传递,不难发现,kq矩阵与v的相乘,就是消息传递。而与图网络不一样的是,图网络的邻接矩阵是先验提供的,而transformer将靠模型自己去探索。

2023-11-22 21:21:22 133

原创 刷题笔记(一)《王道计算机考研机试指南2》

前言大一大二天天吃喝睡觉,不喜写代码,导致编码能力薄弱,到了今时今日,无论是读研还是就业都逃不过上机考试这关,遂开始练习解题能力。书籍:《计算机考研机试指南(王道第二版》OJ平台:牛客网:考研复试专区类型一:暴力计算这类习题多为机试考试中的简单题和入门题。大多采用枚举等方法,由于数据量不大即使复杂度高也能完全跑出来。奈何本人C语言基础实在过于将就,有些题目做起来依旧费劲。1.反序数(THU)输入一个数字,输出它的倒置数:核心算法:每次循环取原数字的个位再将原数字除以10,..

2022-03-09 23:26:26 1031

原创 Hive代码分析报告(十三):metastore模块分析①

2021SC@SDUSC目录概述代码分析MetaStoreClient客户端的创建概述前面分析主要是cli用户接口和driver编译器部分。下面我将对hive的metastore模块进行分析。hive metastore 是什么呢?它是一个服务端,简称server。默认的端口为9083有什么作用呢?作用是建立起和hive客户端的连接,当客户端来请求,server去远程metastore数据库查询信息返回。代码分析Metastore模块在metastore目录下

2021-12-22 20:18:28 1718

原创 Hive代码分析报告(十二):提交到编译流程梳理②

2021SC@SDUSC目录编译流程获取AST进行语义解析小结:前一篇文章中我梳理了HQL语句从提交到进入编译流程的一个简单过程,接下来我将数理在编译流程中的工作。编译流程总目标:编译流程由Driver 的compile(hql)函数实现。该函数将HQL 语句编译成执行计划,也称为Query Plan。编译的过程还是比较复杂的。总结起来包括以下几个关键步骤:1. 对HQL 做变量替换预处理;2. 构造一个ParseDriver 对象做语法分析,将HQL 转

2021-12-15 15:17:56 1262

原创 Hive代码分析报告(十一):HQL提交到编译解析过程梳理①

2021SC@SDUSC目录概述HIVE的组成层次从用户接口提交到进入编译解析概述前面的文章中,我们小组通过对代码的阅读和分析以及查阅资料,简单分析了HIVE中HQL语句从输入命令行(用户接口)到进入编译(语义分析)的简单流程。这里我汇总一下前面的分析内容,对HIVE的前两个主要流程进行梳理。HIVE的组成层次Hive 主要分为三个层次:1. Interfaces:这是Hive 对外提供的使用接口主要包括命令行接口、web 接口、基于thrift 协议的服务接口、基于

2021-12-08 15:01:35 720

原创 Hive代码分析报告(十):语义分析⑤

2021SC@SDUSC目录概述补充说明doPhase1()getMetaData(QB, ReadEntity)分析概述上一篇文章中,我分析了doPhase1()函数,这是语义分析的起始阶段,程序的最终目标是将AST的数据载入QB,doPhase1这一阶段主要思想是递归地遍历AST,建立一些必要的映射关系,从而将一些关键信息传给QB,如表、子查询的别名信息、内部子句的名字、聚合操作信息等,进而上面所有这些映射关系都保存在QB/QBParseInfo 中。补充说明doPhas

2021-12-01 19:55:32 1491

原创 Hive代码分析报告(九):语义分析④

2021SC@SDUSC目录概述&&回顾代码分析:生成QB的方法小结:概述&&回顾关于语义解析AST生成QB,前面一直专注于代码阅读,内容比较散乱分裂,现在,在回顾一下HIVE编译器的流程图,我们看到,语义解析主要是把AST Tree转化为QueryBlock,那为什么要转成QueryBlock呢?从之前的分析,我们可以看到AST Tree 还是很抽象,并且也不携带表、字段相关的信息,进行语义解析,就是为了可以将AST Tree分模块存入QueryBl

2021-11-23 17:32:45 1402

原创 Hive代码分析报告(八):语义分析③

2021SC@SDUSC目录概述SemanticAnalyzer类分析:①从analyzeInternal(ASTNode ast)到genResolvedParseTree(ASTNode ,PlannerContext)概述前面,我对BaseSemanticAnalyzer类进行了简单的分析,知道了该类是各个语义分析器的基类,由他派生的子类包括SemanticAnalyzer等诸多查询分析器。尽管查询分析器这个命名具有很强的概括性,或许其包括各种后续相关的查询过程,但指令在编译器

2021-11-16 17:42:30 1546

原创 Hive代码分析报告(七):语义分析②

2021SC@SDUSC目录概述:BaseSemanticAnalyzer类小结:概述:前面我们主要通过关注SemanticAnalyzerFactory工厂类中get(conf, tree)这一方法获得对应的语义分析器sem的操作,总结了每次会话中SessionState对象的CommandType类型如何定义以及与语法分析器的对应关系。接下来的主要分析主要基于通用的语义分析器SemanticAnalyzer进行,这也是处理大部分查询的语义分析器。在看SemanticAnaly

2021-11-09 17:21:17 1436

原创 Hive代码分析报告(六): 语义分析①

2021SC@SDUSC概述经过前面的分析,我们知道,Hive处理一条HQL语句,分前端和编译器部分,前端(Cli)主要负责接受用户在命令行上输入的信息,然后准备执行并将执行的结果返回。而后面的工作由Compiler完成。编译流程的第一步主要由HiveParser部分完成,该类是编译的入口,入参是一条字符串的sql,输出是一棵抽象语法树,ASTNode 是树的头结点,前面的分析知道,其拥有树相关操作、获取孩子节点等方法。之后编译阶段的任务是语义分析,语义分析首先将抽象语法树,解析为一个Q

2021-11-03 16:43:53 1069

原创 Hive代码分析报告(五): 抽象语法树相关类②

2021SC@SDUSC目录ASTNodeOrgin类ASTNodeOrgin类上一篇博客中,我们分析到,ASTNode类对象的成员数据中可能包含一个ASTOrigin对象,根据项目源代码中ASTNode中与ASTOrigin有关的注释,可以知道这个类可能是用来指明ASTNode所源自的对象。下面来分析一下这个类public class ASTNodeOrigin { private final String objectType; private final St

2021-10-27 18:53:23 406

原创 Hive代码分析报告(四): 语义分析①AST相关类解析

2021SC@SDUSC目录概述AST相关类解析:ASTNode类概述前面的两篇文章,简要的把用户命令(HQL)如何进入编译器,走完语法分析、词法分析,生成抽象语法树AST的过程了解了一遍。这有助于从整体上把握编译流程的顺序,有助于更好的分析后续的功能框架。接下来,编译流程进入第二个主要阶段:语义分析阶段。如果把HQL语句比作一句话,那么前面的语法分析、词法分析就是用来分析这句话包含了哪些词、有哪些关键词。而语义分析,顾名思义,就是要读懂这句话。Hive如何读懂HQL这句话?我们

2021-10-20 19:13:26 728

原创 Hive代码分析报告(三):语义分析的前序步骤分析②

2021SC@SDUSC目录概述前序分析②:语法分析:生成AST的环节概述在上一篇的分析中,用户指令经过如下函数调用历程:processCmd()—>CommandProcessor get()-->processLocalCmd()-->run-->runInternal()-->compileInternal()-->compile()经过上述的层层调用,Driver的run方法最终会执行compile()操作,由Compiler.

2021-10-12 19:23:24 406

原创 Hive代码分析报告(二):语义分析的前序步骤分析①

2021SC@SDUSC目录Hive编译过程回顾语义分析框架概述语义分析模块的前序步骤分析前序分析①:HQL进入编译器的步骤Hive编译过程回顾在上一篇文章中,我们知道,hive的核心是HQL的解析过程,也就是编译的过程,HQL的编译需要经过一个复杂的流程,主要有三大部分内容:根据HQL语句生成抽象语法树AST:将HQL转换为AST 进行语义分析:对AST进行类型检查、语义分析等工作 执行计划的生成语义分析框架概述Hive编译流程中,语义分析框架的主要作用是将AST

2021-10-05 22:42:21 360

原创 Hive代码分析报告(一):Hive安装使用、代码分析工作概述

2021SC@SDUSCHive介绍Hive是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能(HQL)。其本质是将类SQL语句转化为MapReduce程序,从而避免了去写 MapReduce程序,减少开发人员的学习成本。Hive的安装部署安装环境使用VMware,Linux系统为CentOS-7安装步骤1.安装hive的前提准备:提前在Linux系统中安装配置jdk、Hadooop、MySql2.Hadoop

2021-09-30 15:33:36 550

空空如也

空空如也

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

TA关注的人

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