Clickhouse(五) JDBC基础案例代码

ClickHouse 系列教程五:多种连接方法 文章目录clickhouse-clientHTTP 接口JDBCPython接口 clickhouse-client 你可以通过clickhouse-client命令行进行连接,使用方法如下: clickhouse-client --multiline --password HTTP 接口 你可以通过HTTP直接连上ClickHouse: root@ubuntu:~# curl 'http:/... 阅读详情

Clickhouse(五) JDBC基础案例代码

1.背景

  1. Clickhouse作为大数据技术中解决OLAP解决方案之一,在处理结构化数据的存储和查询分析方面比传统方案有100–1000倍及以上差异。
  2. 个人实际验证对比,同样的数据查询,使用Clickhouse和Hive,有2400倍的时间差距,处理结构化数据时,Hive远远低于Clickhouse的效率。(Hive是Facebook推出的将SQL语句转换为mapreduce代码的框架,所以Hive查询本质是执行mapreduce代码)
  3. Clickhouse本质是一个数据库管理系统,可以存储,插入,查询数据(DBMS)。所以和MySQL很像,有命令行客户端和API来操作,针对Java,还有JDBC驱动来进行连接和操作,这一点对于Java编程是非常方便的。
    4.感谢俄罗斯Yandex的开源行为
    在这里插入图片描述

2.环境准备

  1. Windows 10
  • 为了技术学习和工作方便,电脑硬件配置建议四核或者6核以上,16GB内存及以上,硬盘在500GB及以上。
  • 如果可以上固态硬盘,强烈推荐上,不需要太大,256即可,将系统启动盘放在这里,软件安装在固态硬盘,启动速度会快很多;
  • 2020年,可以考虑AMD的8核心笔记本或者Intel 9代或者10代的二手笔记本,咸鱼上有很多个人笔记本出售,小心鉴别,还是可以捞到好笔记本的
  • 很多操作系统都会把闲置的内存当成硬盘的缓冲区,所以内存越大,程序加载和操作就会越快。Intel的傲腾内存技术就是从这个思路发展而来,并且发扬光大。让机械硬盘具备固态硬盘的读写速度。
  • 同样的,如果内存不够用,操作系统也会占用部分硬盘空间来做虚拟缓存。所以系统盘放在固态硬盘上更合适。如果可以上支持NVME接口固态就更好,比SATA3接口的固态硬盘速度更快,因为是直接对接PCIE接口的,就是显卡插槽对应的接口,数据传输带宽是非常恐怖的,部分固态硬盘可以达到2000—3500MB的读写速度。以前的内存也就这个读写速度
  1. Idea 2020,也可以使用更早版本
    在这里插入图片描述
  2. JDK 1.8环境,安装教程可以看我的这篇博客windows JDK安装教程
  3. Maven 环境,https://blog.youkuaiyun.com/xiaohu21/article/details/108137771

3.案例代码

package com.doit.clickhouse.test1;

import java.sql.*;

/**
 * @author hulc
 * @slogan: just do it
 * @date 2020/8/25 15:02
 */

public class Test {
    public static void main(String[] args) {

        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        try {
            // 注册驱动,注意这里使用反射方式注册,需要给出全类名
            Class<?> aClass = Class.forName("ru.yandex.clickhouse.ClickHouseDriver");

            // 这个是需要连接的clickhouse的地址,可以是单机节点地址也可以是集群节点地址
            String address = "jdbc:clickhouse://linux100:8123/default";

            // 获取连接
            connection = DriverManager.getConnection(address);

            // 创建执行sql语句的statement对象
            statement = connection.createStatement();

            // 执行sql语句,主要是query和update2大类语句,查询和更新(插入、删除、更新等操作)
            resultSet = statement.executeQuery("select * from tb_a");

            // 处理结果数据,如果使用dbutils,传入一个javabean,直接可以得到一个javabean数组
            while (resultSet.next()){
                String uid = resultSet.getString("uid");
                String name = resultSet.getString("name");

                System.out.println("字段  uid:" + uid + "name: " + name);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关流
            try {
                if(resultSet != null) {
                    resultSet.close();
                }

                if(statement != null) {
                    statement.close();
                }

                if(connection != null) {
                    connection.close();
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}

4.Clickhouse调用思考

  1. 本身Clickhouse是提供了C++接口的,所以Java原本是可以通过JNI对Clickhouse进行调用
  2. java为了降低程序员工作,针对各个数据库,推出了JDBC规范,让各个数据库厂商根据这个规范实现各自的数据库驱动。而Java程序员只需要替换以下驱动、连接地址等可配置信息,就可以换一种数据库而代码不需要变更。只需要更改配置信息即可
  3. 从更大角度来看,上述的JDBC代码,对比java文件IO流、HDFS的java api调用代码、MySQL的java api调用代码等等都是一样的套路。获取连接,进行读写查询等操作,关闭连接。
  4. 在目前公司级别的开发中,新技术层出不穷,各类框架更是争奇斗艳,同一个技术问题会有很多种技术方案,每种方案都会用到不同的技术。从最上层的API调用到底层源码实现,如果要逐一记住是不可能做到的事情,但是这些框架、源码本身的实现思想、解决问题的思路却往往都是相通的。这才是需要值得去归纳,总结,思考和学习的地方。
  5. 现在是 IT最好的时代,计算机广泛应用于各个行业,业务推动技术发展。各类技术资料包括源码都开放出来。能够在13年毕业后就进入到计算机行业,再到参与大数据这个方向的工作,见识到20年前的技术研究决定了现在业务基础的预见级别思想,让人热血沸腾。
spark 通过 jdbc 写入 clickhouse 需要注意的点 最近在用 spark 通过 jdbc 写入 clickhouse 的时候,遇到一些坑,这里分享下,造福人民群众。 一个 WARN WARN JdbcUtils: Requested isolation level 1, but transactions are unsupported 这是因为 clickhouse 不支持事务造成的,解决方案,jdbc 加入 isolationLevel 等于 ... 阅读详情

相关推荐

Kettle与ClickHouse JDBC驱动集成指南

本文还有配套的精品资源,点击获取 简介:在大数据处理中,Kettle(Pentaho Data Integration)作为ETL工具,用于数据整合、清洗和加载。ClickHouse是一个性能卓越的列式数据库,适用于实时分析查询。本文将指导如何在Kettle中添加并使用ClickHouse JDBC驱动,实现高效数据交互,包括驱动安装、连接配置、参数填写、连接测试和数据操作...

weixin_32102617的博客 1991

mybatis写入数据库操作流程

1.连接数据库 使用的是idea自带的database,但是在连接的时候要注意时区的选择,否则在存入时间的时候会出错。 网上有三种修改时区的办法: 1.MySQL 在Advanced选项下修改属性 ServerTimezone = Asia/Shanghai ;这个我没试过 2.postgrepsql vm options 添加-Duser.timezone=PRC 3.clickhouse 2.mybatis往数据库插入数据 1.首先要写一个接口,一般会在controller,Da

CHERISHGF的博客 2481

5G NR 物理层 流程一:从帧结构到TB块,PDSCH/PUSCH 资源映射与TBS计算实战

本文详细解析了5G NR物理层流程,从帧结构到TB块的计算,重点介绍了PDSCH/PUSCH资源映射与TBS计算的实战方法。通过具体案例和公式推导,帮助工程师掌握5G NR资源分配、MCS选择及TBS量化过程,解决实际部署中的常见问题。

weixin_30897233的博客 94

10亿数据秒级查询,ClickHouse太快了!

点击上方蓝色“终端研发部”,选择“设为星标”学最好的别人,做最好的我们“ClickHouse 在数据分析技术领域早已声名远扬,最近由于项目需求使用到了 ClickHouse 做分析数据库,...

这个时代,作为程序员可能要学习小程序 4511

物联网开发笔记(34)- 使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48)

zhusongziye的博客 1万+

从零到一:STM32CubeMX虚拟串口开发中的常见陷阱与优化策略

本文深入探讨了STM32CubeMX在USB虚拟串口开发中的常见问题与优化策略,涵盖数据流吞吐量瓶颈、实时性约束等核心挑战。通过实战案例和代码示例,详细解析了波特率同步异常、数据丢失等问题的解决方案,并提供了DMA配置和中断优先级调优的高级技巧,帮助开发者提升STM32虚拟串口的性能和可靠性。

weixin_29164185的博客 370

记录clickhouse 数据库连接超时问题处理

测试环境,clickhouse 大概有3个亿的数据。业务场景:综合报表,查询一周内的报表数据统计。需要绘制的图表有接近20个,采用ForkJoin 多线程处理。数据库连接:Hikari,默认最大数据库连接数为10,连接超时时间为10s。其次,采用ForkJoin多线程处理,一旦有多线程同时处理且单个线程处理时间过长时,就有可能会连接数超过10,且连接超时时间超过10s,就会抛出连接超时异常。首先,默认最大数据库连接数为10,数量较小(主要),连接超时时间为10s,时长偏短(次要);

qq5621的博客 4556

ClickHouse实现大数据准实时更新

本文介绍了使用 ClickHouse 处理大数据的两种准实时更新方案。由于传统数据库性能不足,ClickHouse 提供高效查询,适合大数据分析。第一种方案采用 ReplacingMergeTree 引擎,结合 optimize final 强制数据合并,实现批量更新,减少频繁更新对性能的影响,但合并操作消耗资源。第二种方案使用 argMax 函数,按最大更新时间聚合数据,确保实时返回最新记录。该方案适用于高吞吐量和实时更新,但查询复杂度和内存消耗较高。

BigCookies的博客 2456

炸金花游戏(3)--基于EV(期望收益)的简单AI模型

前言:   炸金花这款游戏, 从技术的角度来说, 比德州差了很多. 所以他的AI模型也相对简单一些. 本文从EV(期望收益)的角度, 来尝试构建一个简单的炸金花AI. 相关文章:  德州扑克AI--Programming Poker AI(译).  系列文章说来惭愧, 之前一直叫嚷着写德州AI, 不过可惜懒癌晚期, 一直没去实践, T_T. 相比而言,***简单很多, 也更偏重于运...

weixin_30377461的博客 2342

强网杯Web题ezphp解题全记录:利用PHP反序列化与条件竞争拿下服务器

本文详细解析了强网杯Web题目ezphp的解题过程,通过PHP反序列化与条件竞争漏洞的组合利用,成功获取服务器权限。文章深入剖析了反序列化链的构造、文件上传绕过技巧以及条件竞争的实际应用,为CTF选手和Web安全研究者提供了宝贵的实战经验。

weixin_29006187的博客 382

大数据Clickhouse(CK)

Clickhouse (CK) Ubuntu下安装 python连接clickhouse (CK) 需要下载clickhouse-driver驱动。 (1)在线安装 pip install clickhouse-driver即可。 (2)离线安装 先到 https://pypi.org/project/tzlocal/#files 下载 tzlocal-2.1-py2.py3-none-any.whl (16.2 kB) https://pypi.org/project/clickhouse-dri

Acegem的博客 6613

【AI黑话日日新】什么是对比学习?

模型效果高度依赖大规模、高质量的人工标注数据。数据标注不仅成本高昂、周期漫长,在医疗、工业、小众垂类等场景中,甚至难以获取足量的标注样本,严重限制了模型的泛化能力与应用边界。自监督学习的出现,为解决这一问题提供了全新思路——无需人工标注标签,而是利用数据自身的结构与内在关联,构建自生成的监督信号完成模型预训练,再通过微调适配下游任务。在众多自监督学习方法中,对比学习(Contrastive Learning)

专注:太空算力、AI infra、异构调度、大模型成本工程 730

Spark通过ClickHouse-Native-JDBC写入Clickhouse

目前通过JDBC写Clickhouse有两种插件可以用 官方的JDBC:8123端口 基于HTTP实现的,整体性能不太出色,有可能出现超时的现象 housepower的ClickHouse-Native-JDBC:9000端口 基于TCP协议实现,支持高性能写入,数据按列组织并有压缩 记录下使用ClickHouse-Native-JDBC的过程: Spark版本:2.1.0 Clickhouse版本:20.2.1.2183,单点部署 ClickHouse-Native-JDBC版本:2.1-stable

PowerMe 4147

高级图像增强——模拟雨天,雾,雪,阳光,阴影,运动模糊,畸变等14种效果,同步扩充标签文件

本文提供了一些高级的,特殊的图像增强方法,具体包括、光。

Limiiiing的博客 1308

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java-Clickhouse-Druid-jdbc

redis:// 意图是控制是否启用Redis功能。

LXMXHJ的博客 1841

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ClickHouse JDBC Bridge 指南

**ClickHouse JDBC Bridge** 是一个用于 ClickHouse 的实验性项目,它作为一个无状态代理,允许通过 JDBC 接口从 ClickHouse 查询外部数据库。请注意,此项目可能包含不可靠性和安全漏洞,不提供正式支持,使用时需自行承担风险。 ## 2. 项目快速启动 ### 2.1 安装依赖 首先,下载 ClickHouse JDBC Bridge 的 JAR ...

gitblog_00854的博客 1137

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ClickHouse JDBC表引擎(clickhouse-jdbc-bridge)

ClickHouse允许使用jdbc连接到远程数据库(PostgreSQL,SQLite,H2,Mysql,ClickHouse等) 这种引擎clickhouse自己无法完成,需要另外一个服务的支持:clickhouse-jdbc-bridge.它的的作用是接收ClickHouse的http请求,然后去远程查询结果,之后再反馈给ClickHouse. 要使用这个引擎,通常会碰到各种各样的坑,希望我这篇文章能帮助大部分避免一些坑. jdbc-bridge服务需要自己打包部署,或者百度别人打包好的jar包. j

qq_28603127的博客 8037

ClickHouse JDBC引擎之clickhouse-jdbc-bridge

ClickHouse 自带MYSQL引擎,KAFKA引擎,JDBC等 尝试clickhouse查询mysql/oracle/sql server数据,此处应用到JDBC 疫情。 使用JDBC引擎,需安装第三方插件clickhouse-jdbc-bridge。目前clickhouse-server 还未集成该功能(后面可能会有此处优化)。因此需自主下载插件,安装到server 环境中 clickhouse-jdbc-bridge github地址 :https://github.com/Click...

Yuhang.Pei 's blog 2193

ClickHouse Native JDBC 使用教程

ClickHouse Native JDBC 是一个基于 ClickHouse 原生 TCP 协议实现的 JDBC 驱动。该项目旨在提供一个高效、稳定的 ClickHouse 数据库连接方式,支持与 Apache Spark 等大数据处理框架的集成。ClickHouse Native JDBC 项目遵循 Apache License 2.0 开源协议,由社区维护。 ## 项目快速启动 ###

gitblog_00031的博客 1098

clickhouse之JDBC表引擎

clickhouse相比其他数据库的一个特点就是提供了丰富的外部表引擎,其中JDBC引擎允许clickhouse直接通过JDBC接口与外部数据库对接。借助这个特点,clickhouse的一个使用场景就是作为跨数据源的查询引擎。本文主要介绍如何在clickhouse中使用JDBC表引擎。 1. clickhouse-jdbc-bridge 要想实现JDBC表引擎的功能,clickhouse需要借助clickhouse-jdbc-bridge来提供查询代理服务。clickhouse-jdbc-bridge的gi

普普通通程序猿的博客 2603

Spark通过jdbc写入Clickhouse

Spark通过jdbc将Array类型数据写入Clickhouse前言问题解决 前言 一般的将Spark dataframe写入clickhouse的代码. // An highlighted block val prop=new Properties() val ckDriver="ru.yandex.clickhouse.ClickHouseDriver" prop.put(...

qq_35028146的博客 8144

clickhouse官方文档_Spark JDBC写ClickHouse的一些坑

前言最近由于未来工作内容的需要,利用闲碎时间对ClickHouse进行了调研和学习。ClickHouse是由封面贝加尔湖所在的“战斗民族”的Yandex公司所开源的可使用SQL进行实时查询分析的OLAP列式存储数据库。未来可能会用其替代目前使用比较重的Hbase数据库,用于用户画像标签存储,个性化推荐等场景。今天与大家分享的比较偏实战一些,因为这几天在调研这块内容时遇到了不少坑,觉得还是...

weixin_39615984的博客 5354

clickhouse 安装和java通过jdbc链接

检查 需要确保是否x86_64处理器构架、Linux并且支持SSE 4.2指令集 grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported" 官网给的是Ubuntu/Debian的安装方式:如下 sudo apt-get install dir...

weixin_33957648的博客 2797

Clickhouse的clickhouse-client使用、Java/Scala使用JDBC连接Clickhouse、Pyspark连接Clickhouse

目录1. clickhouse-client1.1 交互式协议1.2 非交互模式2. JDBC 更多关于Clickhouse的文章可以查看Clickhouse专栏系列文章 1. clickhouse-client 底层是基于tcp协议 1.1 交互式协议 [root@clickhouse1 ~]# [root@clickhouse1 ~]# clickhouse-client -h clickhouse1 --port 9000 -u default --password default123 -m C

Bulut0907 1万+

clickhouse 中JDBC代码

package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import ru.yandex.clickhouse.ClickHouseDriver; /** * @author stjzstart * @create 2020-10-21 21:43 */ public class CHJ.

weixin_42842042的博客 693
上一篇: Windows10下安装 JDK1.8教程
下一篇: 磁盘读写机制及其在软件框架中的应用
闻香识代码
博客等级 码龄12年 314粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值