架构师公众号推送了一篇文章,一上来就拿数十个提升sql性能的实战例子,引入了spl (Structured Process Language)集算器,花30分钟浅尝辄止。 顾名思义,集算器,侧重‘集’+‘算’,将 数据集 结合 本地计算,产生结果。所以是非分布式的,所以场景有限。以下是结论。 场景:用于跨数据源查询(join/union) 或 大数据量复杂查询优化(使用游标load to file,再由spl提供的算子分析查询) 竞品:pandas/numpy 优点:代码量较小,适合不熟悉python的用户,否则还是上python或使用可视化平台,如redash/davinci 缺点:单点,质量不可控,社区不活跃 使用对象:分析师 提升示例 https://mp.weixin.qq.com/s/iFdZr1mhBSdYhfPd94OnaQ 产品介绍 http://www.raqsoft.com.cn/p/esproc-spl https://cloud.tencent.com/developer/article/1930545 https://www.modb.pro/db/430573 源码 https://github.com/SPLWare/esProc
Generally speaking, Idea will fix merge conflict by offering a visual window which shows the differences between two files for user, who can then resolve conflicts easily. However, there could be exceptions. In this situation,we have to follow git instructions. Git is so smart, it offers lots of tips for us to deal with every […]
大家对开源项目有兴趣、想成为committer,或者工作需要,会从github上获取最新的开源项目源码。本文做一个示例,怎样搭建本地的源码阅读、开发、构建环境。 首先,在github上找到项目的链接,clone到本地自己的目录中,这步略过。 下面一起看一个示例:使用idea导入kafka 2.4.1版本的源码。 一、idea打开项目后,切换到指定的分支 获取最新分支列表(如果卡很久,shell加一下自己的网络代理,翻墙一下): git fetch –all –tags 获取2.4前缀分支列表: -n 加描述 -l <pattern> 加正则 从git tag创建分支,切换为指定的版本:git checkout tags/<tag> -b <branch> 二、下载依赖 gradle build项目 报错1:本地默认gradle版本过高,没有MavenDeployment这个插件。 为了解决gradle版本问题,项目使用gradle wrapper版本配置。调整idea使用项目的gradle,preference->Build,->Gradle->Use Gradle from,选择gradle/wrapper/gradle-wrapper.properties,重新reload。或者直接执行项目根目录的gradlew,会自动下载指定版本编译。 三、本地开发 熟悉代码内容,方式推荐两种: 1、结合文档看 2、结合jira看,熟悉kafka的代码模块、开发、提交pr的流程 kafka2.8之前需要zk,所以先把本地zk起起来,入口类:core模块的kafka.Kafka 运行前读一下kafka-server-start.sh,知道它的log配置是通过命令参数的方式: 所以,运行时带上参数,如下图: 此外,依然报错: 排查gradle脚本,compile阶段没有依赖slf4j实现库,而是在发布时从test compile拷贝这个依赖,所以可以加一下依赖到core项目的依赖配置中: Tips: 本地一般会有各版本的kafka,这边是开发调试用的,改一下zk地址,添加一下chroot zookeeper.connect=localhost:2181/kafka_dev 四、构建 使用命令行(README.md中有说明),或者直接在idea gradle窗口双击执行相关task。 查看输出的release包 五、延伸 kafka code指引:https://kafka.apache.org/coding-guide.html kafka bug jira:jira kafka contribute:https://kafka.apache.org/contributing […]
本地多版本 本机gradle的安装,可能存在多个版本,例如kafka build要求7.0+,一些android项目使用6.8即可。下载指定版本的包到本地解压即可使用。 下载地址:https://gradle.org/releases/ 引用本地已有maven仓库 默认本地maven仓库地址是~/.m2,该目录下有settings.xml和repo目录。如果maven库不在这个路径,例如我的在~/Documents/software/apache-maven-3.8.3/下,让gradle引用本地maven,直接把自己maven库对应的settings.xml拷贝到~/.m2下替换即可,即通过settings.xml指向相同的maven仓库地址。原理是gradle默认会优先从这个路径找settings.xml,以便定位local maven仓库。 添加国内镜像 与maven一样,gradle默认会放在~/.gradle目录下。例如idea新导入的项目,preference没指定gradle的user home和路径时,会使用默认路径的gradle执行build。这时候,你参考网络上千篇一律的文章,配置镜像地址,发现依赖还是下载很慢。当理解了一件事:和maven一样,也会有多份gradle时,就能知道如何调整了。配置文件是相同的,新建文件:init.gradle,贴如下代码(有诸多的mirror源,这里使用阿里的): 关键在于,看自己使用的是哪个gradle,如果是默认的gradle,将这个文件放在~/.gradle下,如果是其他目录,如我的gradle home为/Users/allen/Documents/software/gradle-7.4,将init.gradle放在这个路径的init.d目录下。重新rebuild project验证一下是否下载速度飞快即可。