开启跨源查询功能
跨源查询是指,多个不同的数据源之间的交叉查询,如一个 MySQL 数据源和一个 Oracle 数据源之间的数据交叉分析。详细说明见跨源查询。
在私有部署中要使用该功能,需要安装 Sugar BI 的跨源查询引擎,并且在 Sugar BI 的平台环境变量中加入启用配置(Sugar BI 的 4.0.1
及之后版本才支持,并且 2 账号的私有部署版本的 Sugar BI 不支持跨源查询功能,详见私有部署版定价)。下面分两步来描述如何在私有部署中开启跨源查询功能:
1、安装部署跨源查询引擎
和 Sugar BI 平台本身一样,Sugar BI 跨源查询引擎也是使用容器化的安装方式,您可以使用 纯 Docker、Swarm、Kubernetes 三种方式来进行部署安装。
下载容器镜像
在部署之前,您需要下载 Sugar BI 跨源查询引擎的容器镜像,同样是两种方式:
A、百度智能云的 docker 镜像服务
Sugar BI 的跨源查询镜像已经上传到百度智能云 docker 镜像服务,您可以使用以下命令获取 Sugar BI 跨源查询镜像:
docker pull registry.baidubce.com/sugarbi/sugar-presto:2.2.0
docker tag registry.baidubce.com/sugarbi/sugar-presto:2.2.0 sugarbi/sugar-presto:2.2.0
// 查看刚刚拉取的镜像
docker images
B、直接在线下载
如果您的部署机器不能连接互联网,您可以在联网的机器上点击这里下载: https://sugar-docker-image.cdn.bcebos.com/sugarbi-presto-2.2.0.tar.gz(如果鼠标点击下载不了,可以复制该地址在浏览器中打开),然后将下载的安装包拷贝到部署机器上,注意:如果您同时部署到多台机器上,需要将下载的安装包文件拷贝到所有部署机器上,并且以下的操作也需要在所有部署机器上执行。
在部署的机器上,进入到您拷贝的安装包的同目录下,
docker load -i ./sugarbi-presto-2.2.0.tar.gz
// 上面的命令会执行数十秒,然后执行以下命令查看刚刚load的镜像
docker images
软硬件要求
软件环境
和 Sugar BI 本身一样,Sugar BI 的跨源查询引擎需要您的服务区安装 Docker
,推荐版本为 v17
及以上。 Sugar BI 跨源查询引擎可以直接运行在单机 Docker 环境上,如果需要集群化、高可用,可以使用 Docker 自带的 Swarm 或者 Kubernetes,您可以自行了解这些基础环境。
硬件推荐配置
Sugar BI 的跨源查询引擎是基于开源的Presto进行开发,安装时需要部署一个 coordinator
节点以及多个 worker
节点(推荐最少两个)。每个节点的最低推荐配置:内存 16G 或以上、CPU(8 核或以上,如 Intel 至强 E5、酷睿 i7 或以上)、硬盘(256GB SSD 或以上)。当然,如果您的单台服务器配置足够高,也可以使用一台服务器来使用纯 Docker 的方式部署这最少的三个节点。另外,跨源查询引擎也完全可以和 Sugar BI 本身部署在同一台机器或者同一个集群中。
一、纯 Docker 部署
下面将逐一介绍如何部署如上描述的两种节点:
coordinator 节点
首先需要明确部署 coordinator 节点的机器的 IP 地址(如:192.168.1.1),将下面的 XXXXXX
替换为该 IP。另外,和 Sugar BI 一样也需要一个一模一样 env
文件,复制过来即可,然后在 env
文件的目录下执行以下命令来启动 coordinator 节点:
docker run --restart unless-stopped -d -p 8001:8080 --name sugar-presto-coordinator --env-file env sugarbi/sugar-presto:2.2.0 http://XXXXXX:8001 coordinator
worker 节点
部署 worker 节点时,同样也需要将下面的 XXXXXX
替换为 coordinator 节点的机器的 IP 地址(注意是 coordinator 节点的 IP
),下面使用两行命令分别在两台服务器上启动了两个 worker 节点(sugar-presto-worker01 和 sugar-presto-worker02。如果您的单台服务器配置足够高,也可以使用一台服务器来部署所有的 coordinator 和 worker 三个节点)。
注意:同样需要 env
文件,操作方式和 coordinator 节点部署时完全一样即可:
docker run --restart unless-stopped -d --name sugar-presto-worker01 --env-file env sugarbi/sugar-presto:2.2.0 http://XXXXXX:8001 worker
docker run --restart unless-stopped -d --name sugar-presto-worker02 --env-file env sugarbi/sugar-presto:2.2.0 http://XXXXXX:8001 worker
coordinator 和 worker 节点部署完成之后,您可以使用浏览器访问 coordinator 节点的 8001
端口,即可看到大体如下的内容(下图红框中即表示当前部署成功的 worker 节点数):
二、Swarm 集群部署
Docker 多机集群模式,我们推荐使用 Docker 自带的 Swarm,关于如何使用 Swarm 请参考 Docker 官方文档。使用 Swarm 部署 Sugar BI 跨源查询引擎分两步:
- 1、新建一个
sugar-presto-compose.yml
文件,并用文本编辑器打开,复制以下的内容并填写相应部分(注意有两部分 MySQL 相关的内容需要填写):
version: '3.6'
services:
coordinator:
image: sugarbi/sugar-presto:2.2.0
deploy:
mode: replicated
replicas: 1
restart_policy:
condition: on-failure
ports:
- '8001:8080'
networks:
- overlay
command: http://coordinator:8080 coordinator
environment:
sugar_can_connect_local_ip: 'true'
# MySQL数据库相关
sugar_db_username: root
sugar_db_password: lovesugar123
sugar_db_database: sugarbi
sugar_db_host: 填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
sugar_db_port: 3306
worker:
image: sugarbi/sugar-presto:2.2.0
deploy:
mode: replicated
replicas: 2
restart_policy:
condition: on-failure
networks:
- overlay
command: http://coordinator:8080 worker
environment:
sugar_can_connect_local_ip: 'true'
# MySQL数据库相关
sugar_db_username: root
sugar_db_password: lovesugar123
sugar_db_database: sugarbi
sugar_db_host: 填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
sugar_db_port: 3306
networks:
overlay:
- 2、在
sugar-presto-compose.yml
文件的目录下执行以下命令来启动跨源查询引擎
docker stack deploy --compose-file sugar-presto-compose.yml sugar-presto
最后在浏览器上访问 coordinator 节点的 8001
端口,即可看到大体如下的内容(下图红框中即表示当前部署成功的 worker 节点数):
三、Kubernetes 集群部署
- 1、新建一个
sugar-presto.yaml
文件,并用文本编辑器打开,复制以下的内容并填写相应部分(注意有两部分 MySQL 相关的内容需要填写):
# coordinator 节点部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: 'sugar-presto-coordinator'
labels:
app: 'sugar-presto-coordinator'
spec:
replicas: 1
selector:
matchLabels:
app: 'sugar-presto-coordinator'
template:
metadata:
labels:
app: 'sugar-presto-coordinator'
spec:
containers:
- name: 'sugar-presto-coordinator-container'
image: sugarbi/sugar-presto:2.2.0
args: ['http://sugar-presto-coordinator:8080', 'coordinator']
imagePullPolicy: 'IfNotPresent'
ports:
- name: coordinator
containerPort: 8080
env:
- name: 'sugar_can_connect_local_ip'
value: 'true'
# MySQL数据库相关
- name: 'sugar_db_host'
value: 填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
- name: 'sugar_db_port'
value: '3306'
- name: 'sugar_db_database'
value: 'sugarbi'
- name: 'sugar_db_username'
value: 'root'
- name: 'sugar_db_password'
value: 'lovesugar123'
---
# worker 节点部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: 'sugar-presto-worker'
labels:
app: 'sugar-presto-worker'
spec:
replicas: 2
selector:
matchLabels:
app: 'sugar-presto-worker'
template:
metadata:
labels:
app: 'sugar-presto-worker'
spec:
containers:
- name: 'sugar-presto-worker-container'
image: sugarbi/sugar-presto:2.2.0
args: ['http://sugar-presto-coordinator:8080', 'worker']
imagePullPolicy: 'IfNotPresent'
ports:
- name: worker
containerPort: 8080
env:
- name: 'sugar_can_connect_local_ip'
value: 'true'
# MySQL数据库相关
- name: 'sugar_db_host'
value: 填写您安装MySQL机器的IP,即使是本机也不能使用localhost和127.0.0.1
- name: 'sugar_db_port'
value: '3306'
- name: 'sugar_db_database'
value: 'sugarbi'
- name: 'sugar_db_username'
value: 'root'
- name: 'sugar_db_password'
value: 'lovesugar123'
---
# Service
apiVersion: v1
kind: Service
metadata:
name: 'sugar-presto-coordinator'
labels:
app: 'sugar-presto-coordinator'
spec:
type: NodePort
ports:
- name: sugar-presto-coordinator
port: 8080
nodePort: 32581 # 这块使用NodePort方式,并且配置了nodePort为32581端口,可以根据实际情况修改
selector:
app: 'sugar-presto-coordinator'
- 2、在
sugar-presto.yaml
文件的目录下执行以下命令来启动 Sugar BI 的跨源查询引擎
kubectl apply -f sugar-presto.yaml
最后在浏览器上访问 coordinator 节点的 32581
端口,即可看到大体如下的内容(下图红框中即表示当前部署成功的 worker 节点数):
2、平台中启用跨源查询功能
跨源查询引擎部署成功之后,就可以在 Sugar BI 中来启用该功能了,需要在 Sugar BI 本身的 env 配置文件中增加以下配置(同理,Swarm、Kubernetes 部署方式也是同样的添加相应的环境变量配置即可)。
下面的 XXXXXX
需要替换为 coordinator 节点的机器的 IP 地址,端口 8001
(k8s 方式下就是上面文档中的 32581
端口) 也需要根据您的实际部署情况来进行调整:
sugar_federated_host=XXXXXX
sugar_federated_port=8001或者32581
env 文件更新之后需要重启 Sugar BI,重启成功后在 Sugar BI 的数据源管理页面即可对数据源「开启跨源查询」功能,如下图:
如上图对某个数据源「开启跨源查询」后,「跨源状态」会变为 待生效
,目前 Sugar BI 中的生效时间默认在每天凌晨 2 点,所以您开启跨源查询后,建议隔天确认一下状态变为 已生效
之后再进行后面的步骤。跨源查询功能的使用详见跨源交叉分析。
部署验证
部署完成后,可进入「组织管理」->「外部模块部署验证」进行验证。