最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot?使用clickhouse實(shí)時(shí)大數(shù)據(jù)分析引擎(使用方式)

 更新時(shí)間:2022年02月11日 15:16:07   作者:Alice_qixin  
這篇文章主要介紹了springboot?使用clickhouse實(shí)時(shí)大數(shù)據(jù)分析引擎的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

聲明:

因項(xiàng)目中使用clickhouse引擎這里springboot使用的方式是jdbc方式連接,這種方式的好處是可以使用clickhouse 自帶的fetch方法批量從clickhouse中獲取數(shù)據(jù),對(duì)于大量數(shù)據(jù)的下載來(lái)說(shuō),比較好

因?yàn)槿绻磕玫絻?nèi)存中處理,大量數(shù)據(jù)會(huì)有內(nèi)存溢出的結(jié)果

如果批量多次請(qǐng)求數(shù)據(jù)庫(kù)對(duì)于數(shù)據(jù)庫(kù)查詢等也不靠譜,所有直接使用clickhouse jdbc連接來(lái)滿足這種情況,不使用mybatis等框架來(lái)管理,這里根據(jù)大家不同的需求酌情參考即可

使用方式:

第一步:加入clickhouse jar包依賴

<!--clickhouse-->
        <dependency>
            <groupId>ru.yandex.clickhouse</groupId>
            <artifactId>clickhouse-jdbc</artifactId>
            <version>0.1.40</version>
        </dependency>

第二步:配置數(shù)據(jù)庫(kù)連接屬性配置文件,yml方式 此處僅作為參數(shù),不連接任何驅(qū)動(dòng)

clickhouse:
  address: jdbc:clickhouse://172.20.xxx.xxx:8123
  username: default
  password: xxx
  db: marketing
  socketTimeout: 600000

第三步:添加數(shù)據(jù)庫(kù)連接操作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.clickhouse.ClickHouseConnection;
import ru.yandex.clickhouse.ClickHouseDataSource;
import ru.yandex.clickhouse.settings.ClickHouseProperties;
 
import java.sql.*;
import java.util.*;
/**
 * @Description:
 * @Date 2018/11/12
 */
@Slf4j
@Component
public class ClickHouseUtil {
    private static String clickhouseAddress;
    private static String clickhouseUsername;
    private static String clickhousePassword;
    private static String clickhouseDB;
    private static Integer clickhouseSocketTimeout;
    @Value("${clickhouse.address}")
    public  void setClickhouseAddress(String address) {
        ClickHouseUtil.clickhouseAddress = address;
    }
    @Value("${clickhouse.username}")
    public  void setClickhouseUsername(String username) {
        ClickHouseUtil.clickhouseUsername = username;
    @Value("${clickhouse.password}")
    public  void setClickhousePassword(String password) {
        ClickHouseUtil.clickhousePassword = password;
    @Value("${clickhouse.db}")
    public  void setClickhouseDB(String db) {
        ClickHouseUtil.clickhouseDB = db;
    @Value("${clickhouse.socketTimeout}")
    public  void setClickhouseSocketTimeout(Integer socketTimeout) {
        ClickHouseUtil.clickhouseSocketTimeout = socketTimeout;
    public static Connection getConn() {
        ClickHouseConnection conn = null;
        ClickHouseProperties properties = new ClickHouseProperties();
        properties.setUser(clickhouseUsername);
        properties.setPassword(clickhousePassword);
        properties.setDatabase(clickhouseDB);
        properties.setSocketTimeout(clickhouseSocketTimeout);
        ClickHouseDataSource clickHouseDataSource = new ClickHouseDataSource(clickhouseAddress,properties);
        try {
            conn = clickHouseDataSource.getConnection();
            return conn;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    public static List<JSONObject> exeSql(String sql){
        log.info("cliockhouse 執(zhí)行sql:" + sql);
        Connection connection = getConn();
            Statement statement = connection.createStatement();
            ResultSet results = statement.executeQuery(sql);
            ResultSetMetaData 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簡(jiǎn)單使用執(zhí)行sql查詢數(shù)據(jù)

import com.renrenche.databus.common.ClickHouseUtil;
import com.renrenche.databus.common.Result;
import com.renrenche.databus.domain.logdata.fem.FemParam;
import com.renrenche.databus.service.fem.FemMainService;
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.springframework.test.context.junit4.SpringRunner;
 
import java.util.List;
/**
 * @Auther: qixin
 * @Date: 2018/12/11 15:05
 * @Description:
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class SemTest {
    @Test
    public void getFrsDataTest(){
        System.out.println("******************");
        String sql="select * from marketing.sem_campaign_real_time_report";
        List<JSONObject> result= ClickHouseUtil.exeSql(sql);
    }
}

執(zhí)行完畢打印結(jié)果查看即可,

fetch方法之后再補(bǔ)充

到此這篇關(guān)于springboot 使用clickhouse實(shí)時(shí)大數(shù)據(jù)分析引擎的方法的文章就介紹到這了,更多相關(guān)springboot  clickhouse大數(shù)據(jù)分析引擎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Java Servlet生成動(dòng)態(tài)二維碼的實(shí)現(xiàn)步驟

    使用Java Servlet生成動(dòng)態(tài)二維碼的實(shí)現(xiàn)步驟

    在現(xiàn)代互聯(lián)網(wǎng)時(shí)代,二維碼廣泛應(yīng)用于各個(gè)領(lǐng)域,包括支付、認(rèn)證、信息傳遞等,在Web開(kāi)發(fā)中,通過(guò)Java Servlet生成動(dòng)態(tài)二維碼是一個(gè)常見(jiàn)的需求,本文將介紹如何使用Java Servlet結(jié)合Google的ZXing庫(kù)生成動(dòng)態(tài)二維碼,需要的朋友可以參考下
    2023-11-11
  • MyBatis主鍵自增的兩種實(shí)現(xiàn)方法

    MyBatis主鍵自增的兩種實(shí)現(xiàn)方法

    本文主要介紹了MyBatis主鍵自增的兩種實(shí)現(xiàn)方法,主要包括注解方式或配置文件方式來(lái)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • mac下修改idea的jvm運(yùn)行參數(shù)解決idea卡頓的情況

    mac下修改idea的jvm運(yùn)行參數(shù)解決idea卡頓的情況

    這篇文章主要介紹了mac下修改idea的jvm運(yùn)行參數(shù)解決idea卡頓的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • springmvc中下載中文文件名稱為下劃線的解決方案

    springmvc中下載中文文件名稱為下劃線的解決方案

    這篇文章主要介紹了springmvc中下載中文文件名稱為下劃線的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java實(shí)現(xiàn)讀取txt文件并以在每行以空格取數(shù)據(jù)

    java實(shí)現(xiàn)讀取txt文件并以在每行以空格取數(shù)據(jù)

    今天小編就為大家分享一篇java實(shí)現(xiàn)讀取txt文件并以在每行以空格取數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • springboot優(yōu)雅獲取前端參數(shù)的方法詳解

    springboot優(yōu)雅獲取前端參數(shù)的方法詳解

    現(xiàn)在的項(xiàng)目基本上都是前后端分離的項(xiàng)目,如何打通前后端,接收前端傳過(guò)來(lái)的參數(shù)呢,這篇文章小編就來(lái)和大家詳細(xì)介紹一下springboot如何優(yōu)雅的獲取前端參數(shù)吧
    2024-03-03
  • SpringMVC和Spring的配置文件掃描包詳解

    SpringMVC和Spring的配置文件掃描包詳解

    這篇文章主要介紹了SpringMVC和Spring的配置文件掃描包,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-05-05
  • mybatis學(xué)習(xí)筆記之mybatis注解配置詳解

    mybatis學(xué)習(xí)筆記之mybatis注解配置詳解

    本篇文章主要介紹了mybatis學(xué)習(xí)筆記之mybatis注解配置詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Java實(shí)現(xiàn)多線程聊天室

    Java實(shí)現(xiàn)多線程聊天室

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多線程聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java?Kryo,Protostuff,Hessian序列化方式對(duì)比

    Java?Kryo,Protostuff,Hessian序列化方式對(duì)比

    這篇文章主要介紹了Java?Kryo,Protostuff,Hessian序列化方式對(duì)比,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07

最新評(píng)論

塔城市| 罗田县| 陆良县| 江永县| 商河县| 冕宁县| 内丘县| 巴林右旗| 灵武市| 长汀县| 原阳县| 巴林右旗| 逊克县| 黄大仙区| 张掖市| 荥阳市| 沙坪坝区| 保靖县| 阿拉善右旗| 平潭县| 长子县| 德阳市| 清水河县| 墨竹工卡县| 马尔康县| 连城县| 宝丰县| 突泉县| 广安市| 图木舒克市| 玉田县| 稷山县| 齐河县| 桂林市| 嫩江县| 星子县| 丹寨县| 重庆市| 扎囊县| 保亭| 临泽县|