因项目中使用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 条评论) |