ClickHouse / ClickHouse/clickhouse-java

ClickHouse java client - reusing same instance of ClickHouseClient gives execution timeout after 10 inserts

Abierto
#1,668 9 comentarios 0 reacciones 0 asignados Ver en GitHub
area:network client-api-v2 enhancement
Lenguaje dominante
Java
Estrellas
1.6k
Forks
636
Merge medio
2 d 23 h
PR fusionados (30 d)
29

Descripción

I am new using clickhouse and I have assembled a project in java using java client.

```xml

com.clickhouse
clickhouse-http-client
0.6.0

org.apache.httpcomponents.client5
httpclient5
5.2.1

```

```java
HashMap options = new HashMap<>();
options.put("user", "user");
options.put("password", "pass");

String url = "my-clickhouse-host";
ClickHouseNode server = ClickHouseNode.of(url, options);
ClickHouseRequest read = ClickHouseClient.builder()
.nodeSelector(ClickHouseNodeSelector.of(ClickHouseProtocol.HTTP))
.option(ClickHouseClientOption.SOCKET_KEEPALIVE, true)
.build()
.read(server).write();

for (int i = 0; i < 11; i++) {

String id = UUID.randomUUID().toString();
String field1 = "field1" + (i);
String field2 = "field2" + (i);
String field3 = "field3" + (i);
String field4 = "field4" + (i);

String query = String.format("INSERT INTO mytable VALUES ('%s', '%s', '%s', '%s', '%s')",
id,
field1,
field2,
field3,
field4);

read.format(ClickHouseFormat.CustomSeparated)
.query(query)
.executeAndWait();

}
```

This code only inserts 10 records, after that I get an Code: 159. Execution timed out Exception

I have already tried to change and add some ClickHouseClientOptions but I always get the same behaviour. How can I reuse the same client connections in clickhouse using java client?

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Start with the Java reproduction in the issue, especially ClickHouseClient.builder(), the ClickHouseRequest setup, and the executeAndWait() loop using clickhouse-http-client 0.6.0. Reproduce the timeout after the tenth insert, then inspect the client and request lifecycle to determine whether the same connection can be reused. Done means repeated inserts complete without the Code 159 execution timeout.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
databases
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.