diff --git a/.gitignore b/.gitignore index c6a18e3..3127cb1 100644 --- a/.gitignore +++ b/.gitignore @@ -67,4 +67,4 @@ target/checksum.txt repo .cpcache .lsp -.clj-kondo +.clj-kondo \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 0841990..c8e56e8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,8 +36,8 @@ WORKDIR /build/metabase # Now build the driver FROM stg_base as stg_build RUN clojure \ - -Sdeps "{:aliases {:sparksql-databricks {:extra-deps {com.metabase/sparksql-databricks {:local/root \"/build/driver\"}}}}}" \ - -X:build:sparksql-databricks \ + -Sdeps "{:aliases {:sparksql-databricks-v2 {:extra-deps {com.metabase/sparksql-databricks {:local/root \"/build/driver\"}}}}}" \ + -X:build:sparksql-databricks-v2 \ build-drivers.build-driver/build-driver! \ "{:driver :sparksql-databricks, :project-dir \"/build/driver\", :target-dir \"/build/driver/target\"}" diff --git a/resources/metabase-plugin.yaml b/resources/metabase-plugin.yaml index 069261d..96dcc73 100644 --- a/resources/metabase-plugin.yaml +++ b/resources/metabase-plugin.yaml @@ -1,5 +1,5 @@ info: - name: Metabase Databricks Spark SQL Driver + name: Metabase Databricks Spark SQL Driver (v2) version: 1.0.0-SNAPSHOT description: Allows Metabase to connect to Databricks Spark SQL databases. driver: @@ -7,8 +7,8 @@ driver: lazy-load: true abstract: true parent: sql-jdbc - - name: sparksql-databricks - display-name: Databricks + - name: sparksql-databricks-v2 + display-name: Databricks SQL (v2) lazy-load: true parent: hive-like connection-properties: diff --git a/scripts/extract_plugin.sh b/scripts/extract_plugin.sh new file mode 100755 index 0000000..f630958 --- /dev/null +++ b/scripts/extract_plugin.sh @@ -0,0 +1,7 @@ +SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) + +docker buildx build --build-arg METABASE_VERSION=v0.48.3 --target stg_export --platform "linux/arm64" -t metabase:databricks-plugin "$SCRIPT_DIR/.." +container_id=$(docker create "metabase:databricks-plugin" /bin/bash) +docker cp "$container_id:/sparksql-databricks.metabase-driver.jar" "$SCRIPT_DIR/../dist/sparksql-databricks.metabase-driver.jar" +docker rm "$container_id" + diff --git a/src/metabase/driver/sparksql_databricks.clj b/src/metabase/driver/sparksql_databricks.clj index 468e648..0430b54 100644 --- a/src/metabase/driver/sparksql_databricks.clj +++ b/src/metabase/driver/sparksql_databricks.clj @@ -28,7 +28,7 @@ [metabase.util.honey-sql-2 :as h2x]) (:import [java.sql Connection ResultSet])) -(driver/register! :sparksql-databricks, :parent :hive-like) +(driver/register! :sparksql-databricks-v2, :parent :hive-like) ;;; ------------------------------------------ Custom HoneySQL Clause Impls ------------------------------------------ @@ -114,6 +114,8 @@ :OAuth2Secret app-secret} (dissoc opts :host :port :db :jdbc-flags :http-path :app-id :app-secret :catalog))) +(defn sparksql-databricks-v2 [params] (sparksql-databricks params)) + (defmethod sql-jdbc.conn/connection-details->spec :sparksql-databricks [_ details] (-> details @@ -228,4 +230,4 @@ (when-not (get (methods driver/supports?) [:sparksql-databricks :foreign-keys]) (defmethod driver/supports? [:sparksql-databricks :foreign-keys] [_ _] true)) -(defmethod sql.qp/quote-style :sparksql-databricks [_] :mysql) +(defmethod sql.qp/quote-style :sparksql-databricks [_] :mysql) \ No newline at end of file