You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
com.clickhouse/clickhouse-jdbc$http has CLI and GRPC modules as transitive dependencies #1148
While working on the Metabase plugin that uses the updated JDBC driver now, I noticed that if I use com.clickhouse/clickhouse-jdbc$http as a dependency, the resulting JAR also includes shaded GRPC and CLI modules:
Write :clickhouse :oss uberjar -> /home/serge/work/metabase/resources/modules/clickhouse.metabase-driver.jar
Determine which dependencies to include
INCLUDE com.clickhouse/clickhouse-cli-client$shaded
INCLUDE com.clickhouse/clickhouse-grpc-client$shaded
INCLUDE com.clickhouse/clickhouse-http-client$shaded
INCLUDE com.clickhouse/clickhouse-jdbc$http
INCLUDE com.google.code.gson/gson
and the resulting JAR is way too big: around 20M
having CLI and GRPC explicitly excluded (example in Clojure's deps.edn)
Thanks @slvrtrn. Yes, it's cleaner to create separate modules. But there'll be modules like clickhouse-jdbc-http, clickhouse-jdbc-grpc, clickhouse-jdbc-cli, and clickhouse-jdbc-all etc., which might be confusing. That's why I suggested to exclude all dependencies when you specify classifer :)
As to Metabase driver, I think it's probably better to use all instead of http, as it gives user more options to connect to ClickHouse, if the size is not a big concern ;)
This issue has been automatically marked as stale because it has not had activity in the last year. It will be closed in 30 days if no further activity occurs. Please feel free to leave a comment if you believe the issue is still relevant. Thank you for your contributions!
Activity
zhicwu commentedon Dec 8, 2022
Thanks @slvrtrn. Yes, it's cleaner to create separate modules. But there'll be modules like
clickhouse-jdbc-http,clickhouse-jdbc-grpc,clickhouse-jdbc-cli, andclickhouse-jdbc-alletc., which might be confusing. That's why I suggested to exclude all dependencies when you specify classifer :)As to Metabase driver, I think it's probably better to use
allinstead ofhttp, as it gives user more options to connect to ClickHouse, if the size is not a big concern ;)slvrtrn commentedon Dec 9, 2022
@zhicwu, thanks for the suggestion! Indeed, we should try TCP/Native in the Metabase plugin.
github-actions commentedon Jan 8, 2025
This issue has been automatically marked as stale because it has not had activity in the last year. It will be closed in 30 days if no further activity occurs. Please feel free to leave a comment if you believe the issue is still relevant. Thank you for your contributions!
chernser commentedon Jan 27, 2025
Seems not applicable anymore.