docs/src/main/sphinx/object-storage/file-system-azure.md
Trino includes a native implementation to access Azure Data Lake Storage Gen2 with a catalog using the Delta Lake, Hive, Hudi, or Iceberg connectors.
Enable the native implementation with fs.native-azure.enabled=true in your
catalog properties file. Additionally, the Azure storage account must have
hierarchical namespace enabled.
Use the following properties to configure general aspects of Azure Storage file system support:
:::{list-table} :widths: 40, 60 :header-rows: 1
fs.native-azure.enabledfalse. Set to true to use Azure Storage and enable all other properties.azure.endpointcore.windows.net for the global Azure cloud.
Use core.usgovcloudapi.net for the Azure US Government cloud,
core.cloudapi.de for the Azure Germany cloud,
or core.chinacloudapi.cn for the Azure China cloud.azure.read-block-size4MB.azure.write-block-size4MB.azure.max-write-concurrencyazure.max-single-upload-size4MB.azure.max-http-requests1. Use this property to reduce the number of requests when
you encounter rate limiting issues.azure.application-idUser-Agent header
for all requests sent to Azure Storage. Defaults to Trino.azure.multipart-write-enabledfalse.
:::(azure-user-assigned-managed-identity-authentication)=
Use the following properties to configure user-assigned managed identity authentication to Azure Storage:
:::{list-table} :widths: 40, 60 :header-rows: 1
azure.auth-typeDEFAULT.azure.user-assigned-managed-identity.client-idazure.user-assigned-managed-identity.resource-idOnly one of azure.user-assigned-managed-identity.client-id or azure.user-assigned-managed-identity.resource-id can be
specified.
(azure-access-key-authentication)=
Use the following properties to configure access key authentication to Azure Storage:
:::{list-table} :widths: 40, 60 :header-rows: 1
azure.auth-typeACCESS_KEY.azure.access-keyACCESSS_KEY.
:::(azure-oauth-authentication)=
Use the following properties to configure OAuth 2.0 authentication to Azure Storage:
:::{list-table} :widths: 40, 60 :header-rows: 1
azure.auth-typeOAUTH.azure.oauth.tenant-idazure.oauth.endpointazure.oauth.client-idazure.oauth.secretTo allow Trino to access multiple Azure storage accounts from a single catalog configuration, you can use with an Azure service principal. The following steps describe how to create a service principal in Azure and assign an IAM role granting access to the storage accounts:
Once you create the service principal and configure the storage accounts use the Client ID, Secret and Tenant ID values from the application registration, to configure the catalog using properties from .
(fs-legacy-azure-migration)=
Trino includes legacy Azure Storage support to use with a catalog using the Delta Lake, Hive, Hudi, or Iceberg connectors. Upgrading existing deployments to the current native implementation is recommended. Legacy support is deprecated and will be removed.
To migrate a catalog to use the native file system implementation for Azure, make the following edits to your catalog configuration:
fs.native-azure.enabled=true catalog configuration property.azure.auth-type catalog configuration property.:::{list-table} :widths: 35, 35, 65 :header-rows: 1
hive.azure.abfs-access-keyazure.access-keyhive.azure.abfs.oauth.client-idazure.oauth.client-idhive.azure.abfs.oauth.secretazure.oauth.secrethive.azure.abfs.oauth2.passthroughazure.use-oauth-passthrough-token:::
Remove the following legacy configuration properties if they exist in your catalog configuration:
hive.azure.abfs-storage-accounthive.azure.wasb-access-keyhive.azure.wasb-storage-account