如何基于zeppelin JDBC Interpreter进行jdbc数据源的可视化交互分析

大数据 同时被 2 个专栏收录
22 篇文章 4 订阅
6 篇文章 0 订阅

Zeppelin 是一个基于Web的notebook提供数据可视化交互分析的WEB程序。

通过Zeppelin,你做出可数据驱动的、可交互且可协作的精美文档。
Zeppelin支持多种语言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等等。

通过zeppelin的JDBC Interpreter,可以针对所有jdbc数据源进行可视化交互分析。,JDBC Interpreter目前除支持主流的RMDB数据库外,还支持基于spark、flink、hive计算框架进行SQL分析。

什么是Zeppelin?

Zeppelin: Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala, Python, R and more.

特点如下:

  • Multi-purpose Notebook
    The Notebook is the place for all your needs
    • Data Ingestion
    • Data Discovery
    • Data Analytics
    • Data Visualization & Collaboration
  • Multiple Language Backend:
    • 通过Zeppelin解释器允许将任何语言/数据处理后端集成到Zeppelin中
    • 目前支持 Spark, Apache Flink, Python, R, JDBC, Markdown and Shell,详见下图
  • Data visualization
  • Pivot chart:通过简单的拖拽实现数据的透视
  • Dynamic forms,详见dynamic_form
  • Collaborate by sharing your Notebook & Paragraph
  • 100% Opensource

在这里插入图片描述

zeppelin部署

官网地址

第三方软件依赖:
- OpenJDK or Oracle JDK 1.8 (151+)

下载并解压

#从官网下载
cd /tmp
curl -O https://dlcdn.apache.org/zeppelin/zeppelin-0.10.0/zeppelin-0.10.0-bin-all.tgz

#解压
tar -zxvf zeppelin-0.10.0-bin-all.tgz -C /usr/local

#产生配置文件
cp zeppelin-env.sh.template zeppelin-env.sh
cp zeppelin-site.xml.template zeppelin-site.xml 

修改配置

vim zeppelin-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_191
#export HADOOP_CONF_DIR=/etc/hadoop/conf
#export USE_HADOOP=true

vim zeppelin-site.xml

<property>
  <name>zeppelin.server.addr</name>
  <value>0.0.0.0</value>
  <description>Server binding address</description>
</property>

<property>
  <name>zeppelin.server.port</name>
  <value>16888</value>
  <description>Server port.</description>
</property>

启动

启动后,通过jps 可以查看到名称为ZeppelinServer的进程

cd /usr/local/zeppelin
bin/zeppelin-daemon.sh start

JDBC Interpreter

JDBC解释器允许创建到任何数据源的JDBC连接,可以执行任何SQL语句,针对jdbc数据源进行可视化交互分析

详见的配置请参见 interpreter jdbc配置

下图中的数据源官方已经被测试过,本文针对clickhouse 21.8.x,OpenGauss 2.1.0测试,均能正常使用。
在这里插入图片描述

常见数据库的配置

mysql url后面常加参数:useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true

更多的数据库的class、url、driver的配置参见com.alibaba:druid:1.2.1中的com.alibaba.druid.util.JdbcUtilscom.alibaba.druid.util.JdbcConstants两个类

数据库class namejdbc-urldriver jar
mysql5.xcom.mysql.jdbc.Driverjdbc:mysql://ip:port/mysql:mysql-connector-java:5.1.45
mysql8.xcom.mysql.cj.jdbc.Driverjdbc:mysql://ip:port/mysql:mysql-connector-java:8.0.27
postgresqlorg.postgresql.Driverjdbc:postgresql://ip:port/org.postgresql:postgresql:42.2.24
mariadborg.mariadb.jdbc.Driverjdbc:mariadb://ip:portorg.mariadb.jdbc:mariadb-java-client:2.7.4
hiveorg.apache.hive.jdbc.HiveDriverjdbc:hive2://ip:10000org.apache.hive:hive-jdbc:2.3.4
org.apache.hive:hive-exec:2.3.4
prestoio.prestosql.jdbc.PrestoDriverjdbc:presto://ip:9090/hiveio.prestosql:presto-jdbc:350
phoenixorg.apache.phoenix.jdbc.PhoenixDriverjdbc:phoenix:ip1,ip2:2181/hbaseorg.apache.phoenix:phoenix-core:4.4.0-HBase-1.0
clickhousecom.clickhouse.jdbc.ClickHouseDriverjdbc:ch://ip:port/test?socket_timeout=120000com.clickhouse:clickhouse-jdbc:0.3.2
openGaussorg.postgresql.Driverjdbc:postgresql://ip:port/官网下载并上传到服务器,此处指定绝对路径,如
达梦dm.jdbc.driver.DmDriverjdbc:dm://ip:5236/db?
zeroDateTimeBehavior=convertToNull
&useUnicode=true
&characterEncoding=utf-8
gbasecom.gbase.jdbc.Driverjdbc:gbase://ip:8521/db
sqlservercom.microsoft.jdbc.
sqlserver.SQLServerDriver
jdbc:microsoft:sqlserver://ip:1433;
DatabaseName=db
oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@ip:1521:orcl
sybasecom.sybase.jdbc.SybDriverjdbc:sybase:Tds:ip:5007/db

How to use

  • %后面跟jdbc_interpreter_name,如mysql
  • 一次可以执行多条SQL语句
  • 支持2种SQL注释:
    • Single line comment start with –
    • Multiple line comment around with /* … */
  • 连续运行SQL:通过refreshInterval(单位:毫秒),连续运行命令
  • precode: 可以为每个数据源设置precode。precode在打开连接时运行一次。
%mysql
USE nacos;
CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
       species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
%mysql
-- single line comment
show tables;
/* multiple 
   line 
   comment
 */
select * from test_1;
%mysql(refreshInterval=1000)
select * from pet;

使用示例

数据统计示例

%clickhouse
SELECT
    StartURL AS URL,
    AVG(Duration) AS AvgDuration
FROM tutorial.visits_v1
WHERE StartDate BETWEEN '2014-03-23' AND '2014-03-30'
GROUP BY URL
ORDER BY AvgDuration DESC
LIMIT 10

在这里插入图片描述

数据可视化示例

%clickhouse
select toHour(EventTime) as hour,count() as total from tutorial.hits_v1 group by hour;

在这里插入图片描述

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

架构师忠哥

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值