[Feature Request]: Add read() support to Java ClickHouseIO (currently write-only)
维护者通常 1 天内回复
@nitinware 已经在做这个了。
开始于 2026年9月7日。
评估
这个 Issue 还没有评估数据。
描述
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
- 主要语言
- Java
- 星标
- 8.7k
- 派生
- 4.7k
- 平均合并
- 2 天 8 小时
- 30 天内合并 PR
- 246
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/beam 的其他 Issue
-
[Bug]: Row.toString throws for an ITERABLE field that is not backed by a List可能已有人在做 @PDGGK 于 56 天前认领。 未关闭java P3
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
apache/beam#39624 · 2 个 reaction ·
维护者通常 1 天内回复
-
[Failing Test]: JmsIOTest. testCheckpointMark flaky可能已有人在做 @mxtymoshyk 于 14 天前认领。 未关闭bug failing test flake P2 pinned tests
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
[Bug]: PubsubIO used in batch incorrect batch cutoff size可能已有人在做 @1fanwang 于 45 天前认领。 未关闭bug io P3 pinned pubsub
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
build P3 sub-task
难度 1/5 1 小时以内 新手友好度 68/100
维护者通常 1 天内回复
相似的 Issue
-
[BUG] S3 CORS responses omit Access-Control-Allow-Credentials for matched origins可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
sqlcipher/sqlcipher-android#97 · 1 条评论 ·
-
area-integrations
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
bug IIIF interoperability
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 72/100