Getting Started with the CData Python Connector for HubDB
This guide walks you through installing, licensing, and connecting the CData Python Connector to live HubDB data. You will learn to:
- Install the connector and apply the license.
- Configure a connection to HubDB.
- Explore steps to integrate live HubDB data within your Python applications.
Let's begin.
Prerequisites
- A Python installation (v3.8 or higher) configured for your machine. Download and install here.
- The CData Python Connector for HubDB with a valid license. Download and install here.
- An active HubDB account with valid credentials.
Step 1: Installation and Licensing
1.1 Install the Connector
Python Dependencies Note: Make sure you have Python installed. The CData Python Connector supports Python versions 3.8, 3.9, 3.10, 3.11, and 3.12. If you are using a version outside this range, you may need to create a virtual environment with virtualenv.
Windows Installation
- Download and extract the Connector ZIP to your desired location.
-
Open a terminal or command prompt and navigate to the directory where the .whl
file is located (inside the /win/ directory).
Example:
~\Downloads\HubDBPythonConnector\CData.Python.HubDB\win\Python312\64 -
Install the .whl file using pip.
Ensure it matches your Python version and architecture. Example:
pip install cdata_hubdb_connector-24.0.9111-cp312-cp312-win_amd64.whl - Confirm the installation by running pip list. If cdata-hubdb-connector appears, the installation is successful.
Linux/Mac Installation
- Download and extract the Connector ZIP to your desired location.
-
Open a terminal and navigate to the extracted installation directory to locate the
.tar.gz file inside the /unix/ or /mac/ folder.
Example:
~/Downloads/HubDBPythonConnector/CData.Python.HubDB/unix/
or
CData.Python.HubDB/mac/ -
Install the .tar.gz file using pip. Example:
pip install cdata_hubdb_connector-24.0.####-python3.tar.gz - Confirm the installation by running pip list. If cdata-hubdb-connector appears, the installation is successful.
1.2 Activate the License
After your purchase, you should have received your license key via email from the CData Orders Team. The license key is a 25-character code that looks like this: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
Windows License Activation
- Open a terminal or command prompt and navigate to the cdata folder inside your site-packages directory of your Python installation.
-
Example path:
C:\Users\Username\AppData\Local\Programs\Python\Python312\Lib\site-packages\cdata\installlic_hubdb -
Run the license-installer.exe file with your license key:
.\license-installer.exe [YOUR LICENSE KEY HERE] - When prompted, enter your registered name and email to complete the activation.
Linux/MacOS License Activation
-
Open a terminal and navigate to the cdata folder inside your
Python site-packages directory.
This directory is typically located under:
~/Library/Python/3.12/lib/python/site-packages/cdata/installlic_hubdb or
/usr/local/lib/python3.12/site-packages/cdata/installlic_hubdb -
Run the Linux/Mac license installer script:
./install-license.sh [YOUR LICENSE KEY HERE] - Enter your registered name and email when prompted to complete the activation.
Common Licensing Questions
Can I use my license on multiple machines?
Yes, depending on your subscription tier. Check your order confirmation email or contact your account representative for details.
If you are unsure who your account representative is, contact [email protected].
I lost my license key. How do I retrieve it?
Email [email protected] with your order number, and we will resend your license key.
Can I transfer my license to a different machine?
Yes. You will need to submit a License Transfer Request using our license transfer request page linked below:
https://www.cdata.com/lic/transfer/
After your License Transfer Request is submitted and processed, an additional activation will be added to your Product Key.
You will then be able to activate the full license on the new machine.
Once this process is complete, the license on the previous machine will become invalid.
For additional licensing questions, contact [email protected]. You can view and manage your license through our self-service portal at portal.cdata.com.
Step 2: Connection Configuration
After the installation and license activation are complete, you can establish a connection using the CData Python Connector.
2.1 Establish a Connection
The CData Python Connector for HubDB is exposed as a Python module that you can import using the standard import statement and then build your application code around it.
The Connector also includes built-in metadata tools such as sys_tables and sys_tablecolumns, which allow you to perform schema discovery — including available tables, columns, and structural metadata for HubDB data.
The following example establishes a connection to HubDB using your authentication properties and retrieves column names from a specific table.
Replace or modify the connection string values below with your actual credentials, and update your table name in '[TABLE NAME]' as needed.
If your HubDB instance uses MFA or additional security requirements, you may need to include properties such as Passcode or SecurityToken in your connection string. Refer to the Connection String Options section in the Connector Help documentation (also available inside the help directory of the Connector) for a complete list of supported properties.
import cdata.hubdb as mod
# Establish the connection using your configured properties
conn = mod.connect(
"AuthScheme=OAuth;"
"OAuthClientID=MyOAuthClientID;"
"OAuthClientSecret=MyOAuthClientSecret;"
"CallbackURL=http://localhost:33333;"
"InitiateOAuth=GETANDREFRESH;"
)
# Query column names for the specified table
cur = conn.cursor()
cur.execute("SELECT ColumnName FROM sys_tablecolumns WHERE TableName = '[TABLE NAME]'")
print("Columns in your table:")
for row in cur.fetchall():
print(row[0])
cur.close()
conn.close()
This code connects to HubDB, queries the metadata catalog, and prints all column names for the table you specify. Check out the complete Connector documentation to learn how to modify the SQL query to explore additional schemas, tables, or other supported metadata views.
2.2 Available Connection Configuration
There are two authentication methods available for connecting to HubDB data source: OAuth Authentication with a public HubSpot application and authentication with a Private application token.
Using a Custom OAuth App
AuthScheme must be set to "OAuth" in all OAuth flows. Be sure to review the Help documentation for the required connection properties for you specific authentication needs (desktop applications, web applications, and headless machines).
Follow the steps below to register an application and obtain the OAuth client credentials:
- Log into your HubSpot app developer account.
- Note that it must be an app developer account. Standard HubSpot accounts cannot create public apps.
- On the developer account home page, click the Apps tab.
- Click Create app.
- On the App info tab, enter and optionally modify values that are displayed to users when they connect. These values include the public application name, application logo, and a description of the application.
- On the Auth tab, supply a callback URL in the "Redirect URLs" box.
- If you're creating a desktop application, set this to a locally accessible URL like http://localhost:33333.
- If you are creating a Web application, set this to a trusted URL where you want users to be redirected to when they authorize your application.
- Click Create App. HubSpot then generates the application, along with its associated credentials.
- On the Auth tab, note the Client ID and Client secret. You will use these later to configure the driver.
Under Scopes, select any scopes you need for your application's intended functionality.
A minimum of the following scopes is required to access tables:
- hubdb
- oauth
- crm.objects.owners.read
- Click Save changes.
- Install the application into a production portal with access to the features that are required by the integration.
- Under "Install URL (OAuth)", click Copy full URL to copy the installation URL for your application.
- Navigate to the copied link in your browser. Select a standard account in which to install the application.
- Click Connect app. You can close the resulting tab.
Using a Private App
To connect using a HubSpot private application token, set the AuthScheme property to "PrivateApp."
You can generate a private application token by following the steps below:
- In your HubDB account, click the settings icon (the gear) in the main navigation bar.
- In the left sidebar menu, navigate to Integrations > Private Apps.
- Click Create private app.
- On the Basic Info tab, configure the details of your application (name, logo, and description).
- On the Scopes tab, select Read or Write for each scope you want your private application to be able to access.
- A minimum of hubdb and crm.objects.owners.read is required to access tables.
- After you are done configuring your application, click Create app in the top right.
- Review the info about your application's access token, click Continue creating, and then Show token.
- Click Copy to copy the private application token.
To connect, set PrivateAppToken to the private application token you retrieved.
2.3 Common Connection Issues
Authentication Failed
Solution: Verify that your User, Password, and any additional authentication properties required by HubDB are correct. If your data source enforces MFA, SSO, or passcodes, ensure the correct properties are included in the connection string. Refer to the complete Connector documentation for the full list of supported authentication properties, or contact [email protected] for assistance validating authentication settings.
Cannot Reach Server
Solution: Confirm that the endpoint URL in your connection string is correct and that outbound HTTPS traffic is allowed from your environment. If you are behind a firewall or proxy, ensure that Python is permitted to reach the service URL. For network configuration details or port requirements, contact [email protected].
Table Not Found
Solution: Verify the Database, Schema, and table name in your SQL query. Use metadata views such as sys_tables and sys_tablecolumns to confirm the exact table and column names exposed by HubDB data. If the table name is case-sensitive, ensure you are using the correct casing in your query.
Module Not Found or Import Errors
Solution: Ensure the Python Connector is installed in the correct environment. Run pip list to verify that the connector (cdata-hubdb-connector) is present. If you are using virtual environments, activate the correct environment before executing your script.
Connection String Errors
Solution: Incorrect property formatting or missing semicolons can prevent the connector from parsing your connection settings. Review your connection string to ensure each property follows the correct Key=Value; format. Refer to the Python Connector documentation for property names supported by HubDB.
For additional connection troubleshooting, contact [email protected] with your full error message (masking sensitive credentials before sending).
Step 3: Explore Next Steps
With the connector installed and your connection configured, you can now begin working with live HubDB data in Python. Explore the resources below to extend your integration and build complex workflows.
| Python Client | Article Title |
|---|---|
| Python MCP Server | Connect HubDB to AI Assistants With the CData Python MCP Server |
| pandas | Use pandas to Visualize HubDB in Python |
| Dash | Use Dash & Python to Build Web Apps on HubDB |
| SQLAlchemy | Use SQLAlchemy ORMs to Access HubDB in Python |
| petl | Extract, Transform, and Load HubDB in Python |
Get Support
If you need assistance at any point:
- Technical Support: [email protected]
- Community Forum: CData Community Site
- Help Documentation: Installed locally and available online
FAQs
Installation & Licensing
-
Do I need administrator rights to install the connector?
Administrator rights are not required for installing the Python Connector, but they may be needed when applying the license or installing into system-wide Python environments. -
Can I install the connector in multiple Python environments?
Yes. Install the connector once per environment (venv, Conda, system Python). Each environment maintains its own packages and will use the machine license once activated.
Connecting
-
How do I provide authentication details?
Pass authentication properties in the connection string when calling mod.connect(). Refer to the Connector help documentation for the full list of supported properties. -
How do I discover tables and columns?
Use metadata views such as sys_tables and sys_tablecolumns. Example:SELECT * FROM sys_tables;
-
Can I connect through a proxy server?
Yes. Include proxy properties in your connection string, such as ProxyServer, ProxyPort, and ProxyUser. See the Firewall & Proxy section in the documentation.
Performance & Troubleshooting
-
Why are my queries slow?
Check the following:- Add filters (WHERE clauses) to reduce result size.
- Use Caching for data that does not change frequently.
- Ensure your Database and Schema selection information are correct.
- Contact [email protected] for optimization assistance.
-
How do I enable logging?
Add logging properties directly to your connection string, for example: Logfile=/path/log.txt;Verbosity=5;
Verbosity controls the detail level. Send this log file to [email protected] when requesting help. -
What ports must be open?
Most cloud services require outbound HTTPS on port 443. For source-specific requirements, contact [email protected]. -
Why do I see "Module not found" when importing?
Ensure the connector is installed in the same Python environment where the script is executed. Use pip list or pip show to confirm installation.
General
-
Where can I find supported SQL syntax?
See the SQL Compliance section of the Connector documentation. -
How often is the connector updated?
CData releases major updates annually and provides periodic patches. Check your account portal or contact Support for the latest version. -
Where can I find more code examples?
The online documentation includes examples for connecting, querying, filtering, paging, and working with metadata views.
If your question is not covered in this FAQ, contact [email protected].