喜欢coding的谢同学
码龄4年
  • 285,449
    被访问
  • 276
    原创
  • 18,361
    排名
  • 267
    粉丝
  • 7
    铁粉
关注
提问 私信

个人简介:既然不是计算机专业出生,那就必须更努力。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2018-12-15
博客简介:

JiajunBernoulli的博客

查看详细资料
  • 5
    领奖
    总分 1,050 当月 20
个人成就
  • 获得256次点赞
  • 内容获得116次评论
  • 获得1,530次收藏
创作历程
  • 11篇
    2022年
  • 59篇
    2021年
  • 104篇
    2020年
  • 103篇
    2019年
成就勋章
TA的专栏
  • IDEA
    4篇
  • Linux
    5篇
  • 爬虫
    26篇
  • 入门推荐
    9篇
  • 技巧工具
    3篇
  • 实战
    14篇
  • 数据可视化
    4篇
  • Spark
    15篇
  • Flink
    3篇
  • Hadoop
    19篇
  • YARN
    4篇
  • HBase
    1篇
  • Hive
    10篇
  • Presto
    12篇
  • SQL编译
  • Antlr
    4篇
  • JavaCC
    4篇
  • Calcite
    25篇
  • 数据库
    5篇
  • MySQL
    3篇
  • Redis
    2篇
  • Java后端
    19篇
  • Spring
    6篇
  • Git
    3篇
  • Gradle
    3篇
  • Elasticsearch
    5篇
  • Scala
    7篇
  • 容器化
    1篇
  • Docker
    10篇
  • LeetCode
    8篇
  • 算法
    3篇
  • 数据库
    4篇
  • 大数据算法
    6篇
  • 数学建模
    20篇
  • tensorflow/models模块的学习记录
    12篇
  • sklearn学习记录
    5篇
兴趣领域 设置
  • 大数据
    hadoophivespark
  • 数据库管理
    数据仓库
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

浅谈Calcite的Calc优化

Calcite的Calc优化到底怎么用?
原创
发布博客 2022.07.18 ·
21 阅读 ·
0 点赞 ·
0 评论

Flink计算列实现原理

文章目录CreateParseValidateConvertExecuteSelectParseValidateConvertCreateParse直接使用CalciteParser将String的Sql解析为SqlNode,虚拟列对应的SqlNode的SqlComputedColumn在Flink的设计文档中,虚拟列也被称为计算列。其实应该是刻意与Calcite原生的虚拟列区分开,因为Flink的计算列在Calcite的虚拟列上进行了一些封装。ValidateFlink不对DDL做val
原创
发布博客 2022.04.03 ·
1506 阅读 ·
0 点赞 ·
0 评论

Calcite的CTE解析转换流程

前言从社区的jira发现了一个CTE相关的问题,着手修复前先看了看Calcite是如何处理CTE的。流程ParseParse完之后将CTE分成SqlWith了两部分withList(CTE定义可能有多个)和body两部分, body就是写在最后一段的查询(有可能不会用到所有定义的CTE)ValidateValidateWith的时候会对withList的的每一项进行验证ConvertconvertWith的时候先从body开始因为from的表可能是CTE中定义的,所以是在conver
原创
发布博客 2022.04.03 ·
35 阅读 ·
0 点赞 ·
0 评论

Calcite的VolcanoPlanner调用流程简介

文章目录前言VolcanoPlannerchangeTraitssetRootfindBestExp总结前言之前分析过HepPlanner的调用以及Graph的变化,这次再来看看VolcanoPlanner的的调用和RelSet的变化VolcanoPlanner从VolcanoPlannerTest的单测不难发现,提供给用户直接调用的接口主要是changeTraits、setRoot、findBestExp三个实际上更这三个方法都被封装在了Programs中,用户一般直接使用Programs#r
原创
发布博客 2022.03.12 ·
315 阅读 ·
0 点赞 ·
0 评论

从Flink1.8看看Calcite的优化规则怎么用

文章目录前言优化优化方式runHepPlannerrunVolcanoPlanner入口总结前言在Flink1.9之前只使用Calcite进行优化,之后因为Blink的合入才带来了Flink自己的优化策略。本文以Flink1.8为例子,看看Calcite的优化规则应该怎么使用。优化优化方式Calcite有两种优化方式,Flink所有的优化规则也都是用的这两种runHepPlannerFlink在使用HepPlanner的时候拆成了三层,最底层的负责创建Calcite的HepPlanner并执行
原创
发布博客 2022.03.06 ·
1600 阅读 ·
0 点赞 ·
0 评论

Calcite HepPlanner的Graph

文章目录前言GraphaddRelToGraphLogicalTableScanLogicalProjectLogicalUnionLogicalIntersectapplyRulesapplyRule总结前言读到了篇有用的博客,介绍了Hepplaner的调用流程,总结起来就是setRoot()将RelNode注册到Graph中(Graph的顶点叫HepRelVertex是对RelNode封装),再进入findBest()按照program一组组的执行优化规则,从Graph中取出符合的点来应用规则。G
原创
发布博客 2022.03.04 ·
211 阅读 ·
0 点赞 ·
0 评论

Calcite的RelFieldTrimmer简介

文章目录介绍调试起承转合总结介绍列裁剪是一种常见的SQL优化手段,Calcite当中通过RelFieldTrimmer来实现。代码基于calcite-1.29.0大概看一下这个类,它持有两个对象,relBuilder用来构建plan、trimFieldsDispatcher通过反射调用获得结果;它的方法可以分为三类,流程类、裁剪类和辅助类,下文会提到。调试我们可以通过debug单测来学习RelFieldTrimmer的处理逻辑,RelFieldTrimmerTest会通过RelBuilde
原创
发布博客 2022.02.26 ·
97 阅读 ·
0 点赞 ·
0 评论

从Kylin看看Calcite的使用方式

文章目录前言文件概览ParseValidateconvertoptimize单测分析ParseValidateConvertOptimize前言之前分析了Flink中如何使用Calcite的,这次再来看看Kylin。与Flink直接使用Calcite的社区版本不同,Kylin单独维护了一个自己版本的Calcite这种方式优点是遇到能够更深入的开发一些社区不具备的功能,缺点是和社区同步升级成本较高(Calcite的社区版本已经到1.30.0了,Kylin还是在1.16.0的基础上发版)文件概览先粗
原创
发布博客 2022.02.05 ·
992 阅读 ·
0 点赞 ·
0 评论

从Flink看看Calcite的使用方式

文章目录前言分析parseplanner前言已经有过一些博客介绍了Calcite的源码,但还没有介绍过如何使用Calcite的。Flink解析和优化用的都是Calcite,加上Flink的代码质量,应该是最适合参考的项目之一了。分析Flink一直致力于流批一体的处理,重构了不少代码,但是SQL的解析优化都在table模块中1.14.3的flink依赖的calcite版本是1.26.0parseFlink有很多自己的语法,所以在flink-sql-parse中自定义了很多语法。Flink沿用了
原创
发布博客 2022.02.03 ·
1101 阅读 ·
0 点赞 ·
0 评论

Calcite的PullUp规则

文章目录背景规则UnionPullUpConstantsRule做了什么?怎么做的?AggregateProjectPullUpConstantsRule做了什么?怎么做的?背景之前设计的tranform存在一个bug,可以通过将limit上提来解决,所以学习一下Calcite上提的规则。顺便也为之后的公共表达式消除打下基础。规则UnionPullUpConstantsRule做了什么?从名字不难看出是将union的常量上提,例如下面的SQL有两个常量2select 2, deptno, jo
原创
发布博客 2022.01.31 ·
753 阅读 ·
0 点赞 ·
0 评论

从JdbcTest看看Calcite的View展开的流程

Calcite展开View的流程
原创
发布博客 2022.01.16 ·
229 阅读 ·
0 点赞 ·
0 评论

简单三步为Calcite的SqlParser增加配置

前言Calcite使用JavaCC进行Parse,有着自己独特的parse语法。如果想对其进行修改,而又不影响原生的语法,通常会加一个配置参数——参数关闭的时候保持Calcite原生的Parse逻辑,开启后用自己写的逻辑。下面总结了增加配置的几个步骤步骤定义接口方法实现接口方法使用接口方法总结...
原创
发布博客 2021.12.11 ·
495 阅读 ·
1 点赞 ·
0 评论

使用Avro的JavaAPI读取Parquet

之前学习过一些Scala中不用Spark直接读取Parquet的API,又学习了一下JavaAPI的,在这分享出来。依赖用上了之前分享的mini clusters,这样就不用准备外部的HDFS了<dependency> <groupId>org.apache.parquet</groupId> <artifactId>parquet-avro</artifactId> <version>1.10.0</versio
原创
发布博客 2021.11.27 ·
339 阅读 ·
0 点赞 ·
0 评论

简单两步在单元测试中使用HDFS和Hive

INSERT VALUES Unit TestValidated SqlNode在这里插入代码片before fixINSERT INTO `CATALOG`.`SALES`.`T3`VALUES ROW('a', CAST(1.0 AS INTEGER), CAST(1 AS SMALLINT)),ROW('b', 2, CAST(2 AS SMALLINT)),ROW('c', 3.0, CAST(3 AS SMALLINT)),ROW('d', 4.0, 4),ROW('e', 5
原创
发布博客 2021.11.27 ·
413 阅读 ·
0 点赞 ·
0 评论

移动硬盘打开3台虚拟机很慢,在终端执行和打开浏览器很卡,如何解决?

答:

加固态加内存...硬件升级不了的话,试试用docker替代虚拟机?docker从零开始搭建Hadoop完全分布式(一)-Linux基础版安装与集群环境准备_JiajunBernoulli的博客-CSDN博客

回答问题 2021.11.27

hadoop中三个机器的nodemanager都起不来是为什么

答:

你用的是start-hdfs么?截图没看到启动YARN的日志

回答问题 2021.11.22

后悔没能早知道的IDEA调试功能之变量操作

文章目录Part ANew Class Level Watch????InspectMark Object????Part BEvaluate Expression????Add to watchesShow Referring ObjectsShow ... ObjectPartCJump To SourceJump To Type SourcePart DView/Edit TextView as ...Show TypesMute RenderersCustomize Data Views????程
原创
发布博客 2021.11.07 ·
910 阅读 ·
0 点赞 ·
0 评论

后悔没能早知道的IDEA调试功能之调试会话器和工具窗口

文章目录调试会话开始重启停止配置调试工具FramesVariablesThreadsMemoryOverhead调试会话听????起来陌生,但看????起来熟悉,每次debug都会生成一个调试会话。我们可以在不同的调试会话☎️之间切换,下面就是调试会话列表,记录????着调试过的一些方法(对于我这种“健忘症”????患者太有用了) 调试会话列表可能为????️时,只要找到自己想debug的方法,????️右键debug就行。当然也可以参考官网上的做法,找到运行的按钮????,选择debug开始
原创
发布博客 2021.11.07 ·
263 阅读 ·
1 点赞 ·
0 评论

后悔没能早知道的IDEA调试功能之断点

文章目录断点类型行➡️断点方法????断点字段观察????点异常⚠️断点管理断点移除????断点静音????断点启用⏺️/停用⏹️断点移动/复制⏏️断点断点属性共有独有断点状态断点是debug中最基础、最常用的功能了。掌握下面的技巧,可以帮助你的老板更早换上新车 你更高效地完成✅工作。断点类型其实我也是读到官网的内容才知道断点也分为四种????…行➡️断点在到达设置断点的代码行时暂停程序(是它是它就是它~好像就只用它过这一种????)方法????断点进入或者退出方法时暂停(在方法第一行和最后一
原创
发布博客 2021.11.07 ·
366 阅读 ·
1 点赞 ·
0 评论

这些IDEA功能要是早点知道就好了~

前言今年6月毕业,正式入职一家节奏非常快的公司后,明显感觉自己的debug能力跟不上。于是决心抽点时间,系统性的学习一下Idea的各种功能。本系列基于idea2021.2版本调试首先关注的是调试功能,毕竟每次发现问题总是要花很久才能定位到。从官网能够找到十二个不同的调试功能和教程。在阅读的时候我流下了太多悔恨的泪水????,真后悔没能早点知道这些功能。于是整理出了下面的内容,希望能帮助更多的????‍????校招生们。后悔没能早知道的Idea调试功能之断点...
原创
发布博客 2021.11.07 ·
67 阅读 ·
0 点赞 ·
0 评论
加载更多