1、环境准备
1.1、下载Davinci包
从github上下载Davinci的Release包或者通过Davinci的Source自行编译打包
选择release版本进行下载
1.2、安装
● JDK 1.8(或更高版本)
● MySql5.5(或更高版本)
● Mail Server (可使用相关公共邮件平台服务,不用安装)
● phantomjs 或 chrome(需同时安装chromedriver,清注意版本)
phantomjs 的安装步骤:
● Redis(可选择性安装)
2、部署
将下载好的 Davinci 包(Release 包,不是 Source 包)解压到某个系统目录
cd /opt/davinci
unzip davinci-assembly_3.0.1-0.3.1-SNAPSHOT-dist-beta.9.zip
解压后如下图
3、配置环境变量
3.1、临时环境变量配置
只对当前的shell 起作用的环境变量
将上述解压后的目录配置到环境变量 DAVINCI3_HOME
export DAVINCI3_HOME=/opt/davinci
3.2、永久的环境变量设置
对所有的用户的都起作用的环境变量
修改 /etc/profile 文件,如果你的计算机仅仅作为开发使用时推存使用这种方法,因为所有用户的shell都有权使用这个环境变量,可能会给系统带来安全性问题。这里是针对所有的用户的,所有的shell
vi /etc/profile
export DAVINCI3_HOME=/opt/davinci
然后保存,如下图
使环境变量生效:
source /etc/profile
4、初始化数据库
在Mysql上创建一个davinci0.3的数据库
修改 bin 目录下 initdb.sh 中要的数据库信息为要初始化的数据库
运行脚本初始化数据库(注:由于 Davinci 系统数据库中包含存储过程,请务必在创建数据库时赋予执行权限)
sh bin/initdb.sh
5、初始化配置
Davinci 的配置主要包括:server、datasource、mail、phantomjs、cache 等配置
进入config目录,将application.yml.example重命名为application.yml 后开始配置
cd config
mv application.yml.example application.yml
mv datasource_driver.yml.example datasource_driver.yml
注意:由于 Davinci 使用 ymal 作为应用配置文件格式,请务必确保每个配置项键后的冒号和值之间至少有一个空格
5.1、server配置
server 配置如上示例所示,server.access.address和server.access.port表示真实访问地址和端口,默认不开启,其值默认为server.address和server.port
如你在虚拟主机上部署 Davinci,启动端口为8080,该主机真实访问IP地址为192.168.1.1,你将虚拟主机的8080端口映射到80端口,则需打开 access 配置项,否则将不能正常使用 Davinci 的部分功能,如激活账号、下载、分享等
由于使用的是阿里云的ECS弹性服务器(虚拟主机),所以server.address处务必使用0.0.0.0(原地址为127.0.0.1只能用于本机访问),server.access.address则需要配置阿里云的外网IP地址。
5.2、datasource 配置
datasource 配置指 Davinci 系统的数据源
将上一步初始化的数据库地址配置到url中,url 中的参数不要做任何修改,然后修改正确的数据库访问用户和密码即username和password
initial-size、min-idle、max-wait、max-active是连接池参数,具体属性请参考DruidDataSource配置属性列表
5.3、mail配置
Davinci 使用注册–邮件激活添加用户,所以 mail 配置是必不可少的。
mail 配置并不复杂,以上就是完整的 mail 配置了,username为邮箱地址,password邮箱服务密码,需要注意的是常见免费邮箱(如 163 邮箱、QQ 邮箱、gmail 等)这里应填客户端独立密码,可前往对应邮箱账号设置页面开启 SMTP 服务,并申请客户端授权码(或独立密码,各邮箱提供商叫法不同)
fromAddress 为可选项,默认为 username 的值,其存在的意义在于部分邮箱服务可能在认证时 username 和 addresss 不同,这时需要配置 fromAddress 作为邮件真实发送地址,username 为连接邮箱服务认证使用
下表为常见免费邮箱 SMTP 服务地址及端口:
注1:阿里云购买的ECS服务器,阿里云默认封禁TCP 25端口出方向的访问流量,即无法在阿里云上的云服务器通过TCP 25端口连接外部地址。所以以上邮箱在设置的时候尽量不要用25端口。阿里云25端口解禁参考:https://help.aliyun.com/knowledge_detail/56130.html?spm=5176.11065259.1996646101.searchclickresult.2fd73e40ygneZN
注2:使用免费邮箱smtp时除开启相关服务外,要使用对应的授权码。否则会邮箱报错 javax.mail.AuthenticationFailedException: 535 Login Fail. Please enter your authorization code to login. More information in http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
进入邮箱的帮助中心
首先打开邮箱的授权码那里,一定要发送邮件的那个邮箱的授权码。
POP3/SMTP服务授权码或者(IMAP/SMTP服务授权码)两个都可以。随便复制一个。复制邮箱给的授权码,到yml配置文件的密码那里。
5.4、截图配置
截图配置用于定时任务功能发送邮件正文中对可视化应用进行截图
default_browser 为默认截图浏览器,其值为PHANTOMJS或CHROME。如果选择PHANTOMJS,则只需配置phantomjs_path;否则只需配置chromedriver_path
注意:phantomjs_path 需配置 PhantomJs 浏览器的可执行文件绝对地址, 而 chromedriver_path 需配置 Chromedriver (非Chrome)可执行文件绝对地址
至此,application.yml已经配置完成
5.5、cache配置(可选)
cache 用 redis 作为缓存服务,配置如下
如果要开启 cache 服务,请将isEnable设为true,并要设置相关配置(单机方式请打开host和port,集群方式请打开cluster配置项,二者只能选择一种)
由于 Davinci Cache 配置遵循 Spring 配置, 所以 Redis 配置除 isEnable 外,不必拘泥以上配置格式,如通过 sentinel 方式连接
5.6、LDAP配置(可选)
除domainName需配置企业邮箱后缀外,其他配置项遵循SpringBoot关于LDAP的配置, 需要注意的是,由于各组织、公司 LDAP 服务字段、域都不尽相同,如需对接 LDAP, 需自行修改源码打包使用,具体修改文件为: server/src/main/java/edp/davinci/service/impl/LdapServiceImpl.java,只需修改findByUsername方法中关于LDAP 相关字段即可。
5.7、使用统计设置(可选)
使用统计开启后将记录可视化应用的使用数据和登录终端信息
如果要开启使用统计,请将enable设为true。统计数据默认情况下会存储到 Davinci 自身使用的 mysql 数据库中,也可以选择存储到 ElasticSearch 中
6、数据源配置
Davinci理论上支持所有有 JDBC 的数据源,默认支持的数据源有:
数据源名称 | 驱动类 |
mysql | com.mysql.jdbc.Driver |
oracle | oracle.jdbc.driver.OracleDriver |
sqlserver | com.microsoft.sqlserver.jdbc.SQLServerDriver |
h2 | org.h2.Driver |
phoenix | org.apache.phoenix.jdbc.PhoenixDriver |
mongodb | mongodb.jdbc.MongoDriver |
elasticSearch | – |
presto | com.facebook.presto.jdbc.PrestoDriver |
moonbox | moonbox.jdbc.MbDriver |
cassandra | com.github.adejanovski.cassandra.jdbc.CassandraDriver |
clickhouse | ru.yandex.clickhouse.ClickHouseDriver |
kylin | org.apache.kylin.jdbc.Driver |
vertica | com.vertica.jdbc.Driver |
hana | com.sap.db.jdbc.Driver |
impala | com.cloudera.impala.jdbc41.Driver |
1、Davinci 内部只提供了 MySql 的驱动包,也就是说,如果你要使用其他数据源,还需将对应驱动jar 包手动拷贝到lib目录并重新启动 Davinci 服务
2、如果你的数据源不在以上列表中,也可以通过自定义配置注入数据源,否则没必要开启,除非你知道在做什么
3、关于 ElasticSearch 数据源的配置情况说明:
Davinci 默认提供了 NLPchina提供的elasticsearch-sql(version: 5.3.2) 驱动,其强依赖 Druid(version: 1.0.15),所以为了避免 Druid 版本冲突,我们建议你在连接 ElasticSearch 时使用版本隔离的方式进行连接,具体请参考多版本隔离配置,你可以根据你的 ES 服务自由选择驱动版本和 Druid 版本,甚至非 NLPChina 提供且支持 JDBC 的驱动包
使用 NLPchina 提供的驱动包需要确认包含以下依赖文件 elasticsearch-xxx.jar、transport-xxx.jar、x-pack-api-xxx.jar、x-pack-transport-xxx.jar、elasticsearch-sql-XXX.jar(xxx表示你的 ElasticSearch 版本号,XXX表示 NLPchina 对应 elasticsearch-sql 版本号)
4、关于 Mongo 数据源的配置情况说明:
由于 MongoDB 官方提供的驱动包没有 Driver 类,需自行查找相应驱动包,目前 Davinci 默认指定的 Mongo 连接方式为(未提供驱动 jar 包):
jdbc url 以 jdbc:mongo:// 开头,如果不符合你的需求,可通过配置自定义数据源解决
6.1、自定义数据源
1、打开自定义数据源配置文件
mv datasource_driver.yml.example datasource_driver.yml
2、如下配置你的数据源,这里以 postgresql 为例
注意
- keyword_prefix和keyword_suffix表示关键字前缀和后缀,假设使用 mysql 数据库,并将desc关键字作为字段使用,那么你的查询语句应该是:
- select `desc` from table 这里的 ‘`’ 就是前后缀,它们必须成对被配置,可以都为空
- alias_prefix和alias_suffix表示别名前后缀,仍以 mysql 为例,假设你的 sql 语句如下:select column as '列' from table 。这里为 ‘column’ 起了别名为‘列’,那么‘’’将作为前后缀配置,前后缀必须成对被配置,可以都为空
- 对于以上别名配置,你可以使用''将字符包起来,也可以使用转义符\,二者只能出现一种
3、手动将相应的驱动 jar 包拷贝到lib目录下
4、重启 Davinci 服务
6.2、多版本隔离
如果你需要同时使用某个数据源的不同版本,需要以下配置:
1、在 datasource_driver.yml 中新增数据源配置,使用 version 字段标记数据源对应版本。version 字段为空时,默认读取 lib 目录下的驱动文件。这里以 hive 为例
2、在 lib/ext 下创建相应数据库及其版本目录(如无 ext 目录,可自行创建) 如:lib/ext/hive2/1.1.0
3、将对应数据源的驱动包放入步骤2 创建的目录
4、重启服务器
5、在 source 新增或修改时选择数据源,详情参考 数据源 - 新增数据源
7、服务启动
Davinci配置完成
bin/start-server.sh
如下图
出现这个,恭喜安装成功
8、登录
输入IP:端口,进入主页