A bidirectional data ingestion tool that facilitates data transfer between ClickHouse databases and Flat Files. This web-based application provides a simple user interface for configuring connections, selecting columns, and executing data transfers.
- Bidirectional data flow (ClickHouse to Flat File and Flat File to ClickHouse)
- JWT token-based authentication for ClickHouse
- Column selection for targeted data ingestion
- Data preview before ingestion
- Multi-table JOIN support (bonus feature)
- Progress tracking and completion reporting
- Java 8 or higher
- Maven 3.6 or higher
- ClickHouse database (local or remote)
git clone <repository-url>
cd Integration
mvn clean package
java -jar target/integration-0.0.1-SNAPSHOT.jar
Alternatively, you can run it directly with Maven:
mvn spring-boot:run
Open your web browser and navigate to:
http://localhost:8080
Add images for successful build and data ingestion here.
- Select "ClickHouse" as Source and "Flat File" as Target
- Configure ClickHouse connection details (Host, Port, Database, User, JWT Token)
- Test the connection and load tables
- Select a table and load its columns
- Configure the target Flat File (path, delimiter, etc.)
- Select columns for ingestion
- Preview the data (optional)
- Start the ingestion process
- Select "Flat File" as Source and "ClickHouse" as Target
- Configure Flat File details (path, delimiter, header info)
- Load columns from the file
- Configure ClickHouse connection details
- Specify the target table name
- Select columns for ingestion
- Preview the data (optional)
- Start the ingestion process
- Follow steps 1-3 of ClickHouse to Flat File
- Enable "Multi-Table Join" checkbox
- Select additional tables for the JOIN
- Specify the JOIN condition (e.g., "table1.id = table2.id")
- Continue with steps 5-8 of ClickHouse to Flat File
The application can be tested with ClickHouse example datasets:
- uk_price_paid
- ontime
These datasets can be loaded into your ClickHouse instance following the instructions at: https://clickhouse.com/docs/getting-started/example-datasets
The application's server port and other settings can be configured in src/main/resources/application.properties
.
- Spring Boot 2.7
- ClickHouse JDBC Driver
- Apache Commons CSV
- Thymeleaf
- Bootstrap 5
- jQuery