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 ( ) ;
}
}
}