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

Posted 胡乐天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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指令)

以上是关于tableau连接doris,std函数不兼容问题的主要内容,如果未能解决你的问题,请参考以下文章

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

不负责任的聊下 Apache Doris

OpenCV 与 std::vector 不兼容? (_crtIsValidHeapPointer 错误)

字节跳动基于Doris的湖仓分析探索实践

tableau 连接R语言

Tableau Desktop 日常问题 5.0打开第二个 Tableau 桌面实例时出现错误“连接错误:Tableau 无法连接到数据源“