TapData Connectors is an open-source project for developing and building custom data connectors, designed for the TapData data synchronization platform. Through this project, developers can easily build custom data connectors and register them with the TapData platform, enabling rapid integration of various heterogeneous data sources.
- Rich Connector Ecosystem: Supports mainstream databases, cloud services, SaaS applications, and more
- Rapid Development: Based on the PDK framework, new connectors can be developed in just a few hours
- Enterprise Features: Supports incremental synchronization, resume from breakpoint, and more
- Cross-Platform Support: Compatible with Windows, Linux, macOS, and other mainstream operating systems
- High Performance: Optimized data transmission engine supporting real-time synchronization of large data volumes
# 1οΈβ£ Clone the project
git clone https://github.com/tapdata/tapdata-connectors.git && cd tapdata-connectors
# 2οΈβ£ Build MySQL connector (example)
mvn clean install -pl connectors/mysql-connector -am -DskipTests
# 3οΈβ£ Register with TapData platform
java -jar pdk-deploy.jar register \
-a YOUR_ACCESS_CODE \
-t http://localhost:3030 \
connectors/mysql-connector/target/mysql-connector-*.jarβ Done! Now you can use this connector in the TapData platform.
tapdata-connectors/
βββ connectors # Various Java connectors
βββ connectors-common # Common dependencies and Debezium aggregation modules
βββ connectors-javascript # JavaScript connectors and core
βββ connectors-unpackage # Unpackaged special connectors
βββ connectors-tdd # Development/test-driven demonstrations
βββ file-storages # File storage connectors
βββ tapdata-cli # CLI tools- JDK: 17 or higher
- Maven: 3.6+
- Operating System: Windows / Linux / macOS
# Ubuntu/Debian
sudo apt-get install openjdk-17-jdk maven
# CentOS/RHEL
sudo yum install java-17-openjdk-devel maven# Auto-detect and set JDK 17
export JAVA_HOME=$(/usr/libexec/java_home -v17 2>/dev/null || echo "/usr/lib/jvm/java-17-openjdk")
export PATH=$JAVA_HOME/bin:$PATH
java -version- Download and install JDK 17
- Download and extract Maven
- Configure environment variables
JAVA_HOMEandMAVEN_HOME
mvn clean install -DskipTests \
-pl 'module-name'
-amOptional Parameters:
-DskipTests: Skip tests, recommended during compilation to improve build speed-pl: Build only selected modules; to exclude certain modules, use exclusion syntax in-pl, e.g.,!module-name1,!module-name2-am: Automatically build dependencies of selected modules
After compilation, you can find the compiled connector JAR files in the corresponding module's target/*.jar. Then follow the instructions below to register them with the TapData platform.
java -jar pdk-deploy.jar register -a ${access_code} -t ${tm_url} \
[-ak ${accessKey} [-sk ${secretKey}]] [-r ${oem_type}] [-f ${filter_type}] [-l] [-h] [-X] \
/path/to/your-connector.jarParameter Description:
-a(--auth): Theaccess_codein TapData. Log in to the TapData management platform, click your username in the upper right corner, select Personal Settings to view it-t(--tm): TapData management platform login address, e.g.,http://localhost:3030-f(--filter): Register only connectors of specified authentication types, multiple values separated by commas-l(--latest): Replace with the latest version-h(--help): View command help information
The pdk-deploy.jar tool can be found in your TapData deployment environment's tapdata/apps/lib directory.
Execution example:
java -jar pdk-deploy.jar register \
-a 3324***********8d4562f \
-t http://127.0.0.1:3030 \
connectors/starrocks-connector/target/starrocks-connector-1.0-SNAPSHOT.jarWhen the connector is successfully registered, it will prompt "Completed". Then you can log in to the TapData management page and use this connector when creating connections.
Q: Getting protoc compilation errors when building on macOS?
A: For Apple Silicon (macOS ARM), it's recommended to exclude debezium-connector-postgres and debezium-connector-highgo to avoid local binary compatibility issues (see module list in connectors-common/debezium-bucket/pom.xml:71-81).
Build command example:
mvn clean install -DskipTests \
-pl '!connectors-common/debezium-bucket/debezium-connector-postgres,!connectors-common/debezium-bucket/debezium-connector-highgo'
-amWe warmly welcome more contributors to help improve and expand connectors! Every contribution matters, no matter how big or small!
| Contribution Type | Description | Difficulty |
|---|---|---|
| Report Bugs | Found a bug? Feel free to submit an Issue | β |
| Improve Documentation | Fix typos, add examples, optimize descriptions | β |
| New Features | Develop new connectors or enhance existing functionality | βββ |
| Code Optimization | Performance optimization, code refactoring | ββ |
| Test Cases | Add test cases to improve code quality | ββ |
- Title: Clear and concise, e.g.,
Add MongoDB connector support - Description: Explain the background, scope of changes, and test results
- Checklist:
- Code passes local testing
- Documentation has been updated
- Follows code standards
Encountered issues? Want to connect? We provide multiple support channels!
|
|
|
|
Thank you to all developers, users, and supporters who have contributed to TapData Connectors. It's with your support that this project continues to grow and thrive.
If this project has been helpful to you, please give us a Star!
Contributors