Create a Cluster

This section explains how to add a new cluster to a database.

By default, each database includes a main cluster. You can add additional clusters for higher concurrency.

This procedure modifies or creates resources in your cloud account. Make sure that you do not exceed any resource limits set by your organization by carrying out this procedure.

This procedure is carried out using the Administration API.

Prerequisites

The database access node must be up and running.

Procedure

The following examples use curl on a Linux terminal. You can also use other interfaces and languages to execute the curl commands.

Placeholder values in the examples are styled as Bash variables, for example: $EXASOL_IP. Replace these placeholders with your own values.

The option --insecure or -k tells curl to bypass the TLS certificate check. This option allows you to connect to a HTTPS server that uses a self-signed certificate or a certificate that is not valid. Only use this option if certificate verification is not possible and you trust the server.

  1. To get information about the database, send a GET request to the /api/v1/databases endpoint.

    curl --insecure -X "GET" \
    "https://$EXASOL_IP/api/v1/databases" \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN"

    The response includes the database ID, name, and version. Additional details are included depending on the configuration and platform.

  2. To add a cluster, send a POST request to the /api/v1/databases/DATABASE_ID/clusters endpoint and include the new cluster's name and instance type in the payload. The instance-type depends on the cloud environment. In AWS an instance type could be 'c5d.2xlarge'. For example:

    curl --insecure -X "POST" \
    "https://$EXASOL_IP/api/v1/databases/$DATABASE_ID/clusters" \
    -H "accept: application/json" \
    -H "Authorization: Basic $AUTH_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "worker_cluster1",
      "instanceType": "c5d.2xlarge"
    }'

If the cluster is created while the database is stopped, the cluster is not started automatically after creation. To start the cluster, see Start a Cluster.

Verification

To verify that the cluster was created, send a GET request to the /api/v1/databases/DATABASE_ID/clusters endpoint. For example:

curl --insecure -X "GET" \
"https://$EXASOL_IP/api/v1/databases/$DATABASE_ID/clusters" \
-H "accept: application/json" \
-H "Authorization: Basic $AUTH_TOKEN"

The new cluster should be listed in running state.