首页 > 作文

springboot 使用clickhouse实时大数据分析引擎(使用方式)

更新时间:2023-04-05 00:02:00 阅读: 评论:0

声明:

因项目中使用clickhou引擎这里springboot使用的方式是jdbc方式连接,这种方式的好处是可以使用clickhou 自带的fetch方法批量从clickhou中获取数据,对于大量数据的下载来说,比较好

因为如果全部拿到内存中处理,大量数据会有内存溢出的结果

如果批量多次请求数据库对于数据库查询等也不靠谱,所有直接使用clickhou jdbc连接来满足这种情况,不使用mybatis等框架来管理,这里根据大家不同的需求酌情参考即可

使用方式:

第一步:加入clickhou jar包依赖

<!--clickhou-->        <dependency>            <groupid>ru.yandex.clickhou</groupid>            <artifactid>clickhou-jdbc</artifactid>            <version>0.1.40</version>        </dependency>

第二步:配置数据库连接属性配置文件,yml方式 此处仅作为参数,不连接任何驱动

clickhou:  address: jdbc:clickhou://172.20.xxx.xxx:8123  urname: default  password: xxx  db: marketing  sockettimeout: 600000

第三步:添加数据库连接操作util工具类

import lombok.extern.slf4j.slf4j;import org.springframework.beans.factory.annotation.value;import org.springframework.stereotype.component;import net.sf.json.jsonobject;import ru.yandex.clickhou.clickhouconnection;import ru.yandex.clickhou.clickhoudatasource;import ru.yandex.clickhou.ttings.clickhouproperties; import java.sql.*;import java.util.*;/** * @description: * @date 2018/11/12 */@slf4j@componentpublic class clickhouutil {    private static string clickhouaddress;    private static string clickhouurname;    private static string clickhoupassword;    private static string clickhoudb;    private static integer clickhousockettimeout;    @value("${clickhou.address}")    public  void tclickhouaddress(string address) {        clickhouutil.clickhouaddress = address;    }    @value("${clickhou.urname}")    public  void tclickhouurname(string urname) {        clickhouutil.clickhouurname = urname;    @value("${clickhou.password}")    public  void tclickhoupassword(string password) {        clickhouutil.clickhoupassword = password;    @value("${clickhou.db}")    public  void tclickhoudb(string db) {        clickhouutil.clickhoudb = db;    @value("${clickhou.sockettimeout}")    public  void tclickhousockettimeout(integer sockettimeout) {        clickhouutil.clickhousockettimeout = sockettimeout;    public static connection getconn() {        clickhouconnection conn = null;        clickhouproperties properties = new clickhouproperties();        properties.tur(clickhouurname);        properties.tpassword(clickhoupassword);        properties.tdataba(clickhoudb);        propertalotofies.tsockettimeout(clickhousockettimeout);        clickhoudatasource clickhoudatasource = new clickhoudatasource(clickhouaddress,properties);        try {            conn = clickhoudatasource.getco桃花仙人nnection();            return conn;        } catch (sqlexception e) {            e.printstacktrace();        }        return null;    public static list<jsonobject> exesql(string sql){        log.info("cliockhou 执行sql:" + sql);        connection connection = getconn();            statement statement = connection.createstatement();            resultt results = statement.executequery(sql);            resulttmetadata rsmd = results.getmetadata();            list<jsonobject> list = new arraylist();            while(results.next()){                jsonobject row = new jsonobject();                for(int i = 1;i<=rsmd.getcolumncount();i++){                    row.put(rsmd.getcolumnname(i),results.getstring(rsmd.getcolumnname(i)));                }                list.add(row);            }            return list;}

第四步:test简单使用执行sql查询数据

import com.renrenche.databus.common.clickhouutil房地产政策分析;import com.renrenche.data多彩的活动作文六年级点面结合bus.common.result;import com.renrenche.databus.domain.logdata.fem.femparam;import com.renrenche.databus.rvice.fem.femmainrvice;import net.sf.json.jsonobject;import org.junit.test;import org.junit.runner.runwith;import org.springframework.beans.factory.annotation.autowired;import org.springframework.boot.test.context.springboottest;import org.springframe广州大学是一本还是二本work.test.context.junit4.springrunner; import java.util.list;/** * @auther: qixin * @date: 2018/12/11 15:05 * @description: */@runwith(springrunner.class)@springboottestpublic class mtest {    @test    public void getfrsdatatest(){        system.out.println("******************");        string sql="lect * from marketing.m_campaign_real_time_report";        list<jsonobject> result= clickhouutil.exesql(sql);    }}

执行完毕打印结果查看即可,

fetch方法之后再补充

到此这篇关于springboot使用clickhou实时大数据分析引擎的方法的文章就介绍到这了,更多相关springbootclickhou大数据分析引擎内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-05 00:01:59,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/73e59c9a9cdbbe1e81561c914fa14dde.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:springboot 使用clickhouse实时大数据分析引擎(使用方式).doc

本文 PDF 下载地址:springboot 使用clickhouse实时大数据分析引擎(使用方式).pdf

标签:方式   数据   大数   引擎
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图