The High-Performance Analytics Engine — Free for Personal Use
Deploy a full-scale Exasol cluster on your own AWS infrastructure in minutes
- 🏎️ 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
- 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.
Download the Exasol launcher:
curl https://downloads.exasol.com/exasol-personal/installer.sh | shCreate a deployment directory:
mkdir deployment && cd deploymentInstall Exasol Personal:
../exasol install awsRead on for how to install on Windows and for more detailed instructions.
-
Download Exasol Launcher for your platform.
On Linux and macOS, run:
curl https://downloads.exasol.com/exasol-personal/installer.sh | shOn all platforms including Windows: Download Exasol Launcher from the Exasol Download Portal.
Copy the
exasolbinary into your PATH. -
Create a new directory “deployment” and change into the directory:
mkdir deployment cd deployment -
Configure the
AWS_PROFILEenvironment 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
-
To install Exasol Personal, run the following command:
exasol install aws
The
exasol installcommand 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 infoin 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.
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.sqlAlternatively, 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.
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.
To save costs, you can temporarily stop Exasol Personal by using the following command (in the deployment directory):
exasol stopThis 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 startThe 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.
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.
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 connectSee 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 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.jsonin 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.
To connect with SSH to the EC2 instance that your Exasol database is running on, use exasol diag shell.
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.
Each deployment uses two presets together:
- Infrastructure preset — provisions cloud resources (nodes, disks, network) and prepares node bootstrap data. The built-in
awspreset uses OpenTofu templates to manage AWS resources. - Installation preset — defines how Exasol is installed and configured on the provisioned nodes. The built-in
ubuntuinstallation preset is used by default and works with any infrastructure preset that follows the same conventions.
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 ubuntuExternal 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 ubuntuTo see the list of available built-in presets, run:
exasol presetsBuilt-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.
To add support for a new cloud platform, create a preset directory with the following:
infrastructure.yamlmanifest — at minimum aname,description, and atofublock pointing to your variables file.- OpenTofu templates — to provision the required resources (compute instances, networking, storage).
- Required deployment artifacts written by the templates to the
infrastructure_artifact_diroutput 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
- Installation preset integration — embed installation assets (from
installation/cloudconf/andinstallation/files/) into your node bootstrap mechanism (e.g. cloud-init). The existing AWS preset atassets/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.
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).
Get the most out of Exasol with these resources:
- Exasol Documentation — Complete database documentation
- Connect to Exasol — Driver downloads and client setup
- Load Data — Import data into your database
- SQL Reference — Complete SQL syntax reference
- Exasol Community — Ask questions and share knowledge (use tag
exasol-personal)