Skip to content

Getting started

First of all, make sure to obtain a license for Polars on-premises by signing up here. You will receive a link to download our binary named polars-on-premises as well as a JSON-formatted license for running Polars on-premises.

Reading the license

The license can be read by running the following command:

$ ./polars-on-premises service --print-eula /path/to/license.json

Running the binary

The main entrypoint is as follows:

$ ./polars-on-premises service --config-path /etc/polars-cloud/config.toml

However, the service requires quite some configuration to get started. Below you can find an example scheduler and worker config, and you can find the full configuration reference here.

Quick start

To get started fast, you can use the following configuration. It enables the scheduler, worker, observatory, and monitoring components. It writes query output data and shuffle data to a local directory.

cluster_id = "polars-cluster"
instance_id = "node-0"
license = "./license.json" # Path to your Polars on-premises license. This is a JSON file containing your company name, license expiry, and license signature.

# Component that receives the Polars queries from the Python client.
[scheduler]
enabled = true
allow_local_sinks = true
anonymous_result_location.local.path = "./results-data"
n_workers = 1

# Component that receives and executes tasks from the scheduler.
[worker]
enabled = true
shuffle_location.local.path = "./shuffle-data-path"
task_service.public_addr = "127.0.0.1"
shuffle_service.public_addr = "127.0.0.1"

# Component that receives query profiling and host metrics.
[observatory]
enabled = true
max_metrics_bytes_total = 30000
database_path = "./observatory/"

# Enables exporting query profiles and host metrics to the observatory service.
[monitoring]
enabled = true

# Explicitly define that node-0 is the leader node. The leader node should run the observatory and monitoring components.
[static_leader]
leader_instance_id = "node-0"
observatory_service.public_addr = "127.0.0.1"
scheduler_service.public_addr = "127.0.0.1"

Configuration

The complete configuration reference can be found here.