tableau连接doris,std函数不兼容问题

背景:
tableau通过mysql连接doris。
tableau使用的mysql协议,计算标准差时用到的std函数,在doris中使用的是stddev函数,所以在计算时会报错,以下是为了解决这个问题。

一、 参考网址(版本:doris1.0.0)

编译指南:
http://doris.incubator.apache.org/zh-CN/install/source-install/compilation.html#%E4%BD%BF%E7%94%A8-docker-%E5%BC%80%E5%8F%91%E9%95%9C%E5%83%8F%E7%BC%96%E8%AF%91-%E6%8E%A8%E8%8D%90

源码下载:
http://doris.incubator.apache.org/zh-CN/downloads/downloads.html

二、 下载源码

http://doris.incubator.apache.org/zh-CN/downloads/downloads.html

在这里插入图片描述

在这里插入图片描述

三、 修改源码

3.1 解压

3.2 检索stddev(使用软件:filelocaltor pro)

在这里插入图片描述
观察出大概有:stddev STDDEV StdDev Stddev

3.3 更改文件名

这些文件中带有stddev的都换成std
在这里插入图片描述

3.4 内容替换stddev

全选后,使用NotePad++打开(在打开前,清理notepad++中之前打开的文件)
在这里插入图片描述
输入要替换的内容,进行:替换所有打开文件
在这里插入图片描述
替换内容
stddev->std Stddev->Std STDDEV->STD StdDev->Std
替换完成后,挨个文件进行保存
再次使用filelocaltor pro进行查看,检索不到stddev的时候,就可以了
在这里插入图片描述

3.5 修正std函数标记

查看刚刚修改的内容
在这里插入图片描述

找到FunctionSet.java,可以看到std最前面是个数字的,这就是要修改的标记,将最前面的数字修改成:原数字进行减3(因为该数字代表的是数字之后,到EPN之前的字母个数,由于之前这里是stddev,现在改成了std,所以位数少了3,故要改掉这里,否则std函数的标记对应不上),然后保存
在这里插入图片描述
到此为止,要修改的内容就结束了

3.6 打包

将修改后的内容打包,打zip压缩包(也可以使用7-zip打包tar.gz)

3.7 源码上传及权限配置

源码上传到指定文件夹(例如:/opt/doris)
使用unzip解压zip压缩包

解压完成后,发现里面的sh文件都没有执行的权限(如果解压的tar.gz文件,不会有权限问题,直接跳过),如下图
在这里插入图片描述
由于源码根目录和子目录会有很多.sh文件,一一赋权太过麻烦,此处使用shell脚本进行赋权
①在源码的根目录的同级,创建一个文件: vim chsh;
②将下面源码粘进去
③赋权:执行权限 : chmod +x chsh;
④然后执行 : ./chsh 对应目录

# 采集一个函数
readDir() {
  # 获取传入的目录路径
  local dir=$1
  # 循环指定目录下的所有文件
  local files
  files=$(ls "$dir")
  for file in $files; do
    local path="$dir/$file" #指的是当前遍历文件的完整路径
	# 判断是否是目录,如果是目录则递归遍历,如果是文件则打印该文件的完整路径
    if [ -d "$path" ]; then
      readDir "$path"
    else
      if [[ $path =~ ".sh" ]]; then
		chmod +x $path
	  fi
    fi
  done
}
# 调用函数
readDir $1

赋权限执行后,剩余的就按照编译指南进行(要注意最后编译的时候,提前判断cpu是否支持avx2指令)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值