Davinci既可做爲公有云/私有云獨立使用,也可做爲可視化插件集成到三方系統。用戶只需在可視化UI上簡單配置便可服務多種數據可視化應用,並支持高級交互/行業分析/模式探索/社交智能等可視化功能。node
1) 初始化目錄,將下載好的 Davinci 包(Release 包,不是 Source 包)解壓到某個系統目錄,如:~/app/davincimysql
cd ~/app/davinci
unzip davinci-assembly_3.0.1-0.3.0-SNAPSHOT-dist.zip
複製代碼
解壓後目錄結構以下圖所示:git
2) 配置環境變量,將上述解壓後的目錄配置到環境變量 DAVINCI3_HOMEgithub
export DAVINCI3_HOME=~/app/davinci/davinci-assembly_3.0.1-0.3.0-SNAPSHOT-dist
複製代碼
3) 初始化數據庫,修改 bin 目錄下 initdb.sh 中要的數據庫信息爲要初始化的數據庫,如 davinci0.3redis
mysql -P 3306 -h localhost -u root -proot davinci0.3 < $DAVINCI3_HOME/bin/davinci.sql
複製代碼
運行腳本初始化數據庫(注:因爲 Davinci0.3 系統數據庫中包含存儲過程,請務必在建立數據庫時賦予執行權限)。**spring
sh bin/initdb.sh
複製代碼
4) 初始化配置,Davinci0.3 的配置主要包括:server、datasource、mail、phantomjs、cache 等配置sql
進入config目錄,將application.yml.example重命名爲application.yml 後開始配置。mongodb
cd config
mv application.yml.example application.yml
複製代碼
注:因爲0.3版本使用 ymal 做爲應用配置文件格式,請務必確保每一個配置項鍵後的冒號和值之間至少有一個空格數據庫
server 配置apache
server:
protocol: http
address: 127.0.0.1
port: 8080
access:
address: 192.168.1.1
port: 80
複製代碼
server 配置如上示例所示,server.access.address和server.access.port表示真實訪問地址和端口,默認不開啓,其值默認爲server.address和server.port。
如你在虛擬主機上部署 Davinci,啓動端口爲8080,該主機真實訪問IP地址爲192.168.1.1,你將虛擬主機的8080端口映射到80端口,則需打開 access 配置項,不然將不能正常使用 Davinci 的部分功能,如激活帳號、下載、分享等。
datasource 配置
這裏的 datasource 配置指 Davinci 系統的數據源,配置以下:
spring:
datasource:
url: jdbc:mysql://localhost:3306/davinci0.3?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
initial-size: 2
min-idle: 1
max-wait: 60000
max-active: 10
複製代碼
將上一步初始化的數據庫地址配置到url中,url 中的參數不要作任何修改,而後修改正確的數據庫訪問用戶和密碼即username和password。
initial-size、min-idle、max-wait、max-active是鏈接池參數,具體屬性請參考DruidDataSource配置屬性列表
mail 配置
注:0.3 版本用戶採用註冊激活的方式維護,因此 mail 配置是此版本必不可少的,且 mail 配置出錯率較高,請務必注意
spring:
mail:
host: smtp.****.com
port: 25
username: example@***.com
password: example_password
nickname: Davinci
properties:
smtp:
starttls:
enable: true
required: true
auth: true
mail:
smtp:
ssl:
enable: false
複製代碼
mail 配置並不複雜,以上就是完整的 mail 配置了,username爲郵箱地址,password郵箱服務密碼,須要注意的是常見免費郵箱(如 163 郵箱、QQ 郵箱、gmail 等)這裏應填客戶端獨立密碼,可前往對應郵箱帳號設置頁面開啓 SMTP 服務,並申請客戶端受權碼(或獨立密碼,各郵箱提供商叫法不一樣)。
下表爲常見免費郵箱 SMTP 服務地址及端口:
phantomjs 配置
phantomjs 是用來定時發送報表截圖的,只須要配置安裝好的 phantomjs 可執行文件地址便可,如:
phantomjs_home: /usr/local/bin/phantomjs
複製代碼
cache 配置(可選)
cache 這裏用 redis 做爲緩存服務,配置以下:
spring:
redis:
isEnable: false
host: 10.143.131.119
port: 6379
# cluster:
# nodes:
password:
database: 0
timeout: 1000
jedis:
pool:
max-active: 8
max-wait: 1
max-idle: 8
min-idle: 0
複製代碼
若是要開啓 cache 服務,請將isEnable設爲true,並要設置相關配置(單機方式請打開host和port,集羣方式請打開cluster配置項,兩者只能選擇一種)。
其餘配置
日誌配置文件爲config/logback.xml,如當前的日誌配置不能知足你的要求,可自定義配置日誌模式。
Davinci0.3 理論上支持全部有 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 |
值得注意的是,Davinci 內部只提供了 MySql 的驅動包,也就是說,若是你要使用其餘數據源,還需將對應驅動jar 包手動拷貝到lib目錄並從新啓動 Davinci 服務;Davinci 鏈接 ElasticSearch 目前使用 NLPchina提供的elasticsearch-sql,系統內部默認 ElasticSearch 版本爲5.3.2,對應的 elasticsearch-sql 版本是5.3.2.0。
同理,若是你的 ElasticSearch 不是5.3.2,首先須要你手動下載 NLPchina 提供的對應版本的 jar,而後替換掉目前lib下的 jar,包括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 版本號)。
另外值得注意的是,若是你的數據源不在以上列表中,也能夠經過自定義配置注入數據源,不然不必開啓,除非你知道在作什麼:
1)打開自定義數據源配置文件
mv datasource_driver.yml.example datasource_driver.yml
複製代碼
2)以下配置你的數據源,這裏以 postgresql 爲例
postgresql:
name: postgresql
desc: postgresql
driver: org.postgresql.Driver
keyword_prefix:
keyword_suffix:
alias_prefix: \" alias_suffix: \" 複製代碼
注意
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 服務。