Spring Boot集成ClickHouse實踐

ClickHouse是俄羅斯Yandex公司開源的一款用於大規模數據分析的列式存儲資料庫,擁有極高的數據處理能力,支持高並發和高吞吐,在互聯網金融、廣告營銷、物聯網等領域得到廣泛應用。

一、準備工作

在開始集成ClickHouse之前,需要準備好以下工具。

1. JDK

Spring Boot需要JDK8及以上版本,因此需要先安裝JDK。


# 安裝JDK8
sudo apt-get install -y openjdk-8-jdk

2. Maven

在安裝Maven之前,需要先安裝Apache Ant。


# 安裝Ant
sudo apt-get install -y ant

然後安裝Maven。


# 安裝Maven
sudo apt-get install -y maven

3. ClickHouse

從官網下載ClickHouse,解壓到指定目錄。


# 下載ClickHouse
wget https://github.com/ClickHouse/ClickHouse/releases/download/v21.3.7.20-stable/clickhouse-common-static_21.3.7.20-stable_amd64.deb
wget https://github.com/ClickHouse/ClickHouse/releases/download/v21.3.7.20-stable/clickhouse-server_21.3.7.20-stable_amd64.deb
wget https://github.com/ClickHouse/ClickHouse/releases/download/v21.3.7.20-stable/clickhouse-client_21.3.7.20-stable_amd64.deb

# 安裝ClickHouse
sudo dpkg -i clickhouse-common-static_21.3.7.20-stable_amd64.deb
sudo dpkg -i clickhouse-server_21.3.7.20-stable_amd64.deb
sudo dpkg -i clickhouse-client_21.3.7.20-stable_amd64.deb

二、集成ClickHouse

1. 引入依賴

在pom.xml文件中添加以下依賴。


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

2. 配置數據源

在application.properties中添加以下配置:


# ClickHouse數據源配置
spring.datasource.url=jdbc:clickhouse://localhost:8123/test
spring.datasource.driver-class-name=ru.yandex.clickhouse.ClickHouseDriver
spring.datasource.username=default
spring.datasource.password=

3. 創建數據表

在ClickHouse中創建示例數據表。


CREATE TABLE test.test (
    id UInt64,
    name String
) ENGINE = MergeTree()
PRIMARY KEY id

4. 編寫代碼

在Java代碼中使用JdbcTemplate訪問ClickHouse,並進行數據CRUD操作。


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

@Service
public class ClickHouseService {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public void insertData() {
        String sql = "INSERT INTO test.test (id, name) VALUES (?, ?)";
        jdbcTemplate.update(sql, 1, "test");
    }

    public void updateData() {
        String sql = "UPDATE test.test SET name = ? WHERE id = ?";
        jdbcTemplate.update(sql, "new-test", 1);
    }

    public void deleteData() {
        String sql = "DELETE FROM test.test WHERE id = ?";
        jdbcTemplate.update(sql, 1);
    }

    public void queryData() {
        String sql = "SELECT * FROM test.test WHERE id = ?";
        Map<String, Object> data = jdbcTemplate.queryForMap(sql, 1);
        System.out.println(data);
    }

}

三、啟動應用

啟動Spring Boot應用,執行以上操作。


# 構建應用
mvn clean package

# 啟動應用
java -jar target/demo-0.0.1-SNAPSHOT.jar

訪問http://localhost:8080/進行測試。

四、總結

本文介紹了如何在Spring Boot中集成ClickHouse進行數據CRUD操作。ClickHouse作為一款高性能、高可靠性的列式存儲資料庫,適合大數據量的數據分析,Spring Boot作為一款輕量級的應用框架,可以快速開發和部署應用,二者的結合,將為我們的大數據分析帶來更高的效率和更低的成本。

原創文章,作者:GSETC,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/369265.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GSETC的頭像GSETC
上一篇 2025-04-12 13:00
下一篇 2025-04-12 13:00

相關推薦

發表回復

登錄後才能評論