文档简介:
跨源查询是指,多个不同的数据源之间的交叉查询,如一个 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.1.3
docker tag registry.baidubce.com/sugarbi/sugar-presto:2.1.3 sugarbi/sugar-presto:2.1.3
// 查看刚刚拉取的镜像
docker images
B、直接在线下载
如果您的部署机器不能连接互联网,您可以在联网的机器上点击这里下载: https://bce.bdstatic.com/fex/sugar/sugarbi-presto-2.1.3.tar.gz(如果鼠标点击下载不了,可以复制该地址在浏览器中打开),然后将下载的安装包拷贝到部署机器上,注意:如果您同时部署到多台机器上,需要将下载的安装包文件拷贝到所有部署机器上,并且以下的操作也需要在所有部署机器上执行。
在部署的机器上,进入到您拷贝的安装包的同目录下,
docker load -i ./sugarbi-presto-2.1.3.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.1.3 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.1.3 http://XXXXXX:8001 worker
docker run --restart unless-stopped -d --name sugar-presto-worker02 --env-file env sugarbi/sugar-presto:2.1.3 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.1.3 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.1.3 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.1.3 args: ['http://sugar-presto
-coordinator:8080', 'coordinator'] imagePullPolicy: 'IfNotPresent' ports: - name: sugar-presto-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.1.3 args:
['http://sugar-presto-coordinator:8080', 'worker'] imagePullPolicy: 'IfNotPresent' ports: - name:
sugar-presto-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 点,所以您开启跨源查询后,建议隔天确认一下状态变为 已生效 之后再进行后面的步骤。跨源查询功能的使用详见跨源交叉分析。
部署验证
部署完成后,可进入「组织管理」->「外部模块部署验证」进行验证。