开启自助取数功能
Sugar BI 的自助取数功能可以帮助您将所需要的数据以 CSV 形式下载到本地,详见自助取数。
在私有部署中要使用该功能,您需要额外安装部署一套存储系统,用来存储自助取数所生成的 CSV 文件,并且在 Sugar BI 的平台环境变量中加入启用配置(Sugar BI 的 4.0.1
及之后版本才支持)。目前 Sugar BI 支持两种存储系统:百度智能云对象存储 BOS、MinIO,下面将分别介绍这两种储存系统来支持自助取数功能的使用方式:
1、百度智能云对象存储 BOS
如果您部署 Sugar BI 的服务器能够访问公网,并且在浏览器上使用 Sugar BI 的用户电脑也能访问公网,那么我们强烈推荐您使用百度智能云对象存储 BOS作为自助取数的存储系统,否则您需要部署后面一节将要介绍的MinIO方案。
在开通百度智能云对象存储 BOS之后,你需要在 BOS 上创建一个新的 bucket,名称由您自行决定,例如 xxxxxx
:
然后,就可以在 Sugar BI 中来启用该功能了,需要在 Sugar BI 的 env 配置文件中增加以下配置(同理,Swarm、Kubernetes 部署方式也是同样的添加相应的环境变量配置即可)。
下面的 xxxxxx
需要替换为您真实创建的 bucket 的名称,另外还需要填写 endpoint、AK/SK 等信息:
sugar_enable_data_easy_fetch=1
sugar_data_easy_fetch_storage_type=bos
# endpoint填写,北京区域:https://bj.bcebos.com,广州区域:https://gz.bcebos.com,苏州区域:https://su.bcebos.com
sugar_data_easy_fetch_bos_endpoint=https://bj.bcebos.com
sugar_data_easy_fetch_bos_bucket=xxxxxx
# 百度智能云的AK/SK填写,详见 https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
sugar_bos_ak=
sugar_bos_sk=
env 文件更新之后需要重启 Sugar BI,重启成功后即可使用自助取数功能了。
2、MinIO
MinIO是一个使用非常广泛的开源对象存储系统,也是支持使用容器化的方式进行部署,您可以使用 docker pull minio/minio
来下载对应的部署镜像,如果您的服务器不能访问公网,需要您在支持访问公网的机器上预先下载对应镜像,并使用 docker save
、docker load
等命令将镜像装载到服务器中。
部署 MinIO 的服务器,推荐使用容量大于 1TB 的硬盘,和 Sugar BI 本身一样,它也支持单机纯 Docker、Swarm、Kubernetes 三种方式来进行部署,我们推荐使用单机纯 Docker 即可:
一、单机纯 Docker 部署
MinIO 的安装详细过程可参考官方文档,命令如下:
mkdir -p ~/sugarDataEasyFetch
docker run -p 9000:9000 -p 9800:9800 --name minio \
-d --restart=always \
-e MINIO_ROOT_USER=admin \
-e MINIO_ROOT_PASSWORD=admin123 \
-v ~/sugarDataEasyFetch:/data \
minio/minio server /data \
--console-address ":9800" --address ":9000"
上面命令中的端口 9000、9800,以及用户名密码 admin、admin123,你都可以按照实际情况进行修改。部署完成后可以使用浏览器访问 http://部署机器-ip:9800 查看 MinIO 是否部署成功,能看到大体如下的界面:
二、Swarm 部署
- 1、新建一个
minio-compose.yml
文件,并用文本编辑器打开,复制以下的内容并填写相应部分:
version: '3.6'
services:
minio:
image: minio/minio
ports:
- '9000:9000'
- '9800:9800'
restart: always
command: server /data --console-address ":9800" --address ":9000"
deploy:
replicas: 1
placement:
constraints:
#限制minio在swarm部署时部署的固定机器,如: - node.hostname == minio在swarm部署时部署的固定机器ip
# 将上传到minio的文件映射到本地磁盘保存,/sugarDataEasyFetch 为部署机器的磁盘地址,需要填写存在的路径
volumes:
- '/sugarDataEasyFetch:/data'
# MINIO_ROOT_USER为minio登录的用户名;MINIO_ROOT_PASSWORD为minio登录的密码
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: admin123
- 2、在
minio-compose.yml
文件的目录下执行以下命令来启动 MinIO
docker stack deploy --compose-file minio-compose.yml minio
和纯 Docker 方式一样,部署完成后可以通过访问 http://部署的机器-ip:9800 查看 MinIO 是否部署成功。
三、Kubernetes 部署
- 1、新建一个
minio.yaml
文件,并用文本编辑器打开,复制以下的内容并填写相应部分:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: sugar-minio
name: sugar-minio
spec:
replicas: 1
selector:
matchLabels:
app: sugar-minio
template:
metadata:
labels:
app: sugar-minio
spec:
volumes:
- name: data
hostPath:
path: /sugarDataEasyFetch
type: DirectoryOrCreate
containers:
- name: sugar-minio
image: minio/minio
args: ['server', '/data', '--console-address', ':9800', '--address', ':9000']
imagePullPolicy: 'IfNotPresent'
ports:
- name: address
containerPort: 9000
- name: console-address
containerPort: 9800
volumeMounts:
- name: data
mountPath: /data
env:
# MINIO_ROOT_USER为minio登录的用户名;MINIO_ROOT_PASSWORD为minio登录的密码
- name: MINIO_ROOT_USER
value: 'admin'
- name: MINIO_ROOT_PASSWORD
value: 'admin123'
nodeSelector:
# 部署时固定机器,xxxxxx需要替换为机器的ip
kubernetes.io/hostname: xxxxxx
---
apiVersion: v1
kind: Service
metadata:
name: sugar-minio
labels:
app: sugar-minio
spec:
type: NodePort
ports:
- name: address
port: 9000
nodePort: 32590 # 这块使用NodePort方式,并且配置了nodePort为32590端口,可以根据实际情况修改
- name: console-address
port: 9800
nodePort: 32598 # 这块使用NodePort方式,并且配置了nodePort为32598端口,可以根据实际情况修改
selector:
app: sugar-minio
- 2、在
minio.yaml
文件的目录下执行以下命令来启动 MinIO
kubectl apply -f minio.yaml
和纯 Docker 方式一样,部署完成后可以通过访问 http://部署的机器-ip:9800 查看 MinIO 是否部署成功。
平台中启用自助取数
MinIO 存储系统部署完成之后,就可以在 Sugar BI 中来启用自助取数功能了,需要在 Sugar BI 本身的 env 配置文件中增加以下配置(同理,Swarm、Kubernetes 部署方式也是同样的添加相应的环境变量配置即可):
sugar_enable_data_easy_fetch=1
sugar_data_easy_fetch_storage_type=minio
# minio的用户名
sugar_minio_ak=admin
# minio的密码
sugar_minio_sk=admin123
# minio的endpoint,即部署机器的IP,端口是9000
sugar_minio_endpoint=http://部署的机器-ip:9000
# minio存储自助取数时的bucket,默认为以下的sugar-data-easy-fetch即可
sugar_minio_file_bucket=sugar-data-easy-fetch
env 文件更新之后需要重启 Sugar BI,重启成功后即可使用自助取数功能了。
部署验证
部署完成后,可进入「组织管理」->「外部模块部署验证」进行验证。