Skip to content

exasol/exasol-personal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exasol Logo

Exasol Personal

The High-Performance Analytics Engine — Free for Personal Use

Deploy a full-scale Exasol cluster on your own AWS infrastructure in minutes

Documentation Community Downloads

🔥 Key Features

  • 🏎️ In-Memory Performance — Run complex analytics at in-memory speed with Exasol's industry-leading analytics engine
  • 🏢 Full Enterprise Features — Access all enterprise-scale capabilities of the Exasol database, completely free for personal use
  • ♾️ Unlimited Data — Store and analyze unlimited amounts of data with no artificial limits
  • 📈 Scalable Architecture — Scale up to any number of nodes using Exasol's MPP (Massively Parallel Processing) architecture
  • 🤖 Built-in AI Functions — Leverage native AI/ML capabilities with GPU acceleration
  • ⚙️ Simple Deployment — Spin up a distributed cluster on your own AWS infrastructure with just a few commands
  • 🖥️ Cross-Platform CLI — Install and manage your cluster using the Exasol Launcher on Linux, macOS, or Windows

✅ Prerequisites

  • An AWS account that can provision large type instances. Exasol launcher by default uses the r6i.xlarge EC2 instance type.
  • An AWS user with enough permissions to create resources such as EC2 instances.

To learn how to set up an AWS account with an instance profile and configure your local environment to use that profile when installing Exasol Personal, see Set up an AWS account for Exasol Personal. To learn how to set up an Azure account and local authentication for the Azure preset, see Set up an Azure account for Exasol Personal.

🏎️ Quick Start for macOS 🍎 and Linux 🐧

Download the Exasol launcher:

curl https://downloads.exasol.com/exasol-personal/installer.sh | sh

Create a deployment directory:

mkdir deployment && cd deployment

Install Exasol Personal:

../exasol install aws

Read on for how to install on Windows and for more detailed instructions.

🚀 Deploy Exasol Personal

  1. Download Exasol Launcher for your platform.

    On Linux and macOS, run:

    curl https://downloads.exasol.com/exasol-personal/installer.sh | sh

    On all platforms including Windows: Download Exasol Launcher from the Exasol Download Portal.

    Copy the exasol binary into your PATH.

  2. Create a new directory “deployment” and change into the directory:

    mkdir deployment
    cd deployment
  3. Configure the AWS_PROFILE environment variable to use the instance profile that you created in your AWS account for Exasol Personal.

    If the profile name is exasol:

    # Linux / macOS (Bash)
    export AWS_PROFILE=exasol
    # Windows (PowerShell)
    $env:AWS_PROFILE = "exasol"
    # Windows (cmd)
    set AWS_PROFILE=exasol
  4. To install Exasol Personal, run the following command:

    exasol install aws

    The exasol install command does the following:

    • Generates Terraform files in the deployment directory
    • Provisions the necessary AWS infrastructure with Terraform
    • Starts up the AWS infrastructure
    • Downloads and installs Exasol Personal on that infrastructure

    The whole process normally takes about 10 to 20 minutes to complete.

    When the deployment process has finished, you will see instructions on how to connect to your Exasol database using a client of your choice. You can also find this information at any time by using exasol info in the terminal.

Most exasol commands must be run from the context of the deployment directory. Change into the deployment directory before you run any exasol commands, and prepend the command with the relative path to the binary. For example: ../exasol <command>.

To avoid having to prepend all exasol commands with the path to the binary, you can add the path to your PATH environment variable. For more information about how to set environment variables, refer to the documentation for your operating system.

📊 Load Sample Data

To get started quickly, Exasol provides two sample datasets hosted on S3 that you can import directly using SQL.

You can load it directly by executing this command in the deployment directory:

exasol connect < sample.sql

Alternatively, connect with a SQL client of your choice and paste the statements below:

CREATE OR REPLACE TABLE PRODUCTS (
    PRODUCT_ID        DECIMAL(18,0),
    PRODUCT_CATEGORY  VARCHAR(100),
    PRODUCT_NAME      VARCHAR(2000000),
    PRICE_USD         DOUBLE,
    INVENTORY_COUNT   DECIMAL(10,0),
    MARGIN            DOUBLE,
    DISTRIBUTE BY PRODUCT_ID);

IMPORT INTO PRODUCTS
FROM PARQUET AT 'https://exasol-easy-data-access.s3.eu-central-1.amazonaws.com/sample-data/'
FILE 'online_products.parquet';
CREATE OR REPLACE TABLE PRODUCT_REVIEWS (
    REVIEW_ID          DECIMAL(18,0),
    PRODUCT_ID         DECIMAL(18,0),
    PRODUCT_NAME       VARCHAR(2000000),
    PRODUCT_CATEGORY   VARCHAR(100),
    RATING             DECIMAL(2,0),
    REVIEW_TEXT        VARCHAR(100000),
    REVIEWER_NAME      VARCHAR(200),
    REVIEWER_PERSONA   VARCHAR(100),
    REVIEWER_AGE       DECIMAL(3,0),
    REVIEWER_LOCATION  VARCHAR(200),
    REVIEW_DATE        VARCHAR(200),
    DISTRIBUTE BY PRODUCT_ID);

IMPORT INTO PRODUCT_REVIEWS
FROM PARQUET AT 'https://exasol-easy-data-access.s3.eu-central-1.amazonaws.com/sample-data/'
FILE 'product_reviews.parquet';
Table Rows Size
PRODUCTS 1,000,000 27.3 MiB
PRODUCT_REVIEWS 1,822,007 154.5 MiB

Both tables are distributed by PRODUCT_ID, enabling efficient joins between them.

⚙️ Choosing cluster size and instance types

The launcher will by default generate Terraform files to install one Exasol node on one Amazon EC2 instance of the type r6i.xlarge. To change the number of nodes and the EC2 instance type to use in the deployment, use the --cluster-size and --instance-type options:

exasol install aws --cluster-size <number> --instance-type <string>

If the deployment process is interrupted, EC2 instances that were created by the process will not be terminated and may therefore continue to accrue cost. In case of an aborted deployment you must log in to the AWS console and manually terminate those instances.

⏯️ Start and stop Exasol Personal

To save costs, you can temporarily stop Exasol Personal by using the following command (in the deployment directory):

exasol stop

This stops the EC2 instance(s) that Exasol Personal is running on.

Networking and data volumes that the database data is stored on will continue to incur costs when instances are stopped.

To start Exasol Personal again, use the following command:

exasol start

The IP addresses of the nodes will change when you restart Exasol Personal. Check the output of the start command to know how to connect to the deployment after a restart.

🗑️ Remove Exasol Personal

To completely remove an Exasol Personal deployment, use exasol destroy. This command will terminate the EC2 instance and delete it and all associated resources in AWS.

To learn more about this command, use exasol destroy --help.

Deleting the deployment directory and the Exasol Launcher will not remove the resources that were created in your AWS account. To completely remove a deployment, you must use the exasol destroy command.

If you have already deleted the deployment directory and the exasol binary, you must log in to the AWS console and manually terminate the EC2 instances and associated resources.

🔜 Next steps

Once the deployment process is complete, use exasol info for information about how to connect to your Exasol database. The credentials for connecting to the database from a client are stored in the file secrets.json in the deployment directory.

You can also use the built-in SQL client in Exasol Launcher to connect directly to the database from the command line:

../exasol connect

See also...

  • To learn more about how you can connect to your Exasol database and start loading data using the many supported tools and integrations, see Connect to Exasol and Load Data.
  • To learn how to use the SQL statements, data types, functions, and other SQL language elements that are supported in Exasol, see SQL reference.

🧑‍💻 Exasol Admin

Exasol Admin is an easy-to-use web interface that you can use to administer your new Exasol database. Instructions for how to access Exasol Admin is shown in the terminal output at the end of the install process.

  • To find the Exasol Admin URL after the installation has completed, use exasol info.
  • The credentials for connecting to Exasol Admin are stored in the file secrets.json in the deployment directory.

Your browser may show a security warning when connecting to Exasol Admin because of the self-signed certificate. Accept this warning and continue.

🔒 Connect using SSH

To connect with SSH to the EC2 instance that your Exasol database is running on, use exasol diag shell.

☁️ Add Support for Additional Cloud Platforms

Exasol Personal can be deployed on cloud platforms beyond AWS through infrastructure presets. A preset is a self-contained directory of templates and configuration files that the launcher uses to provision infrastructure and install Exasol on it. The launcher ships with built-in presets, and you can also point it at a preset directory on your local filesystem.

Two preset types

Each deployment uses two presets together:

  • Infrastructure preset — provisions cloud resources (nodes, disks, network) and prepares node bootstrap data. The built-in aws preset uses OpenTofu templates to manage AWS resources.
  • Installation preset — defines how Exasol is installed and configured on the provisioned nodes. The built-in ubuntu installation preset is used by default and works with any infrastructure preset that follows the same conventions.

Using presets on the command line

The install (and init) command takes the infrastructure preset as its first argument and an optional installation preset as its second argument:

exasol install <infra-preset> [install-preset]

Built-in presets are selected by name:

# Use the built-in AWS infrastructure preset with the default installation preset
exasol install aws

# Explicitly specify both presets by name
exasol install aws ubuntu

External presets on your local filesystem are selected by path. Any argument that looks like a path (starts with ., ~, or contains / or \) is treated as a directory path:

# Use a local infrastructure preset directory
exasol install ./my-gcp-preset

# Use local directories for both presets
exasol install ./my-gcp-preset ./my-install-preset

# Use a built-in installation preset with a local infrastructure preset
exasol install /path/to/my-preset ubuntu

To see the list of available built-in presets, run:

exasol presets

Where built-in presets live

Built-in presets are embedded in the launcher binary and sourced from:

  • assets/infrastructure/<preset>/ — infrastructure presets (OpenTofu templates + infrastructure.yaml)
  • assets/installation/<preset>/ — installation presets (scripts, cloud-init fragments + installation.yaml)

When you run exasol install, the selected presets are extracted into the deployment directory under infrastructure/ and installation/.

External presets can live in any folder that you choose.

Creating a new infrastructure preset

To add support for a new cloud platform, create a preset directory with the following:

  1. infrastructure.yaml manifest — at minimum a name, description, and a tofu block pointing to your variables file.
  2. OpenTofu templates — to provision the required resources (compute instances, networking, storage).
  3. Required deployment artifacts written by the templates to the infrastructure_artifact_dir output directory:
    • deployment.json — node details (IPs, SSH info, DB endpoints, TLS cert)
    • secrets.json — credentials (dbPassword, adminUiPassword)
    • node_access.pem — SSH private key for the launcher to use
  4. Installation preset integration — embed installation assets (from installation/cloudconf/ and installation/files/) into your node bootstrap mechanism (e.g. cloud-init). The existing AWS preset at assets/infrastructure/aws/ is the reference implementation.

For a detailed description of the preset contract, manifest schemas, variable channels, and compatibility guidelines, see doc/presets.md.

⚖️ Licensing

The Exasol Launcher source code in this repository is open-source software licensed under the MIT License. You are free to use, modify, and distribute it. Contributions are made under the same terms.

The launcher installs the Exasol Database, which is proprietary software provided by Exasol AG, free for personal use. By deploying it with exasol install, you accept the Exasol Personal End User License Agreement (EULA).

📚 Resources & Documentation

Get the most out of Exasol with these resources:

About

The High-Performance Analytics Engine — Free for Personal Use

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors