开启自助取数功能
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 等信息:
1sugar_enable_data_easy_fetch=1
2sugar_data_easy_fetch_storage_type=bos
3# endpoint填写,北京区域:https://bj.bcebos.com,广州区域:https://gz.bcebos.com,苏州区域:https://su.bcebos.com
4sugar_data_easy_fetch_bos_endpoint=https://bj.bcebos.com
5sugar_data_easy_fetch_bos_bucket=xxxxxx
6# 百度智能云的AK/SK填写,详见 https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
7sugar_bos_ak=
8sugar_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 的安装详细过程可参考官方文档,命令如下:
1mkdir -p ~/sugarDataEasyFetch
2
3docker run -p 9000:9000 -p 9800:9800 --name minio \
4-d --restart=always \
5-e MINIO_ROOT_USER=admin \
6-e MINIO_ROOT_PASSWORD=admin123 \
7-v ~/sugarDataEasyFetch:/data \
8minio/minio server /data \
9--console-address ":9800" --address ":9000"
上面命令中的端口 9000、9800,以及用户名密码 admin、admin123,你都可以按照实际情况进行修改。部署完成后可以使用浏览器访问 http://部署机器-ip:9800 查看 MinIO 是否部署成功,能看到大体如下的界面:

二、Swarm 部署
- 1、新建一个
minio-compose.yml文件,并用文本编辑器打开,复制以下的内容并填写相应部分:
1version: '3.6'
2
3services:
4 minio:
5 image: minio/minio
6 ports:
7 - '9000:9000'
8 - '9800:9800'
9 restart: always
10 command: server /data --console-address ":9800" --address ":9000"
11 deploy:
12 replicas: 1
13 placement:
14 constraints:
15 #限制minio在swarm部署时部署的固定机器,如: - node.hostname == minio在swarm部署时部署的固定机器ip
16 # 将上传到minio的文件映射到本地磁盘保存,/sugarDataEasyFetch 为部署机器的磁盘地址,需要填写存在的路径
17 volumes:
18 - '/sugarDataEasyFetch:/data'
19 # MINIO_ROOT_USER为minio登录的用户名;MINIO_ROOT_PASSWORD为minio登录的密码
20 environment:
21 MINIO_ROOT_USER: admin
22 MINIO_ROOT_PASSWORD: admin123
- 2、在
minio-compose.yml文件的目录下执行以下命令来启动 MinIO
1docker stack deploy --compose-file minio-compose.yml minio
和纯 Docker 方式一样,部署完成后可以通过访问 http://部署的机器-ip:9800 查看 MinIO 是否部署成功。
三、Kubernetes 部署
- 1、新建一个
minio.yaml文件,并用文本编辑器打开,复制以下的内容并填写相应部分:
1apiVersion: apps/v1
2kind: Deployment
3metadata:
4 labels:
5 app: sugar-minio
6 name: sugar-minio
7spec:
8 replicas: 1
9 selector:
10 matchLabels:
11 app: sugar-minio
12 template:
13 metadata:
14 labels:
15 app: sugar-minio
16 spec:
17 volumes:
18 - name: data
19 hostPath:
20 path: /sugarDataEasyFetch
21 type: DirectoryOrCreate
22 containers:
23 - name: sugar-minio
24 image: minio/minio
25 args: ['server', '/data', '--console-address', ':9800', '--address', ':9000']
26 imagePullPolicy: 'IfNotPresent'
27 ports:
28 - name: address
29 containerPort: 9000
30 - name: console-address
31 containerPort: 9800
32 volumeMounts:
33 - name: data
34 mountPath: /data
35 env:
36 # MINIO_ROOT_USER为minio登录的用户名;MINIO_ROOT_PASSWORD为minio登录的密码
37 - name: MINIO_ROOT_USER
38 value: 'admin'
39 - name: MINIO_ROOT_PASSWORD
40 value: 'admin123'
41 nodeSelector:
42 # 部署时固定机器,xxxxxx需要替换为机器的ip
43 kubernetes.io/hostname: xxxxxx
44---
45apiVersion: v1
46kind: Service
47metadata:
48 name: sugar-minio
49 labels:
50 app: sugar-minio
51spec:
52 type: NodePort
53 ports:
54 - name: address
55 port: 9000
56 nodePort: 32590 # 这块使用NodePort方式,并且配置了nodePort为32590端口,可以根据实际情况修改
57 - name: console-address
58 port: 9800
59 nodePort: 32598 # 这块使用NodePort方式,并且配置了nodePort为32598端口,可以根据实际情况修改
60 selector:
61 app: sugar-minio
- 2、在
minio.yaml文件的目录下执行以下命令来启动 MinIO
1kubectl apply -f minio.yaml
和纯 Docker 方式一样,部署完成后可以通过访问 http://部署的机器-ip:9800 查看 MinIO 是否部署成功。
平台中启用自助取数
MinIO 存储系统部署完成之后,就可以在 Sugar BI 中来启用自助取数功能了,需要在 Sugar BI 本身的 env 配置文件中增加以下配置(同理,Swarm、Kubernetes 部署方式也是同样的添加相应的环境变量配置即可):
1sugar_enable_data_easy_fetch=1
2sugar_data_easy_fetch_storage_type=minio
3# minio的用户名
4sugar_minio_ak=admin
5# minio的密码
6sugar_minio_sk=admin123
7# minio的endpoint,即部署机器的IP,端口是9000
8sugar_minio_endpoint=http://部署的机器-ip:9000
9# minio存储自助取数时的bucket,默认为以下的sugar-data-easy-fetch即可
10sugar_minio_file_bucket=sugar-data-easy-fetch
env 文件更新之后需要重启 Sugar BI,重启成功后即可使用自助取数功能了。
部署验证
部署完成后,可进入「组织管理」->「外部模块部署验证」进行验证。
