Skip to main content

Connector

TDengine provides a rich set of APIs (application development interface). To facilitate users to develop their applications quickly, TDengine supports connectors for multiple programming languages, including official connectors for C/C++, Java, Python, Go, Node.js, C#, and Rust. These connectors support connecting to TDengine clusters using both native interfaces (taosc) and REST interfaces (not supported in a few languages yet). Community developers have also contributed several unofficial connectors, such as the ADO.NET connector, the Lua connector, and the PHP connector.

TDengine Database image-connector

Supported platforms

Currently, TDengine's native interface connectors can support platforms such as X64/X86/ARM64/ARM32/MIPS/Alpha hardware platforms and Linux/Win64/Win32 development environments. The comparison matrix is as follows.

CPUOSJDBCPythonGoNode.jsC#RustC/C++
X86 64bitLinux
X86 64bitWin64
X86 64bitWin32
X86 32bitWin32
ARM64Linux
ARM32Linux
MIPSLinux

Where ● means the official test verification passed, ○ means the unofficial test verification passed, -- means no assurance.

Using REST connection can support a broader range of operating systems as it does not rely on client drivers.

Version support

TDengine version updates often add new features, and the connector versions in the list are the best-fit versions of the connector.

TDengine VersionsJavaPythonGoC#Node.jsRust
2.4.0.14 and up2.0.38current versiondevelop branch1.0.2 - 1.0.62.0.10 - 2.0.12current version
2.4.0.6 and up2.0.37current versiondevelop branch1.0.2 - 1.0.62.0.10 - 2.0.12current version
2.4.0.4 - 2.4.0.52.0.37current versiondevelop branch1.0.2 - 1.0.62.0.10 - 2.0.12current version
**2.2.x.x **2.0.36current versionmaster branchn/a2.0.7 - 2.0.9current version
**2.0.x.x **2.0.34current versionmaster branchn/a2.0.1 - 2.0.6current version

Functional Features

Comparing the connector support for TDengine functional features as follows.

Using the native interface (taosc)

Functional FeaturesJavaPythonGoC#Node.jsRust
Connection ManagementSupportSupportSupportSupportSupportSupport
Regular QuerySupportSupportSupportSupportSupportSupport
Continuous QuerySupportSupportSupportSupportSupportSupport
Parameter BindingSupportSupportSupportSupportSupportSupport
SubscriptionSupportSupportSupportSupportSupportNot Supported
SchemalessSupportSupportSupportSupportSupportSupport
DataFrameNot SupportedSupportNot SupportedNot SupportedNot SupportedNot Supported
info

The different database framework specifications for various programming languages do not mean that all C/C++ interfaces need a wrapper.

Using the REST interface

Functional FeaturesJavaPythonGoC# (not supported yet)Node.jsRust
Connection ManagementSupportSupportSupportN/ASupportSupport
Regular QuerySupportSupportSupportN/ASupportSupport
**Continous Query **SupportSupportSupportN/ASupportSupport
Parameter BindingNot SupportedNot SupportedNot SupportedN/ANot SupportedNot Supported
SubscriptionNot SupportedNot SupportedNot SupportedN/ANot SupportedNot Supported
SchemalessNot supportedNot SupportedNot SupportedN/ANot SupportedNot supported
**Bulk Pulling (based on WebSocket) **SupportNot SupportedNot SupportedN/ANot SupportedNot Supported
DataFrameNot supportedSupportNot supportedN/ANot supportedNot supported
warning
  • Regardless of the programming language chosen for the connector, TDengine versions 2.0 and above recommend that each thread of a database application create a separate connection. Or create a connection pool based on threads to avoid interference between threads with the "USE statement" state within a connection (but the connection's query and write operations are thread-safe).

Install Client Driver

info

The client driver needs to be installed if you use the native interface connector on a system that does not have the TDengine server software installed.

Installation steps

  1. Download the TDengine client installation package

    All Packages

    1. Unzip

      Download the package to any directory the current user has read/write permission. Then execute tar -xzvf TDengine-client-VERSION.tar.gz command. The VERSION should be the version of the package you just downloaded.

    2. Execute the install script

      Once the package is unzipped, you will see the following files in the directory:

      • _ install_client.sh_: install script
      • _ taos.tar.gz_: client driver package
      • _ driver_: TDengine client driver
      • examples: some example programs of different programming languages (C/C#/go/JDBC/MATLAB/python/R)

      You can run install_client.sh to install it.

    3. Edit taos.cfg

      Edit taos.cfg file (full path is /etc/taos/taos.cfg by default), modify firstEP with actual TDengine server's End Point, for example h1.tdengine.com:6030

    tip
    1. If the computer does not run the TDengine service but installs the TDengine client driver, then you need to config firstEP in taos.cfg only, and there is no need to configure FQDN;

    2. If you encounter the "Unable to resolve FQDN" error, please make sure the FQDN in the /etc/hosts file of the current computer is correctly configured, or the DNS service is correctly configured.

    Installation Verification

    After completing the above installation and configuration and you have confirmed that the TDengine service is up and running, you can execute the TDengine CLI tool to log in.

    Execute TDengine CLI program taos directly from the Linux shell to connect to the TDengine service and enter the TDengine CLI interface, as shown in the following example.

    $ taos
    Welcome to the TDengine shell from Linux, Client Version:2.0.5.0
    Copyright (c) 2017 by TAOS Data, Inc. All rights reserved.
    taos> show databases;
    name | created_time | ntables | vgroups | replica | quorum | days | keep1,keep2,keep(D) | cache(MB)| blocks | minrows | maxrows | wallevel | fsync | comp | precision | status |
    =========================================================================================================================================================================================================================
    test | 2020-10-14 10:35:48.617 | 10 | 1 | 1 | 1 | 2 | 3650,3650,3650 | 16| 6 | 100 | 4096 | 1 | 3000 | 2 | ms | ready |
    log | 2020-10-12 09:08:21.651 | 4 | 1 | 1 | 1 | 10 | 30,30,30 | 1| 3 | 100 | 4096 | 1 | 3000 | 2 | us | ready |
    Query OK, 2 row(s) in set (0.001198s)
    taos>