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:端口,進入主頁