Install Kusto Query Engine in Docker container
By: Date: 17/09/2022 Categories: azure Tags:

Azure Data Explorer offering: the Kusto Emulator is a local environment Docker Container that encapsulating the Kusto Query Engine, it doesn’t require provisioning Azure services or incurring any cost.

Prerequisites

  • The host operating system must be either:
    • Windows Server 2022
    • Windows Server 2019 Version 10.0.17763.2928 or newer
    • Windows 11
  • 2 gigabytes (GB) of RAM minimum; we recommend using 4 GB or more
  • Docker Client

Follow the Steps to Install the Kusto emulator

Using PowerShell to start the emulator using the Kusto emulator container image

  1. Switch Docker to run with Windows containers.

2. Make sure to use the latest or stable tag on Windows server operating system.

docker run -e ACCEPT_EULA=Y -m 4G -d -p 9000:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:latest

Make sure you use the windows11 tag: to run the container image on windows 11.

docker run -e ACCEPT_EULA=Y -m 4G -d -p 9000:8080 -t mcr.microsoft.com/azuredataexplorer/kustainer:windows11

3. Check and verify the container is running

docker ps

Run the below command to verify kusto emulator is running.

curl -Method post -ContentType 'application/json' -Body '{"csl":".show cluster"}' http://localhost:8080/v1/rest/mgmt

Result:

It should return a status code with a value 200.

StatusCode : 200 StatusDescription : OK

Options to run emulator

  1. Mount a local folder to the container: Use this option to mount a folder in the host environment into the container. Mounting a host folder enables your queries to interact with local files, which is useful for creating a persistent database and ingesting data.

2. Run on a different port: The Kusto emulator exposes access to the Kusto Query Engine on port 8080; hence in other examples you mapped the host port 8080 to the emulator port 8080. You can use this option to map a different host to the engine.

Connecting to emulator

You can use any of the following tools to connect to and interact with the emulator: