May 22, 2025

Setup Superset(4.1.2) with OpenSearch(2.1.8) in Windows

 

Prerequisites

  • Docker Desktop: Install Docker Desktop with WSL 2 enabled (for Windows users). 

    • Make sure virtualization settiong of BIOS. It should be ON.

  • Python: Ensure you have Python 3.9 or 3.10 installed.

  • WSL (Optional but recommended for Windows): Enable WSL and install a Linux distribution like Ubuntu from the Microsoft Store. 

  • OpenSearch: Ensure SQL plugin installed.

Setup Docker Compose:

  • Clone the Superset repository: Use git clone https://github.com/apache/superset.git to clone the repository. 

  • Navigate to the Superset directory: cd superset

  • Run Docker Compose: Execute docker compose up (or docker-compose up) to start the Superset containers. This will launch the necessary services, including the Superset backend and frontend. 

Access Superset:

  • Open a web browser and go to http://localhost:8088/. You should see the Superset login page. admin/admin

Connect OpenSearch

Elasticsearch is not default DB. We need to add it.

Add Elasticsearch connector

  1. Create requirements-local.txt under github\superset\docker

     

  2. Add the driver, elasticsearch-dbapi selected in step 1 above

    echo "elasticsearch-dbapi" >> ./docker/requirements-local.txt
  3. Rebuild your local image with the new driver baked in

    docker-compose build --force-rm
  4. Fire things back up

    docker-compose up

Add database(Elasticsearch) to Superset

  1. Click “Database Connections” on the top right Settings menu.

    image-20250506-195349.png
  2. Click “+ Database”

    image-20250506-195528.png
  3. Select ElasticSearch(OpenDistro SQL)

    image-20250509-041526.png


  4. Set URI: odelasticsearch+https://user:password@host.docker.internal:9200/?verify_certs=False&v2=true

    b10820e9-f6af-4478-a0b5-46b1e180f925.png
  5. Create a new SQL: Database: OpenSearch, Schema: default, See table schema: your index

  6. Create a chart: Click “Create Chart” button. You can see table chart.

    image-20250510-020202.png