[Feature Request]: Add read() support to Java ClickHouseIO (currently write-only)
I maintainer di solito rispondono entro 1 giorno
@nitinware ci sta già lavorando.
Dal 7/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
What would you like to happen?
Motivation
The Java ClickHouseIO connector at sdks/java/io/clickhouse/ currently supports only writes. Reading from ClickHouse in a Beam pipeline requires falling back to JdbcIO with the ClickHouse JDBC driver, which loses ClickHouse-specific schema fidelity (LowCardinality, Array(T), Nullable(T), Nested, tuples) and native columnar transport.
Proposal
Add ClickHouseIO.read() and ClickHouseIO.readAll() PTransforms symmetric to the existing write path:
- Native
Rowoutput using the ClickHouse client's native format - Query/projection via user-supplied
SELECTtemplate - Splittable reader for parallel reads across partitions / shards,
modeled onJdbcIO's splitting pattern - Reuse the existing connection configuration builder from the writer
Benefits
- Closes an obvious read/write asymmetry — every other major DB IO in
Beam (JDBC, Cassandra, Mongo, HBase, Spanner, BigQuery, Snowflake)
supports both directions - ClickHouse is increasingly common as an analytics source; users
currently work around this withJdbcIOat the cost of type fidelity
Testing plan
- Unit tests mirroring the existing writer test file
- Integration test using the module's existing testcontainers-based
ClickHouse setup (ClickHouseContaineris already wired inbuild.gradle) - No new dependencies required
Issue Priority
Priority: 2 (default / most feature requests should be filed as P2)
Issue Components
- Component: Python SDK
- Component: Java SDK
- Component: Go SDK
- Component: Typescript SDK
- Component: IO connector
- Component: Beam YAML
- Component: Beam examples
- Component: Beam playground
- Component: Beam katas
- Component: Website
- Component: Infrastructure
- Component: Spark Runner
- Component: Flink Runner
- Component: Prism Runner
- Component: Twister2 Runner
- Component: Hazelcast Jet Runner
- Component: Google Cloud Dataflow Runner
- Lingua principale
- Java
- Stelle
- 8.7k
- Fork
- 4.7k
- Merge medio
- 2g 8h
- PR unite (30g)
- 246
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/beam
-
[Bug]: Row.toString throws for an ITERABLE field that is not backed by a ListForse già presa @PDGGK l’ha presa 56 giorni fa. Apertajava P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
apache/beam#39624 · 2 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: PubsubIO used in batch incorrect batch cutoff sizeForse già presa @1fanwang l’ha presa 45 giorni fa. Apertabug io P3 pinned pubsub
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/beam#28011 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
build P3 sub-task
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
bug gcp io java P3
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
[Bug] The producer summary counts an unreported client version as a second version and warns about a version mixForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
apache/rocketmq-dashboard#6110 ·
I maintainer di solito rispondono entro 4 giorni
-
`Processing lsp` never exits and leaves orphaned processesForse già presa @overcast302 l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
processing/processing4#1578 · 1 commento ·
-
ASM is not up-to-dateAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
I maintainer di solito rispondono entro 1 giorno
-
[BUG] S3 CORS responses omit Access-Control-Allow-Credentials for matched originsForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
floci-io/floci#5369 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
securityHeaders replaces a route's own Content-Security-Policy (0.9.9; weakens embedders' pages)Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno