How Can I Use a Package Requiring a Driver That Isn't Pre-Installed
Question
How can I implement a Python solution that uses an external driver that doesn't come pre-installed?
Environment
Fivetran Connector SDK
Answer
To implement a Python solution that uses an external driver we don't support yet, do the following:
Create a Connector SDK connector that uses a package to perform some task, such as pulling a limited sample of data from your database for testing purposes.
Test it locally using
fivetran debug
.Deploy your connector to Fivetran.
Start the initial sync. The connection will fail.
Various errors, including but not limited to the following examples, may occur due to the use of non-preinstalled packages:
ImportError: libmysqlclient.so.21: cannot open shared object file: No such file or directory
ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory
pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager] Can't open lib '/usr/lib/odbc/libtdsodbc.so' : file not found (0) (SQLDriverConnect)")
Open a support ticket once the connection fails. Include a description of your use case and how you will use the requested package and driver to meet that use case. For databases, this can be as simple as "Pulling data from database XYZ using the Python package ABC."
We will ask you to grant us access to the failing connection. Grant Fivetran access.
We will work through the support ticket to add the required drivers to our Connector SDK for future use.