The Script-Languages-Container-Tool (exaslct) is the build tool for the script language container. You can build, export and upload script-language container from so-called flavors which are description how to build the script language container. You can find pre-defined flavors in the script-languages-release repository. There we also described how you could customize these flavors to your needs.
Building script-language container for extending Exasol UDFs.
Note: Since version 1.0.0 the "starter scripts" shipped with previous version, which pulled the exaslct
docker container runtime, were removed. If you can't use Python3, you still can use our AI-lab which provides VM images, AMI images and a Docker images, all capable of building script-language-container.
In order to install this tool, your system needs to provide the following prerequisites:
In order to use this tool, your system needs to fulfill the following prerequisites:
Software
System Setup
Further, prerequisites might be necessary for specific tasks. These are listed under the corresponding section.
In general, it's good practice to install the package in a virtual environment, using venv
or Poetry
.
python3 -m pip install exasol-script-languages-container-tool
If you plan to use exasol-script-languages-container-tool
on the command line only via the exaslct
script, we suggest the installation via pipx
:
pipx install exasol-script-languages-container-tool
For simplicity the following examples use the script version (exaslct
), which will be installed together with the Python package. The script is just an alias for python3 -m exasol.slc.tool.main
.
Create the language container and export it to the local file system
exaslct export --flavor-path=flavors/<flavor-name> --export-path <export-path>
or deploy it directly to the BucketFS (both http and https are supported)
exaslct deploy --flavor-path=flavors/<flavor-name> --bucketfs-host <hostname-or-ip> --bucketfs-port <port> \
--bucketfs-user w --bucketfs-password <password> --bucketfs-name <bucketfs-name> \
--bucket <bucket-name> --path-in-bucket <path/in/bucket> --bucketfs-use-https 1
Once it is successfully deployed, it will print the ALTER SESSION statement that can be used to activate the script language container in the database.
If you uploaded a container manually, you can generate the language activation statement with
exaslct generate-language-activation --flavor-path=flavors/<flavor-name> --bucketfs-name <bucketfs-name> \
--bucket-name <bucket-name> --path-in-bucket <path/in/bucket> --container-name <container-name>
where \
This command will print a SQL statement to activate the language similar to the following one:
ALTER SESSION SET SCRIPT_LANGUAGES='<LANGUAGE_ALIAS>=localzmq+protobuf:///<bucketfs-name>/<bucket-name>/<path-in-bucket>/<container-name>?lang=<language>#buckets/<bucketfs-name>/<bucket-name>/<path-in-bucket>/<container-name>/exaudf/exaudfclient[_py3]';
Please, refer to the User Guide for more detailed information, how to use exalsct.