

Building your pipeline or Using Airbyte
Airbyte is the only open source solution empowering data teams to meet all their growing custom business demands in the new AI era.
- Inconsistent and inaccurate data
- Laborious and expensive
- Brittle and inflexible
- Reliable and accurate
- Extensible and scalable for all your needs
- Deployed and governed your way
Start syncing with Airbyte in 3 easy steps within 10 minutes



Take a virtual tour
Demo video of Airbyte Cloud
Demo video of AI Connector Builder
What sets Airbyte Apart
Modern GenAI Workflows
Move Large Volumes, Fast
An Extensible Open-Source Standard
Full Control & Security
Fully Featured & Integrated
Enterprise Support with SLAs
What our users say


"The intake layer of Datadog’s self-serve analytics platform is largely built on Airbyte.Airbyte’s ease of use and extensibility allowed any team in the company to push their data into the platform - without assistance from the data team!"


“Airbyte helped us accelerate our progress by years, compared to our competitors. We don’t need to worry about connectors and focus on creating value for our users instead of building infrastructure. That’s priceless. The time and energy saved allows us to disrupt and grow faster.”


“We chose Airbyte for its ease of use, its pricing scalability and its absence of vendor lock-in. Having a lean team makes them our top criteria. The value of being able to scale and execute at a high level by maximizing resources is immense”
- Install Hadoop: Iceberg relies on Hadoop for file system support. Install Hadoop if it’s not already set up.
- Install Spark: Apache Spark is one of the compute engines that can be used with Iceberg. Install Spark to use it for writing data to Iceberg tables.
- Add Iceberg Libraries: Add the Iceberg library to your Spark installation. You can do this by including the Iceberg Spark runtime JAR in your Spark’s
jars
folder or by using the--packages
option when submitting a Spark job.
- Select Data: Determine which tables or data you want to transfer from ClickHouse to Iceberg.
- Export Data: Use ClickHouse’s
clickhouse-client
orclickhouse-local
to export the data. You can export data to a CSV or TSV file, which are commonly supported data formats.
clickhouse-client --query="SELECT * FROM database.table FORMAT CSV" > /path/to/exported_data.csv
If required, convert your data to a format that is more suitable for bulk loading into Iceberg, such as Parquet or ORC. You can use tools like pandas
in Python or Spark to do the conversion.
- Read CSV/TSV: Read the exported data using the appropriate tool.
- Convert to Parquet/ORC: Convert the data to Parquet or ORC for better performance in Iceberg.
With pandas
:
import pandas as pd
# Read the data into a pandas DataFrame
df = pd.read_csv('/path/to/exported_data.csv')
# Convert to Parquet
df.to_parquet('/path/to/data.parquet')
With Spark:
val spark = SparkSession.builder()
.appName("ClickHouse to Iceberg")
.getOrCreate()
val df = spark.read.csv("/path/to/exported_data.csv")
df.write.parquet("/path/to/data.parquet")
- Create Iceberg Table: Define the schema and create an Iceberg table. You can do this using Spark SQL or directly in your Spark application.
spark.sql("CREATE TABLE local.db.table (id int, data string) USING iceberg")
- Load Data: Load the converted data into the Iceberg table.
val dataDF = spark.read.parquet("/path/to/data.parquet")
dataDF.writeTo("local.db.table").append()
- Check Data: Once the data is loaded, run some queries to ensure that the data has been transferred correctly.
spark.sql("SELECT * FROM local.db.table LIMIT 10").show()
- Validate Counts: Compare record counts between the source ClickHouse table and the Iceberg table to ensure completeness.
val icebergCount = spark.sql("SELECT COUNT(*) FROM local.db.table").first().getLong(0)
println(s"Iceberg Table Record Count: $icebergCount")
After verifying the data, clean up any temporary files or resources used during the process.
- Remove Temporary Files: Delete any exported CSV/TSV or intermediate Parquet/ORC files if they are no longer needed.
- Close Sessions: Close any open Spark sessions to release resources.
- Monitor Performance: Monitor the performance of the new Iceberg tables and adjust configurations as needed for optimal performance.
Additional Considerations
- Schema Evolution: If your ClickHouse schema changes, you’ll need to update the Iceberg schema accordingly.
- Incremental Loads: For ongoing data transfers, consider implementing a mechanism for incremental loads rather than full data dumps.
- Backup: Always back up your ClickHouse data before starting the migration process to prevent data loss.
- Concurrency: Be aware of concurrency issues if multiple processes might be writing to the Iceberg table at the same time.
FAQs
What is ETL?
ETL, an acronym for Extract, Transform, Load, is a vital data integration process. It involves extracting data from diverse sources, transforming it into a usable format, and loading it into a database, data warehouse or data lake. This process enables meaningful data analysis, enhancing business intelligence.
An open-source database management system for online analytical processing (OLAP), ClickHouse takes the innovative approach of using a column-based database. It is easy to use right out of the box and is touted as being hardware efficient, extremely reliable, linearly scalable, and “blazing fast”—between 100-1,000x faster than traditional databases that write rows of data to the disk—allowing analytical data reports to be generated in real-time.
What is ELT?
ELT, standing for Extract, Load, Transform, is a modern take on the traditional ETL data integration process. In ELT, data is first extracted from various sources, loaded directly into a data warehouse, and then transformed. This approach enhances data processing speed, analytical flexibility and autonomy.
Difference between ETL and ELT?
ETL and ELT are critical data integration strategies with key differences. ETL (Extract, Transform, Load) transforms data before loading, ideal for structured data. In contrast, ELT (Extract, Load, Transform) loads data before transformation, perfect for processing large, diverse data sets in modern data warehouses. ELT is becoming the new standard as it offers a lot more flexibility and autonomy to data analysts.
What should you do next?
Hope you enjoyed the reading. Here are the 3 ways we can help you in your data journey:
An open-source database management system for online analytical processing (OLAP), ClickHouse takes the innovative approach of using a column-based database. It is easy to use right out of the box and is touted as being hardware efficient, extremely reliable, linearly scalable, and “blazing fast”—between 100-1,000x faster than traditional databases that write rows of data to the disk—allowing analytical data reports to be generated in real-time.
For huge analytical tables, Apache Iceberg is a high-performance format. Using Apache Iceberg, engines such as Spark, Trino, Flink, Presto, Hive and Impala can safely work with the same tables, at the same time, providing the reliability and simplicity of SQL tables to big data. With Apache Iceberg, you can merge new data, update existing rows, and delete specific rows. Data files can be eagerly rewritten or deleted deltas can be used to make updates faster.

1. First, navigate to the Airbyte dashboard and click on the "Destinations" tab on the left-hand side of the screen.
2. Next, click on the "Add Destination" button in the top right corner of the screen.
3. Select "ClickHouse" from the list of available destinations.
4. Enter the necessary information for your ClickHouse database, including the host, port, username, and password.
5. Choose the database and table you want to connect to from the dropdown menus.
6. Configure any additional settings, such as the batch size or maximum number of retries.
7. Test the connection to ensure that everything is working properly.
8. Once you have successfully connected to your ClickHouse database, you can begin syncing data from your source connectors to your ClickHouse destination.

1. Open the Airbyte platform and navigate to the "Destinations" tab on the left-hand side of the screen.
2. Click on the "Apache Iceberg" destination connector and select "Create new connection."
3. Enter a name for your connection and provide the necessary credentials for your Apache Iceberg database, including the host, port, database name, username, and password.
4. Test the connection to ensure that it is successful. 5. Select the tables or data sources that you want to replicate to your Apache Iceberg database.
6. Configure any additional settings or options for your connection, such as the frequency of data replication or any transformations that you want to apply to your data.
7. Save your connection and start the replication process.
8. Monitor the progress of your data replication and troubleshoot any issues that may arise.
9. Once the replication process is complete, verify that your data has been successfully replicated to your Apache Iceberg database.
10. Use your Apache Iceberg database to analyze and query your data as needed.

With Airbyte, creating data pipelines take minutes, and the data integration possibilities are endless. Airbyte supports the largest catalog of API tools, databases, and files, among other sources. Airbyte's connectors are open-source, so you can add any custom objects to the connector, or even build a new connector from scratch without any local dev environment or any data engineer within 10 minutes with the no-code connector builder.
We look forward to seeing you make use of it! We invite you to join the conversation on our community Slack Channel, or sign up for our newsletter. You should also check out other Airbyte tutorials, and Airbyte’s content hub!
What should you do next?
Hope you enjoyed the reading. Here are the 3 ways we can help you in your data journey:
What should you do next?
Hope you enjoyed the reading. Here are the 3 ways we can help you in your data journey: