Create Interactive Metabase Dashboards that Work with Elasticsearch Data

Ready to get started?

Learn more or sign up for a free trial:

CData Connect



Use CData Connect to create a virtual MySQL database for Elasticsearch data and create an interactive dashboard in Metabase from Elasticsearch data.

Metabase is an open source data visualization tool that allows users to create interactive dashboards. When paired with CData Connect Cloud, users can easily create visualizations and dashboards linked to live Elasticsearch data. This article describes how to create a virtual database for Elasticsearch and build a simple visualization using Elasticsearch data.

CData Connect provides a pure SQL interface for Elasticsearch, allowing you to easily integrate with live Elasticsearch data in Metabase — without replicating the data. Connect looks exactly like a MySQL database to Metabase and uses optimized data processing out of the box to push all supported SQL operations (filters, JOINs, etc) directly to Elasticsearch, leveraging server-side processing to quickly return Elasticsearch data.

Create a Virtual MySQL Database for Elasticsearch Data

CData Connect Cloud uses a straightforward, point-and-click interface to connect to data sources and generate APIs.

  1. Log into Connect Cloud and click Databases.
  2. Select "Elasticsearch" from Available Data Sources.
  3. Enter the necessary authentication properties to connect to Elasticsearch.

    Set the Server and Port connection properties to connect. To authenticate, set the User and Password properties, PKI (public key infrastructure) properties, or both. To use PKI, set the SSLClientCert, SSLClientCertType, SSLClientCertSubject, and SSLClientCertPassword properties.

    The data provider uses X-Pack Security for TLS/SSL and authentication. To connect over TLS/SSL, prefix the Server value with 'https://'. Note: TLS/SSL and client authentication must be enabled on X-Pack to use PKI.

    Once the data provider is connected, X-Pack will then perform user authentication and grant role permissions based on the realms you have configured.

  4. Click Test Database.
  5. Click Privileges -> Add and add the new user (or an existing user) with the appropriate permissions.

Connect to CData Connect from Metabase

After creating the virtual database, navigate to your Metabase instance. Use the MySQL interface to connect to CData Connect.

  1. Navigate to the administration screen (Settings -> Admin) and click "Add Database" from the "Databases" tab
  2. Configure the connection to CData Connect and click "Save"
    • Database type: Select "MySQL"
    • Name: Name the connection (e.g. "Elasticsearch (CData Connect)")
    • Host: The URL of your Connect instance (e.g. https://myinstance.cdatacloud.net)
    • Port: The port of the MySQL endpoint for your Connect instance (e.g. 3306)
    • Database name: The name of the virtual database you just created (e.g. Elasticsearch1)
    • Username: A CData Connect username
    • Password: The password for the above CData Connect user
    • Click to Use a secure connection (SSL)

Query Elasticsearch Data with Metabase

Once you configure the connection to CData Connect, you can query Elasticsearch and build visualizations.

  1. Use the "Write SQL" tool to retrieve the Elasticsearch data
  2. Write a SQL query based on the virtual database, e.g.

    SELECT Orders.Freight, Customers.ContactName FROM Customers INNER JOIN Orders ON Customers.CustomerId=Orders.CustomerId
  3. Navigate to the "Visualization" screen, choose a visualization, and configure the visualization

More Information & Free Trial

At this point, you have built a simple visualization from Elasticsearch data in Metabase. You can continue to work with live Elasticsearch data in Metabase just like you would any MySQL database. For more information on creating a virtual MySQL database for Elasticsearch (and more than 200 other data sources), visit the Connect Cloud page. Sign up for a free trial and start working with live Elasticsearch data in Metabase today.