IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> clickhouse的简单介绍及使用 -> 正文阅读

[大数据]clickhouse的简单介绍及使用

一、介绍

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"));
                }
            }
        }
    }
}
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 23:15:00  更:2022-04-06 23:16:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:37:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码