首页 > 其他分享 >springboot使用mybatis应用clickhouse

springboot使用mybatis应用clickhouse

时间:2023-04-23 16:46:23浏览次数:46  
标签:name 列式 查询 mybatis 8123 clickhouse springboot

  一、clickhouse,说白了还是数据库,不一样的是clickhouse是列式存储,和传统的MySQL行式存储不同的地方在于,查询和所储。

  1)查询,行式和列式的区别,图形说明

  

  

  说明:理解上来说,行式对于一条数据的完整性索引会更快。而列式对于统计和查询指定数据会更加块。

  2)数据存储方式

  

  从数据上面来看,数据索引和查询肯定存在不同的地方。

  二、优缺点

  a、优点

  1)列式存储,适用聚合计算

  2)数据压缩,减少IO成本

  3)并行查询,提升效率,横向拓展等

  4)写入速度快

  b、缺点

  1)不支持事务

  2)不支持高并发,官方qps100

  3)避免小数据写入,尽量使用批量写入

  4)clickhouse采用并行查询,一个简单的数据查询也需要并行,消耗过大。

  三、部署(docker方式)

  1)单机

docker run -itd --name=xbd-clickhouse -p 8123:8123 -v /var/lib/clickhouse/:/var/lib/clickhouse/ clickhouse/clickhouse-server:22.12.6.22

  2)集群 TODO

  四、springboot适用mybatis对接应用clickhouse

  1)pom.xml

    <dependencies>
            <dependency>
                <groupId>ru.yandex.clickhouse</groupId>
                <artifactId>clickhouse-jdbc</artifactId>
                <version>0.3.2</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>3.5.2</version>
            </dependency>
    </dependencies>

  2)application.yml配置

spring:
  datasource:
    driver-class-name: ru.yandex.clickhouse.ClickHouseDriver
    url: jdbc:clickhouse://192.168.5.14:8123/ch
    username: default
    password:
mybatis-plus:
  mapper-locations: classpath:/mapper/*.xml

  是不是感觉和mysql没有差异?no!no!no!

  3)查询和添加语法基本上和mysql差不多,创建语句还是很多不一样的。举个例子

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
        "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="com.xbd.clickhouse.mapper.TestMapper">
    <update id="create">
        CREATE TABLE test (
        id Int64,
        name String
      ) ENGINE = MergeTree() ORDER BY id
    </update>
</mapper>

  语法参考地址:https://clickhouse.com/docs/zh/sql-reference

标签:name,列式,查询,mybatis,8123,clickhouse,springboot
From: https://www.cnblogs.com/ll409546297/p/17346954.html

相关文章

  • Springboot提高
    全局异常处理器未做处理的情况:当我没没有做任何异常处理时,mapper接口操作数据库出错时,会将异常向上抛给ServiceService中的异常会往上抛给controllercontroller会将异常抛给框架响应给浏览器一个JSON格式的数据这个数据并不符合我们统一响应结果的规范如何处理?方案一:......
  • Java__SpringBoot与Vue连接
    SpringBoot与Vue注解RequestMapping("/dir/")创建一个方便前端调用的接口目录/接口函数,前端可以获取到函数返回的数据@RestController@RequestMapping("/dir/")publicclassBotInfoController{@RequestMapping("getinfo/")publicMap<String,String>GetI......
  • SpringBoot 集成 Quartz + MySQL
    Quartz简单使用JavaSpringBoot中,动态执行bean对象中的方法源代码地址=>https://gitee.com/VipSoft/VipBoot/tree/develop/vipsoft-quartz工作原理解读只要配置好DataSourceQuartz会自动进行表的数据操作,添加QuartzJob任务保存QRTZ_JOB_DETAILS、QRTZ_TRIGGERS=>QR......
  • Java SpringBoot 7z 压缩、解压
    JavaSpringBoot7z压缩、解压JavaSpringBoot7z压缩、解压cmd7z文件压缩7z压缩测试添加依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.12</versi......
  • MyBatis运行找不到xml资源文件
    MyBatis运行找不到xml资源文件运行报错:报错原因:程序运行后,没有将src/main/java目录下的资源文件(xml、properties等等)导出到target工作目录下,所以程序找不到java目录:运行后的target目录:可以看到并没有MonsterMapper.xml文件解决方法:Maven项目在pom.xml......
  • SpringBoot中底层对 /health 的请求是怎么处理的?
     在SpringBoot应用程序中,/health端点是通过HealthEndpointbean来处理的。当您访问/health端点时,SpringBoot会调用HealthEndpointbean的health()方法来检查应用程序的健康状态,并返回相应的响应。HealthEndpointbean是通过HealthEndpointAutoConfiguration自......
  • Mybatis缓存
    1.Mybatis缓存1.1. 理解MyBatis缓存正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持1.     一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Sessionflush 或 close 之后,该Session中的所有 Cache 就将清空。2......
  • spring boot配置mybatis出现Invalid bound statement (not found)报错的解决办法
     背景:spring-boot-starter-parent2.5.6mybatis-spring-boot-starter2.2.0我遇到这个报错,是因为使用idea创建xml文件是没有后缀,举个例子,比如你创建的是AccountMapper.xml,结果使用idea创建的是AccountMapper,根本就没有后缀!解决办法也很简单,加上后缀就可以了,不需要做其他额外的......
  • 记录一次艰难的云服务器部署前后端项目springBoot+mybatis和vue(两天解决的前后端跨域
    前言大家好我是歌谣今天继续给大家带来后端java的学习最近刚学习完java的一个增删改查紧接着就是部署项目了代码准备工作前端:vue后端:springboot+mybatis数据库mysql部署后端项目打包找到maven-package-runmavenbuild云服务器上面建立文件mkdir/www/springBoot创建文件......
  • Mybatis-plus批量操作
    前言使用Mybatis-plus可以很方便的实现批量新增和批量修改,不仅比自己写foreach遍历方便很多,而且性能也更加优秀。但是Mybatis-plus官方提供的批量修改和批量新增都是根据id来修改的,有时候我们需求其他字段,所以就需要我们自己修改一下。一、批量修改在Mybatis-plus的IService......