1、拉取clickhouse的镜像
docker pull clickhouse/clickhouse-server
2、启动clickhouse容器
docker run \
-p 8123:8123 \
-p 3500:9000 \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
-e CLICKHOUSE_DB=default \
-e CLICKHOUSE_USER=root \
-e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \
-e TZ=Asia/Shanghai \
-e CLICKHOUSE_PASSWORD=password \
-d clickhouse/clickhouse-server
- –ulimit nofile=262144:262144:将进程允许打开的文件数增加到262144个
- -p 8123:8123:ClickHouse的HTTP接口,用于执行查询、管理数据库、查看性能指标等。
- -p 9000:9000:ClickHouse的TCP接口,用于客户端和服务端之间的数据传输。
- -e CLICKHOUSE_DB:ClickHouse的表名。
- -e CLICKHOUSE_USER:ClickHouse的用户名。
- -e CLICKHOUSE_PASSWORD:ClickHouse的用户对应的密码。
java对clickhouse的基本操作
package test.base;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ClickHouseExample {
public static void main(String[] args) {
String url = "jdbc:clickhouse://127.0.0.1:8123/default?user=root&password=password";
try (Connection connection = DriverManager.getConnection(url)) {
Statement statement = connection.createStatement();
statement.execute("CREATE TABLE test_table3(id UInt64, name String, age UInt8) ENGINE = MergeTree() ORDER BY id");
statement.execute("INSERT INTO test_table3(id, name, age) VALUES(1, 'Alice', 30), (2, 'Bob', 25)");
statement.execute("DELETE FROM test_table3 WHERE id = 1");
ResultSet rs = statement.executeQuery("SELECT * FROM test_table3");
while (rs.next()) {
System.out.println("rs is " + rs);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}