官方文档链接地址:https://interestinglab.github.io/waterdrop-docs/#/zh-cn/case_study/2
Hive to ClickHouse

假定我们的数据已经存储在Hive中,我们需要读取Hive表中的数据并筛选出我们关心的字段,或者对字段进行转换,最后将对应的字段写入ClickHouse的表中。

Hive Schema

我们在Hive中存储的数据表结构如下,存储的是很常见的Nginx日志
hive的建表语句如下:

CREATE TABLE `nginx_msg_detail` (
`hostname` string,
`domain` string,
`remote_addr` string,
`request_time` FLOAT,
`datetime` string,
`url` string,
`status` INT,
`data_size` INT,
`referer` string,
`cookie_info` string,
`user_agent` string,
`minute` string
) PARTITIONED BY (`date` string, `hour` string)
ClickHouse Schema

我们的ClickHouse建表语句如下,我们的表按日进行分区

CREATE TABLE cms.cms_msg (
date Date,
datetime DateTime,
url String,
request_time Float32,
STATUS String,
hostname String,
domain String,
remote_addr String,
data_size Int32
) ENGINE = MergeTree PARTITION BY date
ORDER BY
(date, hostname) SETTINGS index_granularity = 16384
Waterdrop with ClickHouse

接下来通过Waterdrop将Hive中的数据写入ClickHouse中。
Waterdrop是通过spark引擎来进行数据导入(spark-sql)
Waterdrop Pipeline
我们仅需要编写一个Waterdrop Pipeline的配置文件即可完成数据的导入。
配置文件包括四个部分,分别是Spark、Input、filter和Output。

在Waterdop的conf目录下创建 vim config/batch.conf
#spark的submit参数,可手动配置
spark {spark.app.name = "Waterdrop"
spark.executor.instances = 2
spark.executor.cores = 2
spark.executor.memory = "2g"
}
#hive的查询语句(table_name为spark的临时表,名字随意)
input {hive {pre_sql = "select * from access.nginx_msg_detail"
table_name = "access_log"
}
}
#可以过滤掉input中不需要写入clickhouse的字段(无过滤可不填写)
filter {remove {source_field = ["minute", "hour"]
}
}
#clickhouse的参数配置
output {clickhouse {host = "your.clickhouse.host:8123"
database = "waterdrop"
table = "access_log" #clickHouse中的表名,需提前建好
fields = ["date", "datetime", "hostname", "uri", "http_code", "request_time", "data_size", "domain"] #写入clickhouse的字段
username = "username"
password = "password"
}
}

output还有部分参数选配:
clickhouse.socket_timeout = 60000 --超时时间

bulk_size = 20000 --批次大小,默认2万条,可适当加大

retry_codes = [209, 210]

retry = 3 --重试次数

执行命令,指定配置文件,运行Waterdrop,即可将数据写入ClickHouse。这里我们以本地模式为例。

./bin/start-waterdrop.sh --config config/batch.conf -e client -m 'local[2]'
在Yarn集群上运行Waterdrop
client 模式 : ./bin/start-waterdrop.sh --master yarn --queue xxxx  --deploy-mode client --config ./config/application.conf
cluster 模式 :./bin/start-waterdrop.sh --master yarn --queue xxxx  --deploy-mode cluster --config ./config/application.conf

Clickhouse导数工具waterdrop用法相关推荐

  1. [系统安全] 四.OllyDbg动态分析工具基础用法及Crakeme逆向破解

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  2. python数据可视化工具 pandas_Pandas数据可视化工具——Seaborn用法整理(下)

    在前一篇文章 Pandas数据可视化工具--Seaborn用法整理(上),我们了解了如何使用这些Seaborn代码绘制分布图和分类图.在本文中,我们将继续讨论Seaborn提供的一些其他以绘制不同类型 ...

  3. php后台代码自动生成程序,Thinkphp自定义代码生成工具及用法说明(附下载地址)...

    本文实例讲述了Thinkphp自定义代码生成工具及用法说明.分享给大家供大家参考,具体如下: 我最近沮丧的发现在使用Thinkphp很多时候我都在做重复的事情,比如重复写最简单的CRUD方法,编写表单 ...

  4. sqlmap工具使用用法详解

    2019独角兽企业重金招聘Python工程师标准>>> sqlmap工具使用用法详解 QLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的 ...

  5. pandas 作图 统计_Pandas数据可视化工具——Seaborn用法整理(下)

    本科数学,编程几乎零基础(之前只学过matlab)今年年初开始学习Python数据挖掘,找到了一个很好的平台--BigQuant,省去了安装Python和安装各种库的烦恼.我最近在开始了解机器学习,B ...

  6. (大集合)AI工具和用法汇总—集合的集合

    AI 工具和用法汇总 汇集整理 by Staok/瞰百,源于相关资料在我这慢慢越积累越多,到了不得不梳理的程度. 文中有许多内容作者还没有亲自尝试,所以很多内容只是罗列,但信息大源都已给出,授人以渔, ...

  7. 大数据ClickHouse(二十):ClickHouse 可视化工具操作

    文章目录 ClickHouse 可视化工具操作 一.tabix 1.直接浏览器访问 2.ClickHouse内嵌方式

  8. nodejs gm 中文 linux,nodejs图片处理工具gm用法

    在做H5应用中,有时候会涉及到一些图片加工处理的操作,nodejs有一个很好的后台图片处理module,就是这里说的gm.gm有官方文档,但感觉写得太抽象,反而看不懂了.这里把一些常见的用法写下,供大 ...

  9. 端口扫描工具终极用法

    了解更多:端口扫描工具终极用法 | 至察助安 - 网络安全干货博客 为什么要做c段探测,运营商分配给IDC机房地址时大部分都是连续IP地址,租给客户(渗透目标)时很大概率会分配同C段内IP地址(除非目 ...

最新文章

  1. 七、 面向对象(二)
  2. python距离向量路由算法_路由算法(全网最细)
  3. Modbus教程| Modbus协议,ASCII和RTU帧,Modbus工作
  4. 我是如何自学编程以及如何两个月达到一万粉丝的,辣条的心路历程希望能帮助到你
  5. 华为云计算hcip证书有效期_华为云计算容器HCIP V1.0认证
  6. 三宝小精灵机器人_三宝小精灵机器人
  7. 只需五步,中国电信物联网报障指引来了
  8. 联想关闭计算机,联想电脑关机后自动重启怎么回事
  9. Python制作统计图形
  10. Elasticsearch7.13+kibana7.13安装
  11. 狂神说docker 常用命令笔记
  12. d3带箭头和点击事件的力导向关系图
  13. 软件产品的税收优惠政策
  14. NVIDIA英伟达jetson xavier nx怎么进入Recovery模式
  15. PHP实现页面静态化
  16. Git快速入门-git stash 暂存变更,git reset 撤销commit,git revert 回退远程版本库
  17. doraemon的python 列表
  18. 2021美赛MCM\ICM E题
  19. python3.6爬虫案例:爬取朝秀帮图片
  20. 8.java中面向对象---基础概念(1)(附讲解与练习)

热门文章

  1. 京东首页案例(流式布局)
  2. 对象数据如何转化成数组
  3. 账号密码登录和注册业务逻辑
  4. linux报cpu软锁,内核软死锁
  5. OpenCV开发笔记(五十二):红胖子8分钟带你深入了解直方图对比匹配(图文并茂+浅显易懂+程序源码)
  6. 企业微信与帆软BI内网服务器集成
  7. 用Matlab的.m脚本文件处理实验室数据
  8. 看到一个蛮有意思的简繁体转换
  9. Idea自动导包如何设置,教你两步完成!
  10. 京东上什么卖得最好?