Skip to content

Uploading external drivers to the agent

The AWS and Azure hosted agents natively include drivers for a large number of third-party connectors. There are, however, certain external drivers that aren't supplied by default.

For drivers that aren't supplied by default, you can upload your own drivers to the agent at runtime by specifying a storage location in your infrastructure that will hold the driver files.

Note

  • Adding additional unsupported drivers to the agent will result in increased startup time with no guarantee that they will work, so we don't recommend doing this. Supported drivers are listed below.
  • There is no support for importing external drivers to Matillion-hosted agents in a Full-SaaS solution.

Valid external driver file types

Only the .jar and .so file types will be recognized as external drivers. Any other file types in the drivers storage location will be ignored by the agent.


AWS-hosted agents

To load external drivers into an AWS-hosted agent, store the driver files in an S3 bucket that's in the same account space as the agent and accessible by the agent.

The IAM role for the account the agent is hosted in will need to have at least the following permissions to access S3 buckets:

  • s3:ListAllMyBuckets
  • s3:ListBucket
  • s3:GetObject
  • s3:GetBucketLocation

These will be applied automatically if you created the agent using the provided CloudFormation template.

The agent must have the EXTERNAL_DRIVER_LOCATION environment variable added and set to the location of the driver files in the S3 bucket—for example, s3://driver-bucket/my-drivers. You can omit s3:// from this, as the agent will assume the connection is to an S3 bucket and automatically use the correct protocol.

When you launch a new agent with the CloudFormation template, the configuration page in the AWS console will have a field named External Driver Location. Enter the path for the driver location here.

If you are updating an existing agent, you will need to create a new revision of the task definition in use, and add the EXTERNAL_DRIVER_LOCATION environment variable with the appropriate path. Then, restart the service using the new task definition.


Azure-hosted agents

To load external drivers into an Azure-hosted agent, store the drivers in an Azure Blob container in a storage account that is in the same resource group as the agent and accessible by the agent.

The storage account's managed identity associated with the agent's container will need to have at least the following permissions:

  • Storage Account Contributor
  • Storage Blob Data Contributor
  • Storage Blob Data Reader

These will be applied automatically if you create the agent using the provided ARM template.

The agent must have the EXTERNAL_DRIVER_LOCATION environment variable added and set to the location of driver files in the Azure Blob container—for example, https://mystorageaccount.blob.core.windows.net/my-drivers. You can omit https:// from this, as the agent will assume the connection is to a Blob container and automatically use the correct protocol.

When you launch a new agent with the ARM template, the configuration page in the Azure Portal will have a field named External Driver Location. Enter the path for the driver location here.

If you are updating an existing agent, you will need to edit and deploy the existing container and add the EXTERNAL_DRIVER_LOCATION environment variable, with the appropriate path. Then, create the new revision.


Drivers needed for components

This section lists the Data Productivity Cloud components that need external drivers to be uploaded to the agent.

SAP ODP

For the SAP ODP component, two driver files are required:

  • sapjco3.jar
  • libsapjco3.so

You can obtain these drivers as a single ZIP file from Download SAP Java Connector 3.1 SDK, selecting Linux for AArch64 compatible processors. Unzip the file and place the drivers in the storage location you specified in EXTERNAL_DRIVER_LOCATION, as described above. Do not change the driver file names.

JDBC

For the JDBC component, you will need to upload any driver files required by the data source you are using. Consult the data source's documentation to discover which drivers you need and how to obtain them. Place the drivers in the storage location you specified in EXTERNAL_DRIVER_LOCATION, as described above.

This component also requires a driver manifest file to be uploaded. Read Manifest file for details of how to create this file. Name the file jdbc-driver-manifest.json and place it in the storage location you specified in EXTERNAL_DRIVER_LOCATION, as described above.