Load data from Azure Blob Storage
Learn how to load data into your Exasol database from Azure Blob Storage using IMPORT.
You can import data in CSV and FBV formatted files from blobs on Azure Blob Storage in all supported versions of Exasol.
In Exasol 2026.1 and later you can also import Parquet files from Azure Blob Storage. To learn more, see Import Parquet files from S3 storage.
Authentication methods
Exasol supports the following methods for authorizing connections with Azure:
-
Azure account access key
-
SAS token
-
Microsoft Entra ID (formerly AAD)
Authorizing with SAS token or Entra ID (AAD) is only supported in Exasol 2026.1 and later.
Create connection
To prevent connection details from being exposed in logs and audit tables, we recommend that you always create a connection object using CREATE CONNECTION and authenticate using the saved connection instead of providing the details openly in the IMPORT/EXPORTstatements.
Connection object authorizing with shared key:
CREATE CONNECTION my_blob_conn
TO 'DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net'
USER '<AccountName>' IDENTIFIED BY '<AccountKey>';
| Parameter | Description |
|---|---|
USER (optional) |
The storage account name. The account name can also be included in the URL (connection string). If specified in both places, |
IDENTIFIED BY
|
The storage account access key. |
Do not include the access key in the URL (connection string). The access key must only be passed in the IDENTIFIED BY clause.
Connection object authorizing with SAS (shared access signature) token:
CREATE CONNECTION my_blob_conn
TO 'DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net'
USER '<AccountName>' SAS TOKEN '<SASToken>';
| Parameter | Description |
|---|---|
USER (optional) |
The storage account name. The account name can also be included in the URL (connection string). If specified in both places, |
SAS TOKEN
|
The shared access signature (SAS) token. SAS tokens are time-bound and permission-scoped. For more information, see the Microsoft Azure documentation. |
Do not include the SAS token in the URL (connection string). The token must only be passed in the SAS TOKEN clause.
Connection object authorizing with Microsoft Entra ID (AAD):
CREATE CONNECTION my_blob_conn
TO 'DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net'
USER '<AccountName>' IDENTIFIED BY '<ClientSecret>'
CLIENT ID '<ClientId>'
TENANT ID '<TenantId>';
| Parameter | Description |
|---|---|
USER (optional) |
The storage account name. The account name can also be included in the URL (connection string). If specified in both places, |
IDENTIFIED BY
|
The Entra client secret |
CLIENT ID
|
The Entra client ID |
TENANT ID
|
The Entra tenant ID |
Microsoft Entra ID (AAD) requires the appropriate Azure RBAC roles. For more information, refer to the Microsoft Azure documentation.
Do not include the Entra client secret in the URL (connection string). The client secret must only be passed in the IDENTIFIED BY clause.
File size limits
By default, the IMPORT and EXPORT commands will download or upload data blocks of 10 MiB in parallel using two threads. Because Azure Blob Storage allows a maximum of 50,000 blocks in a single blob, the maximum file size that you can import data to is ~500 GiB.
To change the default settings to allow a different maximum file size, edit the following database parameters:
-
etlAzureBlockSize -
The minimum block size in bytes for Azure blob IMPORT/EXPORT operations.
Default: 10 MiB
-
etlAzureMaxThreads -
The maximum number of threads to use for Azure blob IMPORT/EXPORT operations.
Default: 2
To learn how to edit database parameters, see Database management.
If you need to edit these parameters in Exasol SaaS, click on Help > Support in the web console to send a support request.
Invalid parameters will prevent the database from starting. To avoid unnecessary downtime, contact Support for guidance before you add or change database parameters.
Examples
To prevent connection details from being exposed in logs and audit tables, we recommend that you always create a connection object using CREATE CONNECTION and authenticate using the saved connection instead of providing the details openly in the IMPORT/EXPORTstatements.
CREATE CONNECTION my_blob_conn
TO 'DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net'
USER '<AccountName>' IDENTIFIED BY '<AccountKey>';
IMPORT INTO table1
FROM CSV AT CLOUD AZURE BLOBSTORAGE my_blob_conn
FILE '<container>/<blob>'
CREATE CONNECTION my_blob_conn
TO 'DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net'
USER '<AccountName>' SAS TOKEN '<SASToken>';
IMPORT INTO table1
FROM CSV AT CLOUD AZURE BLOBSTORAGE my_blob_conn
FILE '<container>/<blob>';
CREATE CONNECTION my_blob_conn
TO 'DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net'
USER '<AccountName>' IDENTIFIED BY '<ClientSecret>'
CLIENT ID '<ClientId>'
TENANT ID '<TenantId>';
IMPORT INTO table1
FROM CSV AT CLOUD AZURE BLOBSTORAGE my_blob_conn
FILE '<container>/<blob>';