代码开放ing.......关注有惊喜

一. 环境准备

  • JDK 1.8(或更高版本)
  • MySql5.5(或更高版本)
  • Mail Server
  • Chrome(需同时安装chromedriver,清注意版本)
  • Redis(可选)

二. 配置部署

2.1 初始化目录

将下载好的 Davinci 包(Release 包,不是 Source 包)解压到某个系统目录,如:~/app/davinci

cd ~/app/davinci
unzip davinci-assembly_3.0.1-0.3.0-SNAPSHOT-dist.zip

解压后目录结构如下图所示:

2.2 配置环境变量

将上述解压后的目录配置到环境变量 DAVINCI3_HOME

export DAVINCI3_HOME=~/app/davinci/davinci-assembly_3.0.1-0.3.0-SNAPSHOT-dist

2.3 初始化数据库

修改 bin 目录下 initdb.sh 中要的数据库信息为要初始化的数据库,如 davinci0.3

mysql -P 3306 -h localhost -u root -proot davinci0.3 < $DAVINCI3_HOME/bin/davinci.sql

运行脚本初始化数据库(注:由于 Davinci 系统数据库中包含存储过程,请务必在创建数据库时赋予执行权限)

sh bin/initdb.sh

2.4 初始化配置

Davinci 的配置主要包括:server、datasource、mail、chrome、cache 等配置

进入config目录,将application.yml.example重命名为application.yml 后开始配置

cd config
mv application.yml.example application.yml

注意:由于 Davinci 使用 ymal 作为应用配置文件格式,请务必确保每个配置项键后的冒号和值之间至少有一个空格

2.4.1 server 配置

server:protocol: httpaddress: 127.0.0.1port: 8080access:address: 192.168.1.1port: 80

server 配置如上示例所示,server.access.addressserver.access.port表示真实访问地址和端口,默认不开启,其值默认为server.addressserver.port

如你在虚拟主机上部署 Davinci,启动端口为8080,该主机真实访问IP地址为192.168.1.1,你将虚拟主机的8080端口映射到80端口,则需打开 access 配置项,否则将不能正常使用 Davinci 的部分功能,如激活账号、下载、分享等

2.4.2 datasource 配置

这里的 datasource 配置指 Davinci 系统的数据源,配置如下:

spring:datasource:url: jdbc:mysql://localhost:3306/davinci0.3?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=trueusername: rootpassword: rootdriver-class-name: com.mysql.jdbc.Driverinitial-size: 2min-idle: 1max-wait: 60000max-active: 10

将上一步初始化的数据库地址配置到url中,url 中的参数不要做任何修改,然后修改正确的数据库访问用户和密码即usernamepassword

initial-sizemin-idlemax-waitmax-active是连接池参数,具体属性请参考DruidDataSource配置属性列表

2.4.3 mail 配置

注:Davinci 使用注册–邮件激活添加用户,所以 mail 配置是必不可少的,且 mail 配置出错率较高,请务必注意

spring:mail:host: smtp.****.comport: 25username: example@***.comfromAddress: password: example_passwordnickname: Davinciproperties:smtp:starttls:enable: truerequired: trueauth: truemail:smtp:ssl:enable: false

mail 配置并不复杂,以上就是完整的 mail 配置了,username为邮箱地址,password邮箱服务密码,需要注意的是常见免费邮箱(如 163 邮箱、QQ 邮箱、gmail 等)这里应填客户端独立密码,可前往对应邮箱账号设置页面开启 SMTP 服务,并申请客户端授权码(或独立密码,各邮箱提供商叫法不同)

fromAddress 为可选项,默认为 username 的值,其存在的意义在于部分邮箱服务可能在认证时 username 和 addresss 不同,这时需要配置 fromAddress 作为邮件真实发送地址,username 为连接邮箱服务认证使用

下表为常见免费邮箱 SMTP 服务地址及端口:

2.4.4 截图配置

截图配置用于定时任务功能发送邮件正文中对可视化应用进行截图

screenshot:default_browser: CHROMEtimeout_second: 600chromedriver_path: $your_chromedriver_path$

default_browser 为默认截图浏览器,目前仅支持 CHROME

注意:chromedriver_path 需配置 Chromedriver (非Chrome)可执行文件绝对地址

2.4.5 cache 配置(可选)

cache 这里用 redis 作为缓存服务,配置如下:

spring:redis:isEnable: falsehost: 10.143.131.119port: 6379#  cluster:#       nodes:password:database: 0timeout: 1000jedis:pool:max-active: 8max-wait: 1max-idle: 8min-idle: 0

如果要开启 cache 服务,请将isEnable设为true,并要设置相关配置(单机方式请打开hostport,集群方式请打开cluster配置项,二者只能选择一种)

由于 Davinci Cache 配置遵循 Spring 配置, 所以 Redis 配置除 isEnable 外,不必拘泥以上配置格式,如通过 sentinel 方式连接

2.4.6 LDAP配置与实现(可选)

LDAP 配置项如下:

spring:ldap:urls: username: password: base: domainName:

domainName需配置企业邮箱后缀外,其他配置项遵循SpringBoot关于LDAP的配置, 需要注意的是,由于各组织、公司 LDAP 服务字段、域都不尽相同,如需对接 LDAP, 需自行修改源码打包使用,具体修改文件为: server/src/main/java/edp/davinci/service/impl/LdapServiceImpl.java,只需修改findByUsername方法中关于 LDAP 相关字段即可。

2.4.7 OAuth2配置(可选)

security:oauth2:enable: falseclient:registration:cas:provider: casclient-id: "xxxxx"client-name: "Sign in with XXX"client-secret: "xxxxx"authorization-grant-type: authorization_codeclient-authentication-method: postredirect-uri-template: "{baseUrl}/login/oauth2/code/{registrationId}"scope: userinfoprovider:cas:authorization-uri: https://cas.xxxxx.cn/cas/oauth2.0/authorizetoken-uri: https://cas.xxxxx.cn/cas/oauth2.0/accessTokenuser-info-uri: https://cas.xxxxx.cn/cas/oauth2.0/profileuser-name-attribute: iduserMapping:email: "attributes.Email"name: "attributes.CnName1"avatar: "attributes.Avatar"

oauth2配置如上示例所示,已cas endpoint为例

security.oauth2.enable设置为true表示启用oauth2

security.oauth2.client.registration.cas.client-id表示客户端id

security.oauth2.client.registration.cas.client-secret表示客户端密钥

security.oauth2.client.registration.cas.authorization-grant-type表示客户端授权方式,authorization_code表示授权码模式

security.oauth2.client.registration.cas.redirect-uri-template表示重定向地址

security.oauth2.client.registration.cas.scope表示访问请求范围

security.oauth2.client.provider.cas.authorization-uri表示授权服务器地址

security.oauth2.client.provider.cas.token-uri表示授权服务器的令牌端点URI

security.oauth2.client.provider.cas.user-info-uri表示UserInfo端点URI

security.oauth2.client.provider.cas.user-name-attribute表示UserInfo响应中返回的属性的名称

security.oauth2.client.provider.cas.userMapping表示用户信息字段映射关系,根据返回的用户的用户信息,获取对应字段的值

security.oauth2.client.provider.cas.userMapping.email表示用户信息的email字段,取值路径为attributes.Email,用户需要根据授权服务器的实际返回自行调整

security.oauth2.client.provider.cas.userMapping.name表示用户信息的name字段,取值路径为attributes.CnName1,用户需要根据授权服务器的实际返回自行调整

security.oauth2.client.provider.cas.userMapping.avatar表示用户信息的name字段,取值路径为attributes.Avatar,用户需要根据授权服务器的实际返回自行调整

2.4.8 使用统计配置

使用统计开启后将记录可视化应用的使用数据和登录终端信息

statistic:enable: false# You can use external elasticsearch storage [127.0.0.1:9300], default davinci datasouceelastic_urls:elastic_index_prefix:

如果要开启使用统计,请将enable设为true。统计数据默认情况下会存储到 Davinci 自身使用的 mysql 数据库中,也可以选择存储到 ElasticSearch 中

2.4.9 数据源信息加密配置(可选)

encryption:maxEncryptSize: 1024type: Off # Off is to turn off encryption, to enable encryption, please select AES or RSA

数据源密码支持加密存储,启用步骤如下:

  1. 运行 SourcePasswordEncryptUtils 的 main 方法,会在 userfiles 目录下生成三个密钥文件 ${DAVINCI3_HOME}/userfiles/AES/private.txt (对称加密密钥),${DAVINCI3_HOME}/userfiles/RSA/private.txt (非对称加密私钥),${DAVINCI3_HOME}/userfiles/RSA/public.txt (非对称加密公钥)。生成以后请务必进行备份,以免由于密钥丢失导致系统无法正确的加解密。

  2. 修改 ${DAVINCI3_HOME}/config/application.yml 中的 encryption.type 为 AES 或 RSA,根据实际情况选择

  3. encryption.maxEncryptSize 为最大加密长度,encryption.type 为 RSA 时有效,根据实际情况调整

2.4.10 其他配置

日志配置文件为config/logback.xml,如当前的日志配置不能满足你的要求,可自定义配置日志模式

三. 数据源配置

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.jartransport-xxx.jarx-pack-api-xxx.jarx-pack-transport-xxx.jarelasticsearch-sql-XXX.jarxxx表示你的 ElasticSearch 版本号,XXX表示 NLPchina 对应 elasticsearch-sql 版本号)

  4. 关于 Mongo 数据源的配置情况说明:

    由于 MongoDB 官方提供的驱动包没有 Driver 类,需自行查找相应驱动包,目前 Davinci 默认指定的 Mongo 连接方式为(未提供驱动 jar 包):

     mongo:name: mongodesc: mongodbversion:driver: mongodb.jdbc.MongoDriverkeyword_prefix: \`keyword_suffix: \`alias_prefix: \"alias_suffix: \"
    

    jdbc url 以 jdbc:mongo:// 开头,如果不符合你的需求,可通过配置自定义数据源解决

3.1 自定义数据源

  1. 打开自定义数据源配置文件
  mv datasource_driver.yml.example datasource_driver.yml
  1. 如下配置你的数据源,这里以 postgresql 为例
  postgresql:name: postgresqldesc: postgresqlversion:driver: org.postgresql.Driverkeyword_prefix:keyword_suffix:alias_prefix: \"alias_suffix: \"

注意

  • keyword_prefixkeyword_suffix表示关键字前缀和后缀,假设使用 mysql 数据库,并将desc关键字作为字段使用,那么你的查询语句应该是:

    select `desc` from table 这里的 ‘`’ 就是前后缀,它们必须成对被配置,可以都为空

  • alias_prefixalias_suffix表示别名前后缀,仍以 mysql 为例,假设你的 sql 语句如下:

    select column as '列' from table

    这里为 ‘column’ 起了别名为‘列’,那么‘’’将作为前后缀配置,前后缀必须成对被配置,可以都为空

  • 对于以上别名配置,你可以使用''将字符包起来,也可以使用转义符\,二者只能出现一种

  1. 手动将相应的驱动 jar 包拷贝到lib目录下

  2. 重启 Davinci 服务

3.2 多版本隔离

如果你需要同时使用某个数据源的不同版本,需要以下配置:

  1. 在 datasource_driver.yml 中新增数据源配置,使用 version 字段标记数据源对应版本。version 字段为空时,默认读取 lib 目录下的驱动文件。这里以 hive 为例

      hive1.1.0:name: hive2desc: hiveversion: 1.1.0driver: org.apache.hive.jdbc.HiveDriverkeyword_prefix: \` keyword_suffix: \`alias_prefix: \`alias_suffix: \`
    
  2. 在 lib/ext 下创建相应数据库及其版本目录(如无 ext 目录,可自行创建) 如:lib/ext/hive2/1.1.0

  3. 将对应数据源的驱动包放入步骤2 创建的目录

  4. 重启服务器

  5. 在 source 新增或修改时选择数据源,详情参考 数据源 - 新增数据源

第二章 davinci 大数据分析平台 安装相关推荐

  1. 大数据分析平台释疑专用帖第二弹

    不管是想要快速了解BI大数据分析平台,还是想要了解BI和自己的需求匹配度,都可关注我们的释疑专用贴. 1.可以分析直播数据吗? 严格来说,只要能够提供数据,就可以做数据可视化分析,直播数据也同理. 如 ...

  2. 【转】使用Apache Kylin搭建企业级开源大数据分析平台

    http://www.thebigdata.cn/JieJueFangAn/30143.html 本篇文章整理自史少锋4月23日在『1024大数据技术峰会』上的分享实录:使用Apache Kylin搭 ...

  3. 第二章:大数据文件系统之HDFS-CSDN就业班-专题视频课程

    第二章:大数据文件系统之HDFS-160人已学习 课程介绍         1.HDFS原理与架构说明 2.HDFS的NameNode和DataNode 3.HDFS缓存机制(Cache) 4.HDF ...

  4. Hadoop大数据平台安装

    实验一:Hadoop大数据平台安装 16281002 杜永坤 1.实验目的 在大数据时代,存在很多开源的分布式数据采集.计算.存储技术,本实验将熟悉并搭建几种常用的大数据采集.处理分析技术环境. &l ...

  5. 阿里大数据分析与应用(part3)--常用的大数据分析平台

    学习笔记,仅供参考,有错必纠 文章目录 常用的大数据分析平台 什么是大数据分析平台 基于Hadoop的大数据分析平台 阿里云大数据平台 典型阿里云大数据平台架构 MaxCompute MaxCompu ...

  6. 超详攻略!Databricks 数据洞察 - 企业级全托管 Spark 大数据分析平台及案例分析

    简介: 5分钟读懂 Databricks 数据洞察 ~ 更多详细信息可登录 Databricks 数据洞察 产品链接:https://www.aliyun.com/product/bigdata/sp ...

  7. 大数据分析平台的功能板块

    行内人士皆知,大数据分析平台的搭建有利于帮助企业构建统一的数据存储和数据处理资源,围绕企业业务开展大数据应用建设,最终形成面向服务化的数据资产.今天我们就以大数据平台为例,欧洲服务器租用,透过平台所包 ...

  8. 大数据分析平台在企业运营中的作用

    在整个信息化的方向上,有三大趋势:云计算.大数据和物联网.在这些趋势下,大数据处于大脑的位置,主要负责将数据收集和处理成信息,甚至变成知识,最后通过物联网技术反馈给现实世界,不断产生更多的价值. 如今 ...

  9. 结构化大数据分析平台设计

    前言 任何线上系统都离不开数据,有些数据是业务系统自身需要的,例如系统的账号,密码,页面展示的内容等.有些数据是业务系统或者用户实时产生的,例如业务系统的日志,用户浏览访问的记录,系统的购买订单,支付 ...

最新文章

  1. 机器学习中的DCGAN-Tensorflow:用于更稳定的训练
  2. Winform 打开下载的文件
  3. Linux下安装oracle数据库步骤
  4. linux驱动编写(字符设备编写框架)
  5. 读书笔记 之《Thinking in Java》(对象、集合、异常)
  6. Matlab画图命令介绍
  7. springBoot集成Activiti6
  8. 计算机打字键盘亮怎么设置,win7系统键盘灯亮着但是不能打字的解决方法?
  9. java实现一码多扫支付_详解JAVA后端实现统一扫码支付:微信篇
  10. java木马源码_用Java编写木马程序【附源代码下载】
  11. java中stringBuilder的用法
  12. Redis学习之scard命令
  13. CNCC 2018 今日开幕,五场特邀报告引爆「大数据推动数字经济」| CNCC 2018
  14. golang 生成二维码海报的实现代码
  15. vc++指定区域截屏
  16. (分子优化BenchMark)Sample Efficiency Matters: A Benchmark for Practical Molecular Optimization(PMO)
  17. HDU 3636-Dragon Balls
  18. 业余数学牛人的数学自学心得(转载)
  19. 京东2017校招:4,7幸运数
  20. 计算机网络专业现状,计算机网络的发展现状及网络体系结构涵义分析论文

热门文章

  1. 物流: 产业联盟要做“带头大哥”
  2. html 隐藏整个fieldset,HTML: fieldset 标签
  3. 简易文章PHP mysql代码,一个没有MYSQL数据库支持的简易留言本的_php
  4. yolov5 CUDA out of memory
  5. Eclipse快捷键 - 代码提示,eclipse点击方法实现自动关闭解决
  6. java swing 获当前日期_Java图形界面Swing下日期控件
  7. swift中escaping与noescaping之区别
  8. 【海岛奇兵】各个版本的安装包
  9. How to study foreign language
  10. ae等高线_Topograph(AE视频高度图地形等高线轮廓脚本) V1.0 免费版