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:
Copy
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, USER takes preference.

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:
Copy
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, USER takes preference.

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):
Copy
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, USER takes preference.

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.

Copy
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>'
Copy
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>';
Copy
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>';