首页 > 其他分享 >clickhouse的简单介绍及使用

clickhouse的简单介绍及使用

时间:2023-09-07 10:11:19浏览次数:46  
标签:简单 介绍 server clickhouse statement sql new ClickHouse

转:https://blog.csdn.net/qq_44275894/article/details/123973699

一、介绍
cliskhouse官方地址
ClickHouse 是一个真正的面向列的 数据库管理系统 (DBMS),用于查询的在线分析处理 (OLAP)。
数据按列存储,并且在执行数组(向量或列块)期间存储。只要有可能,操作就会被发送到数组上,而不是单个值上。它被称为“向量化查询执行”,它有助于降低实际数据处理的成本。

二、安装
注意:
ClickHouse 可以在任何具有 x86_64、AArch64 或 PowerPC64LE CPU 架构的 Linux、FreeBSD 或 Mac OS X 上运行
1、下载
在本地下载 ClickHouse 最简单的方法是运行以下命令。如果您的操作系统受支持,则会下载相应的 ClickHouse 二进制文件并使其可执行:

curl https://clickhouse.com/ | sh

服务器环境下,也可采用如下方式:

  1. 获取安装包,并上传至服务器
  2. 使用root用户登录后,执行sh 文件名进行安装,等待出现ClickHouse Install Complete! 即表示安装完成

2、启动

./clickhouse server

3、查看及操作
详细sql文档,可以移步官方

ClickHouse 服务启动命令 : systemctl start clickhouse-server
ClickHouse 服务停止命令  : systemctl stop clickhouse-server
ClickHouse 服务重启命令  : systemctl restart clickhouse-server
查看ClickHouse 服务状态命令  : systemctl status clickhouse-server

三、在Java中使用

1、如果是maven项目,可以在pom中添加坐标

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

或者下载好jar 包,add to libraries
2、连接clickhouse

  /**
     * 功能描述: 自己定义clickhouse连接方式,测试使用
     *
     * @Param: [sql]
     * @Return: void
     * @Author: lqfeng
     * @Date: 2022/3/29 14:51
     */
    public void clickhouseTest(String sql) {
        Connection connection = null;
        Statement statement = null;
        ResultSet rs = null;
        try {
            //创建clickhouse连接
            Class.forName("ru.yandex.clickhouse.ClickHouseDriver");
//           获取连接
            connection = DriverManager.getConnection("jdbc:clickhouse://127.0.0.1:8123/test", "root", "root);
//            创建声明
            statement = connection.createStatement();
//            执行sql
            rs = statement.executeQuery(sql);
            ResultSetMetaData rsmd = rs.getMetaData();
            List<JSONObject> list = new ArrayList();
            HashSet<String> objects = new HashSet<>();
            while (rs.next()) {
                JSONObject jsonMap = new JSONObject();
                for (int i = 1; i <= rsmd.getColumnCount(); i++) {
                    jsonMap.put(rsmd.getColumnName(i), rs.getString(rsmd.getColumnName(i)));
                }
                list.add(jsonMap);
            }
            for (JSONObject map : list) {
                System.err.println(map);
            }
        } catch (Exception e) {
            log.info("=========clickhouse查询异常===========", e);
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (statement != null) {
                    statement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }

//        Integer result = clickhouseDao.queryInt(sql);

    }

官方示例:

import com.clickhouse.jdbc.*;
import java.sql.*;
import java.util.*;

public class HelloClickHouse {
    public static void main(String[] args) throws Exception {

        String url = "jdbc:ch://<host>:<port>";
        Properties properties = new Properties();
        // properties.setProperty("ssl", "true");
        // properties.setProperty("sslmode", "NONE"); // NONE to trust all servers; STRICT for trusted only
         
        ClickHouseDataSource dataSource = new ClickHouseDataSource(url, properties);
        try (Connection connection = dataSource.getConnection(<username>, <password>);
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("select * from system.tables limit 10")) {
            ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
            int columns = resultSetMetaData.getColumnCount();
            while (resultSet.next()) {
                for (int c = 1; c <= columns; c++) {
                    System.out.print(resultSetMetaData.getColumnName(c) + ":" + resultSet.getString(c) + (c < columns ? ", " : "\n"));
                }
            }
        }
    }
}

 

翻译

搜索

复制

标签:简单,介绍,server,clickhouse,statement,sql,new,ClickHouse
From: https://www.cnblogs.com/qsds/p/17684076.html

相关文章

  • Rendezvous hashing算法介绍
    RendezvoushashingRendezvoushashing用于解决分布式系统中的分布式哈希问题,该问题包括三部分:Keys:数据或负载的唯一标识Values:消耗资源的数据或负载Servers:管理数据或负载的实体例如,在一个分布式系统中,key可能是一个文件名,value是文件数据,servers是连接网络的数据服务器,......
  • PYTHON 简单的网页图片爬虫
    直接上代码:'''简单的网页图片爬虫要先安装requests,BeautifulSoup的库pipinstallrequestspipinstallbs4是一个可以从HTML或XML文件中提取数据的Python库pipinstalllxml'''importrequests#导入requests库frombs4importBeautifulSoupdefget_htmls(p......
  • 简单的经纬度点聚类
    importlogginglogging.basicConfig(level=logging.INFO,format='%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:%(message)s',datefmt='%Y-%m-%d%H:%M:%S')fromgeopy.distanceimportgeod......
  • 自我介绍+软工5问
    作业概述这个作业属于哪个课程软件工程这个作业要求在哪里自我介绍+软工5问这个作业的目标自我介绍、博客园平台和github平台的使用自我介绍我叫蒋应鑫,目前就读于广东工业大学,我喜欢听音乐、踢足球还有学习。软工5问软件工程的产生背景?工程概论这门课可以......
  • Unity UGUI的ScrollRect(滚动视图)组件的介绍及使用
    UnityUGUI的ScrollRect(滚动视图)组件的介绍及使用1.什么是ScrollRect组件?ScrollRect(滚动视图)是UnityUGUI中的一个常用组件,用于在UI界面中创建可滚动的区域。通过ScrollRect组件,可以实现在有限的空间内显示大量的内容,并且可以通过滑动手势来浏览内容。2.ScrollRect组件的工作......
  • 语法介绍
    --循环累加declarevar_sumnumber:=0;beginforiin35001..39999loopvar_sum:=var_sum+i;updateNewGoodssetGoodsRef=CONVERT(GoodsRef,'UTF8','ZHS16GBK')wherebillno=iandGoodsRefisnotnull;commit;......
  • 简单1
    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。classSolution(object):......
  • 网红淘客卷轴模式系统开发介绍和部分源码分享
    网红淘客也是一种卷轴模式系统。什么是卷轴模式呢?新用户注册,先送你一部分积分,该积分用于兑换一个初始任务,俗称卷轴!卷轴模式的赚钱的原理是,你用积分兑换初级任务包,完成卷轴任务之后,你可以获得更多的积分,然后复投,达到一定数量后可以兑换更高级的任务包,任务包越高级每次获得的积分也就......
  • 4G/5G三防平板电脑应用及特质介绍_工业级平板主板终端开发
    工业化社会的快速发展,工业生产对智控设备要求越来越高,运用的范畴也越来越普遍广泛,安卓工业级三防平板电脑就是其中一种应用广泛的设备。安卓工业三防平板电脑相对于普通消费类平板电脑是有所不同的,工业三防产品在外观设计上是会有一些相似,但是从具体角度出发作用却大不相同。安卓......
  • System.Threading.Tasks.Extensions介绍
    System.Threading.Tasks.Extensions是一个用于扩展.NET中任务(Task)的库,它提供了一些额外的功能,特别是在异步编程方面。这个库引入了一些新的方法和功能,包括:ConfigureAwait:它引入了ConfigureAwait方法,允许你在任务之间配置不同的上下文(例如,同步上下文或异步上下文),以便更好地......