Skip to content

Metabase

Metabase connects to Elasticsearch through the SoftClient4ES JDBC driver.

Compatible (not formally tested) — the JDBC protocol works; we have not run Metabase through formal regression. Best-effort.

What works, what’s coming

Metabase’s GUI Question builder can emit nested subqueries for multi-stage questions, which are not in this release yet.

Workaround: use Native (SQL) queries with explicit JOIN … ON … instead of the GUI Question builder for multi-table work. Great for explicit JOIN SQL — full BI-tool subquery / CTE support is coming in the next release (Quarter 4 2026).

See Known Limitations for the full picture of what the current release does and doesn’t cover.

Connect

Add SoftClient4ES as a generic JDBC database in Metabase admin:

  1. Download the SoftClient4ES JDBC fat JAR for your Elasticsearch version (e.g. softclient4es8-jdbc-driver-0.2.4.jar) and make it available to Metabase’s generic JDBC driver path (Metabase’s JDBC support varies by version — treat this as a generic JDBC database).
  2. In Admin → Databases → Add database, choose the generic JDBC database type.
  3. Fill in:
    • URL: jdbc:elastic://localhost:9200
    • Driver class: app.softnetwork.elastic.jdbc.ElasticDriver
    • For authentication, append URL parameters: jdbc:elastic://es.example.com:9243?scheme=https&user=elastic&password=changeme

The fat JAR is self-contained and Scala-version-independent — no Scala suffix to choose.

Browse

Your Elasticsearch indices appear as tables once Metabase syncs the schema. Browse them in the data reference, or open a Native query to run SQL directly.

Cross-index JOIN

The superpower of this release: Elasticsearch SQL can’t JOIN across indices — SoftClient4ES does. Use a Native (SQL) query with an explicit JOIN:

SELECT e.name, e.salary, d.dept_name
FROM jdbc_join_emp e
JOIN jdbc_join_dept d ON e.dept_id = d.dept_id;
-- 5 rows (the orphan employee with dept_id=99 is dropped by the INNER JOIN)

For the full JOIN matrix (INNER / LEFT / RIGHT / FULL / cross-cluster), see the Cross-Index JOIN walkthrough. JOIN depth and cluster count are metered — see Pricing.

Screenshot

Metabase Native SQL showing a cross-index JOIN result between jdbc_join_emp and jdbc_join_dept

Screenshot coming in a follow-up release. Captured with Metabase against SoftClient4ES 0.2.1 (JDBC), 2026-07.

License

The JDBC driver is licensed under the Elastic License 2.0 — free to use, not open source.