CBoard开源数据可视化工具

打印 上一主题 下一主题

主题 704|帖子 704|积分 2112

CBoard开源数据可视化工具


  
先容



  • 什么是CBoard?CBoard是一个开源的数据可视化工具,皆在简化数据分析过程并提供美观、交互性强的仪表盘。该项目由张洋开发,并在GitCode上分享,让更多的开发者和数据分析师可以或许轻松地创建、分享和协作他们的数据故事。
资源列表

操作系统设置主机名IP所需软件CentOS 7.98C4Gcboard192.168.93.101apache-maven-3.9.0-bin.tar.gz
apache-tomcat-8.5.78.tar.gz
jdk-8u162-linux-x64.tar.gz
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
phantomjs-2.1.1-linux-x86_64.tar.bz2win 11略略略Edge浏览器 基础情况



  • 关闭防火墙
  1. systemctl stop firewalld
  2. systemctl disable firewalld
复制代码


  • 关闭内核安全机制
  1. setenforce 0
  2. sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config
复制代码


  • 修改主机名
  1. hostnamectl set-hostname cboard
复制代码
一、安装JDK

  1. # 卸载原有的JDK环境
  2. [root@cboard ~]# yum -y remove java*
  3. # 安装新的JDK环境
  4. [root@cboard ~]# tar -zxvf jdk-8u162-linux-x64.tar.gz
  5. [root@cboard ~]# mv jdk1.8.0_162 /usr/local/java
  6. [root@cboard ~]# vim /etc/profile
  7. export JAVA_HOME=/usr/local/java/
  8. export PATH=$JAVA_HOME/bin:$PATH
  9. export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  10. [root@cboard ~]# source /etc/profile
  11. [root@cboard ~]# java -version                # 查看版本
  12. java version "1.8.0_162"
复制代码
二、安装Maven



  • 作用:用于项目管理和构建的开源工具
2.1、安装Maven

  1. [root@cboard ~]# tar -zxvf apache-maven-3.9.0-bin.tar.gz
  2. [root@cboard ~]# mv apache-maven-3.9.0 /usr/local/maven
  3. [root@cboard ~]# vim /etc/profile
  4. MAVEN_HOME=/usr/local/maven
  5. PATH=$PATH:$MAVEN_HOME/bin
  6. [root@cboard ~]# mvn -version        # 查看Maven版本
  7. Apache Maven 3.9.0 (9b58d2bad23a66be161c4664ef21ce219c2c8584)
复制代码
2.2、设置Maven



  • 默认使用的是国外的仓库,改为阿里云
  • 默认大概是在153行左右,把表明去掉,更改为下面的内容
  1. [root@cboard ~]# vim /usr/local/maven/conf/settings.xml
  2. <mirror>
  3.       <id>alimaven</id>
  4.       <mirrorOf>central</mirrorOf>
  5.       <name>aliyun maven</name>
  6.       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  7.     </mirror>
复制代码
三、安装Tomcat8

  1. [root@cboard ~]# tar -zxvf apache-tomcat-8.5.78.tar.gz
  2. [root@cboard ~]# mv apache-tomcat-8.5.78 /usr/local/tomcat8
复制代码
四、安装MySQL5版本

4.1、安装相关依赖



  • 卸载CentOS 7系统自带的数据库
  1. [root@cboard ~]# yum -y remove mariadb*
复制代码


  • 安装一些基础工具(minni系统)
  1. [root@cboard ~]# yum -y install vim wget net-tools lrzsz
复制代码


  • 安装MySQL依赖软件包
  1. [root@cboard ~]# yum -y install libaio gcc gcc-c++
复制代码


  • 创建运行MySQL程序的用户
  1. [root@cboard ~]# useradd -M -s /sbin/nologin mysql
复制代码
4.2、二进制安装

  1. [root@cboard ~]# tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
  2. [root@cboard ~]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
  3. [root@cboard ~]# mkdir /usr/local/mysql/data
  4. [root@cboard ~]# chown -R mysql:mysql /usr/local/mysql/data/
  5. [root@cboard ~]# cd /usr/local/mysql/bin/
  6. # 执行下面命令配置和初始化数据库,回显的最后12字母就是临时root密码,要牢记,等下会用到
  7. [root@cboard bin]# ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
  8. ######## 部分内容省略
  9. 2024-05-01T02:37:58.642067Z 1 [Note] A temporary password is generated for root@localhost: gCqlrw1yOH=a
  10. ######## 部分内容省略
复制代码
4.3、设定设置文件



  • 二进制安装的MySQL设置文件跟源码编译安装的设置文件类似。
  1. [root@cboard ~]# vim /etc/my.cnf
  2. [client]
  3. socket=/usr/local/mysql/data/mysql.sock
  4. [mysqld]
  5. socket=/usr/local/mysql/data/mysql.sock
  6. # 绑定监听地址0.0.0.0
  7. bind-address = 0.0.0.0
  8. # 禁止域名解析,减少mysql对外部连接客户端DNS解析的时间
  9. skip-name-resolve
  10. # 设置端口为3306
  11. port=3306
  12. # 设置mysql的安装目录
  13. basedir=/usr/local/mysql
  14. # 设置mysql数据库的数据的存放目录
  15. datadir=/usr/local/mysql/data
  16. # 允许最大连接数
  17. max_connections=2048
  18. # 服务端使用的字符集默认为utf8
  19. character-set-server=utf8
  20. # 创建新表时将使用默认存储引擎
  21. default-storage-engine=INNODB
  22. # sql语句不区分大小写
  23. lower_case_table_names=1
  24. # 设置一次消息传输的最大值
  25. max_allowed_packet=16M
复制代码


  • 将MySQL的可实验文件写入情况变量中
  1. [root@cboard ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
  2. [root@cboard ~]# . /etc/profile
复制代码
4.4、设置systemcatl方式启动

  1. [root@cboard ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
  2. [root@cboard ~]# chmod +x /etc/rc.d/init.d/mysqld
  3. [root@cboard ~]# vim /lib/systemd/system/mysqld.service
  4. [Unit]
  5. Description=mysqld
  6. After=network.target
  7. [Service]
  8. Type=forking
  9. ExecStart=/etc/rc.d/init.d/mysqld start
  10. ExecReload=/etc/rc.d/init.d/mysqld restart
  11. ExecStop=/etc/rc.d/init.d/mysqld stop
  12. PrivateTmp=true
  13. [Install]
  14. WantedBy=multi-user.target
  15. [root@cboard ~]# systemctl daemon-reload
  16. [root@cboard ~]# systemctl start mysqld
  17. [root@cboard ~]# systemctl enable mysqld
复制代码
4.5、访问MySQL数据库



  • 使用暂时密码登录数据库,修改root密码
  1. [root@cboard ~]# mysql -u root -p
  2. Enter password:                 # 输入临时密码
  3. mysql> set password=password('wzh.2005');
复制代码
五、安装PhantomJS



  • 如果想要看板导出和邮件功能,需要安装
  1. # 安装软件依赖
  2. [root@cboard ~]# yum install -y gcc gcc-c++ make git openssl-devel freetype-devel fontconfig-devel
  3. [root@cboard ~]# yum install -y bitmap-fonts bitmap-fonts-cjk
  4. [root@cboard ~]# yum -y install bzip2
  5. [root@cboard ~]# tar xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
  6. [root@cboard ~]# mv phantomjs-2.1.1-linux-x86_64 /usr/local/
  7. [root@cboard ~]# ln -sf /usr/local/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
复制代码
六、git下载源码包



  • 安装git工具
  1. [root@cboard ~]# yum -y install git*
复制代码


  • 克隆源码包
  1. [root@cboard ~]# git clone https://github.com/yzhang921/CBoard.git
  2. # 拷贝之后root目录下就会有一个CBoard的目录
  3. [root@cboard ~]# ls CBoard/
  4. changelog   imgs  LICENSE.txt  README.md     sql
  5. Dockerfile  lib   pom.xml      Readme_zh.md  src
  6. [root@cboard ~]# cd CBoard/
  7. # 使用的版本是0.4
  8. [root@cboard CBoard]# git checkout branch-0.4
  9. 分支 branch-0.4 设置为跟踪来自 origin 的远程分支 branch-0.4。
  10. 切换到一个新分支 'branch-0.4'
复制代码
七、修改Maven设置文件

  1. [root@cboard ~]# vim CBoard/src/main/resources/config.properties
  2. validationQuery=SELECT 1
  3. jdbc_url=jdbc:mysql://192.168.93.101:3306/cboard        # 修改,下面会导入元数据文件cboard数据库
  4. jdbc_username=root                # MySQL用户
  5. jdbc_password=wzh.2005                # MySQl用户密码
  6. dataprovider.resultLimit=3000000        # 修改
  7. admin_user_id=1
  8. phantomjs_path=/usr/local/phantomjs-2.1.1-linux-x86_64/bin/phantomjs        # 修改为phantomjs的绝对安装路径即可
复制代码
八、设置平台默认语言

  1. [root@cboard ~]# vim CBoard/src/main/webapp/org/cboard/Settings.js
  2. var settings = {
  3.     preferredLanguage: "cn" // en/cn: 可选值en/cn
  4. };
复制代码
九、删除SQL server驱动



  • 由于源代码以来中默认包含了SQL Server的JDBC驱动,但是该驱动在共有Maven仓库不存在。这个实验的使用不计划SQL Server数据库,以是把CMoard目录下的pom.xml中的下面依赖删除
  1.   [root@cboard ~]# vim CBoard/pom.xml
  2.                  <dependency>
  3.             <groupId>com.microsoft.sqlserver</groupId>
  4.             <artifactId>sqljdbc4</artifactId>
  5.             <version>4.0</version>
  6.         </dependency>
复制代码
十、初始化元数据



  • 安装unzip,解压sql脚本
  1. [root@cboard ~]# yum -y install unzip.x86_64
  2. [root@cboard ~]# unzip foodmart.zip
复制代码


  • 导入数据
  1. [root@cboard ~]# mysql -u root -pwzh.2005
  2. mysql> create database cboard;
  3. mysql> use cboard
  4. mysql> source /root/CBoard/sql/mysql/mysql.sql
  5. mysql> source /root/foodmart.sql
  6. mysql> source /root/cboard_demo.sql
  7. # 查询数据库
  8. mysql> show databases;
  9. +--------------------+
  10. | Database           |
  11. +--------------------+
  12. | information_schema |
  13. | cboard             |
  14. | cboard_demo2       |
  15. | foodmart2          |
  16. | mysql              |
  17. | performance_schema |
  18. | sys                |
  19. +--------------------+
  20. 7 rows in set (0.00 sec)
复制代码
十一、打包源代码



  • 进入源码包实验打包下令
  1. [root@cboard ~]# cd CBoard/
  2. [root@cboard CBoard]# mvn install:install-file -Dfile=lib/sqljdbc4-4.0.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar
  3. [root@cboard CBoard]# mvn clean package
复制代码


  • 打包完成之后,CMoard目录下会多出一个target目录,这个目录下面有我们需要的cboard.war文件,拷贝文件到tomcat目录下的webaaps目录下,然后开启服务,tomcat会主动剖析cboard.war文件,然后生成一个cboard目录
  1. [root@cboard CBoard]# cp -p target/cboard.war /usr/local/tomcat8/webapps/
  2. [root@cboard CBoard]# /usr/local/tomcat8/bin/startup.sh
复制代码
十二、MySQL授权



  • 分别对cboard、cboard_demo2、foodmart2三个数据库进行授权
  1. [root@cboard ~]# mysql -u root -pwzh.2005
  2. mysql> GRANT ALL PRIVILEGES ON cboard.* TO 'root'@'%' IDENTIFIED BY 'wzh.2005' WITH GRANT OPTION;
  3. mysql> GRANT ALL PRIVILEGES ON foodmart2.* TO 'root'@'%' IDENTIFIED BY 'wzh.2005' WITH GRANT OPTION;
  4. mysql> GRANT ALL PRIVILEGES ON cboard_demo.* TO 'root'@'%' IDENTIFIED BY 'wzh.2005' WITH GRANT OPTION;
  5. mysql> FLUSH PRIVILEGES;
复制代码
十三、访问



  • 访问地址:http://192.168.93.101:8080/cboard
  • 默认用户:admin 默认密码:root123




十四、解决登录进入Error报错



  • 删除掉cboard,用最粗笨的方法,一个一个的SQL指令实验,
  1. mysql> CREATE DATABASE cboard CHARACTER SET utf8;
  2. mysql> USE cboard;
  3. mysql> CREATE TABLE dashboard_board (
  4.     ->   board_id bigint(20) NOT NULL AUTO_INCREMENT,
  5.     ->   user_id varchar(50) NOT NULL,
  6.     ->   category_id bigint(20) DEFAULT NULL,
  7.     ->   board_name varchar(100) NOT NULL,
  8.     ->   layout_json text,
  9.     ->   PRIMARY KEY (board_id)
  10.     -> );
  11. mysql> CREATE TABLE dashboard_category (
  12.     ->   category_id bigint(20) NOT NULL AUTO_INCREMENT,
  13.     ->   category_name varchar(100) NOT NULL,
  14.     ->   user_id varchar(100) NOT NULL,
  15.     ->   PRIMARY KEY (category_id)
  16.     -> );
  17. mysql> CREATE TABLE dashboard_datasource (
  18.     ->   datasource_id bigint(20) NOT NULL AUTO_INCREMENT,
  19.     ->   user_id varchar(50) NOT NULL,
  20.     ->   source_name varchar(100) NOT NULL,
  21.     ->   source_type varchar(100) NOT NULL,
  22.     ->   config text,
  23.     ->   PRIMARY KEY (datasource_id)
  24.     -> );
  25. mysql> CREATE TABLE dashboard_widget (
  26.     ->   widget_id bigint(20) NOT NULL AUTO_INCREMENT,
  27.     ->   user_id varchar(100) NOT NULL,
  28.     ->   category_name varchar(100) DEFAULT NULL,
  29.     ->   widget_name varchar(100) DEFAULT NULL,
  30.     ->   data_json text,
  31.     ->   PRIMARY KEY (widget_id)
  32.     -> );
  33. mysql> CREATE TABLE dashboard_dataset (
  34.     ->   dataset_id bigint(20) NOT NULL AUTO_INCREMENT,
  35.     ->   user_id varchar(100) NOT NULL,
  36.     ->   category_name varchar(100) DEFAULT NULL,
  37.     ->   dataset_name varchar(100) DEFAULT NULL,
  38.     ->   data_json text,
  39.     ->   PRIMARY KEY (dataset_id)
  40.     -> );
  41. mysql> CREATE TABLE dashboard_user (
  42.     ->   user_id varchar(50) NOT NULL,
  43.     ->   login_name varchar(100) DEFAULT NULL,
  44.     ->   user_name varchar(100) DEFAULT NULL,
  45.     ->   user_password varchar(100) DEFAULT NULL,
  46.     ->   user_status varchar(100) DEFAULT NULL,
  47.     ->   PRIMARY KEY (user_id)
  48.     -> );
  49. mysql> INSERT INTO dashboard_user (user_id,login_name,user_name,user_password)
  50.     -> VALUES('1', 'admin', 'Administrator', 'ff9830c42660c1dd1942844f8069b74a');
  51. mysql> CREATE TABLE dashboard_user_role (
  52.     ->   user_role_id bigint(20) NOT NULL AUTO_INCREMENT,
  53.     ->   user_id varchar(100) DEFAULT NULL,
  54.     ->   role_id varchar(100) DEFAULT NULL,
  55.     ->   PRIMARY KEY (user_role_id)
  56.     -> );
  57. mysql> CREATE TABLE dashboard_role (
  58.     ->   role_id varchar(100) NOT NULL,
  59.     ->   role_name varchar(100) DEFAULT NULL,
  60.     ->   user_id varchar(50) DEFAULT NULL,
  61.     ->   PRIMARY KEY (role_id)
  62.     -> );
  63. mysql> CREATE TABLE dashboard_role_res (
  64.     ->   role_res_id bigint(20) NOT NULL AUTO_INCREMENT,
  65.     ->   role_id varchar(100) DEFAULT NULL,
  66.     ->   res_type varchar(100) DEFAULT NULL,
  67.     ->   res_id bigint(20) DEFAULT NULL,
  68.     ->   permission varchar(20) DEFAULT NULL,
  69.     ->   PRIMARY KEY (role_res_id)
  70.     -> );
  71. mysql> CREATE TABLE dashboard_job (
  72.     ->   job_id bigint(20) NOT NULL AUTO_INCREMENT,
  73.     ->   job_name varchar(200) DEFAULT NULL,
  74.     ->   cron_exp varchar(200) DEFAULT NULL,
  75.     ->   start_date timestamp NULL DEFAULT NULL,
  76.     ->   end_date timestamp NULL DEFAULT NULL,
  77.     ->   job_type varchar(200) DEFAULT NULL,
  78.     ->   job_config text,
  79.     ->   user_id varchar(100) DEFAULT NULL,
  80.     ->   last_exec_time timestamp NULL DEFAULT NULL,
  81.     ->   job_status bigint(20),
  82.     ->   exec_log text,
  83.     ->   PRIMARY KEY (job_id)
  84.     -> );
  85. mysql> CREATE TABLE dashboard_board_param (
  86.     ->   board_param_id bigint(20) NOT NULL AUTO_INCREMENT,
  87.     ->   user_id varchar(50) NOT NULL,
  88.     ->   board_id bigint(20) NOT NULL,
  89.     ->   config text,
  90.     ->   PRIMARY KEY (board_param_id)
  91.     -> );
  92. mysql> ALTER TABLE dashboard_dataset ADD create_time TIMESTAMP DEFAULT now();
  93. mysql> ALTER TABLE dashboard_dataset ADD update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
  94. mysql> UPDATE dashboard_dataset SET update_time = create_time;
  95. mysql> CREATE TRIGGER insert_dataset_update_time_trigger
  96.     -> BEFORE INSERT ON dashboard_dataset FOR EACH ROW SET new.update_time = now();
  97. mysql> CREATE TRIGGER update_dataset_update_time_trigger
  98.     -> BEFORE UPDATE ON dashboard_dataset FOR EACH ROW SET new.update_time = now();
  99. mysql> ALTER TABLE dashboard_datasource ADD create_time TIMESTAMP DEFAULT now();
  100. mysql> ALTER TABLE dashboard_datasource ADD update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
  101. mysql> UPDATE dashboard_datasource SET update_time = create_time;
  102. mysql> CREATE TRIGGER insert_datasource_update_time_trigger
  103.     -> BEFORE INSERT ON dashboard_datasource FOR EACH ROW SET new.update_time = now();
  104. mysql> CREATE TRIGGER update_datasource_update_time_trigger
  105.     -> BEFORE UPDATE ON dashboard_datasource FOR EACH ROW SET new.update_time = now();
  106. mysql> ALTER TABLE dashboard_widget ADD create_time TIMESTAMP DEFAULT now();
  107. mysql> ALTER TABLE dashboard_widget ADD update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
  108. mysql> UPDATE dashboard_widget SET update_time = create_time;
  109. mysql> CREATE TRIGGER insert_widget_update_time_trigger
  110.     -> BEFORE INSERT ON dashboard_widget FOR EACH ROW SET new.update_time = now();
  111. mysql> CREATE TRIGGER update_widget_update_time_trigger
  112.     -> BEFORE UPDATE ON dashboard_widget FOR EACH ROW SET new.update_time = now();
  113.     mysql> ALTER TABLE dashboard_board ADD create_time TIMESTAMP DEFAULT now();
  114. mysql> ALTER TABLE dashboard_board ADD update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
  115. mysql> UPDATE dashboard_board SET update_time = create_time;
  116. mysql> CREATE TRIGGER insert_board_update_time_trigger
  117.     -> BEFORE INSERT ON dashboard_board FOR EACH ROW SET new.update_time = now();
  118. mysql> CREATE TRIGGER update_board_update_time_trigger
  119.     -> BEFORE UPDATE ON dashboard_board FOR EACH ROW SET new.update_time = now();
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表