1、环境准备

1.1、下载Davinci包

从github上下载Davinci的Release包或者通过Davinci的Source自行编译打包

Davinci的官网地址
https://edp963.github.io/davinci/

Davinci的GitHub地址
https://github.com/edp963/davinci

选择release版本进行下载

1.2、安装

● JDK 1.8(或更高版本)

● MySql5.5(或更高版本)

● Mail Server (可使用相关公共邮件平台服务,不用安装)

● phantomjs 或 chrome(需同时安装chromedriver,清注意版本)

   phantomjs 的安装步骤: https://blog.csdn.net/q5841818/article/details/77533017

● 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:端口,进入主页

 

版权声明:本文为markisaac原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/markisaac/p/12870777.html