真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

SpringBoot2中怎么整合ClickHouse數據庫

這期內容當中小編將會給大家?guī)碛嘘PSpringBoot2中怎么整合ClickHouse數據庫,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯專注于福安企業(yè)網站建設,成都響應式網站建設公司,商城網站建設。福安網站建設公司,為福安等地區(qū)提供建站服務。全流程按需網站策劃,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯專業(yè)和態(tài)度為您提供的服務

一、ClickHouse簡介

1、基礎簡介

Yandex開源的數據分析的數據庫,名字叫做ClickHouse,適合流式或批次入庫的時序數據。ClickHouse不應該被用作通用數據庫,而是作為超高性能的海量數據快速查詢的分布式實時處理平臺,在數據匯總查詢方面(如GROUP BY),ClickHouse的查詢速度非???。

2、數據分析能力

  • OLAP場景特征

· 大多數是讀請求
· 數據總是以相當大的批(> 1000 rows)進行寫入
· 不修改已添加的數據
· 每次查詢都從數據庫中讀取大量的行,但是同時又僅需要少量的列
· 寬表,即每個表包含著大量的列
· 較少的查詢(通常每臺服務器每秒數百個查詢或更少)
· 對于簡單查詢,允許延遲大約50毫秒
· 列中的數據相對較小: 數字和短字符串(例如,每個URL 60個字節(jié))
· 處理單個查詢時需要高吞吐量(每個服務器每秒高達數十億行)
· 事務不是必須的
· 對數據一致性要求低
· 每一個查詢除了一個大表外都很小
· 查詢結果明顯小于源數據,換句話說,數據被過濾或聚合后能夠被盛放在單臺服務器的內存中
  • 列式數據存儲

(1)、行式數據

SpringBoot2中怎么整合ClickHouse數據庫

(2)、列式數據

SpringBoot2中怎么整合ClickHouse數據庫

(3)、對比分析

分析類查詢,通常只需要讀取表的一小部分列。在列式數據庫中可以只讀取需要的數據。數據總是打包成批量讀取的,所以壓縮是非常容易的。同時數據按列分別存儲這也更容易壓縮。這進一步降低了I/O的體積。由于I/O的降低,這將幫助更多的數據被系統(tǒng)緩存。

二、整合SpringBoot框架

該案例基于:Druid連接池和mybatis進行整合。Druid 1.1.10 版本 SQL Parser對clickhouse的開始提供支持。

1、核心依賴


    ru.yandex.clickhouse
    clickhouse-jdbc
    0.1.53

2、配屬數據源

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    click:
      driverClassName: ru.yandex.clickhouse.ClickHouseDriver
      url: jdbc:clickhouse://127.0.0.1:8123/default
      initialSize: 10
      maxActive: 100
      minIdle: 10
      maxWait: 6000

3、Druid連接池配置

@Configuration
public class DruidConfig {
    @Resource
    private JdbcParamConfig jdbcParamConfig ;
    @Bean
    public DataSource dataSource() {
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(jdbcParamConfig.getUrl());
        datasource.setDriverClassName(jdbcParamConfig.getDriverClassName());
        datasource.setInitialSize(jdbcParamConfig.getInitialSize());
        datasource.setMinIdle(jdbcParamConfig.getMinIdle());
        datasource.setMaxActive(jdbcParamConfig.getMaxActive());
        datasource.setMaxWait(jdbcParamConfig.getMaxWait());
        return datasource;
    }
}

4、參數配置類

@Component
@ConfigurationProperties(prefix = "spring.datasource.click")
public class JdbcParamConfig {
    private String driverClassName ;
    private String url ;
    private Integer initialSize ;
    private Integer maxActive ;
    private Integer minIdle ;
    private Integer maxWait ;
    // 省略 GET 和 SET
}

這樣整合代碼就完成了。

三、操作案例演示

1、Mapper接口

public interface UserInfoMapper {
    // 寫入數據
    void saveData (UserInfo userInfo) ;
    // ID 查詢
    UserInfo selectById (@Param("id") Integer id) ;
    // 查詢全部
    List selectList () ;
}

這里就演示簡單的三個接口。

2、Mapper.xml文件


    
        
        
        
        
        
        
    
    
        id,user_name,pass_word,phone,email,create_day
    
    
        INSERT INTO cs_user_info
        (id,user_name,pass_word,phone,email,create_day)
        VALUES
        (#{id,jdbcType=INTEGER},#{userName,jdbcType=VARCHAR},#{passWord,jdbcType=VARCHAR},
        #{phone,jdbcType=VARCHAR},#{email,jdbcType=VARCHAR},#{createDay,jdbcType=VARCHAR})
    
    
        select
        
        from cs_user_info
        where id = #{id,jdbcType=INTEGER}
    
    
        select
        
        from cs_user_info
    

這里 create_day 是以字符串的方式在轉換,這里需要注意下。

3、控制層接口

@RestController
@RequestMapping("/user")
public class UserInfoController {
    @Resource
    private UserInfoService userInfoService ;
    @RequestMapping("/saveData")
    public String saveData (){
        UserInfo userInfo = new UserInfo () ;
        userInfo.setId(4);
        userInfo.setUserName("winter");
        userInfo.setPassWord("567");
        userInfo.setPhone("13977776789");
        userInfo.setEmail("winter");
        userInfo.setCreateDay("2020-02-20");
        userInfoService.saveData(userInfo);
        return "sus";
    }
    @RequestMapping("/selectById")
    public UserInfo selectById () {
        return userInfoService.selectById(1) ;
    }
    @RequestMapping("/selectList")
    public List selectList () {
        return userInfoService.selectList() ;
    }
}

上述就是小編為大家分享的SpringBoot2中怎么整合ClickHouse數據庫了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道。


當前標題:SpringBoot2中怎么整合ClickHouse數據庫
標題網址:http://weahome.cn/article/jphsji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部