Confluent Platform 7.0 と Cluster Linking でクラウドへのリアルタイムブリッジを構築 | ブログを読む

What is ETL? Guide to ETL and Real-Time Data Pipelines

What is ETL, and how does it compare to modern, streaming data integration tools? As real-time data pipelines become a necessary standard, we’ll cover how ETL, ELT, and real-time streaming ETL work, major differences, and which to choose based on your data architecture and business requirements.

Overview of ETL (Extract, Transform, Load)

What is ETL?

ETL stands for Extract, Transform and Load, and is a three-step process used to consolidate data from multiple sources. At its core, ETL is a standard process where data is collected from various sources (extracted), converted into a desired format (transformed), then stored into its new destination (loaded).

ETL is not new. In fact, it’s evolved quite a bit from the 1970s and 1980s, where the process was sequential, data was more static, systems were monolithic, and reporting was needed on a weekly or monthly basis.

Extract

Raw data is read and collected from disparate sources like message queues, databases, flat files, spreadsheets, data streams, and event streams. The data is also in varying formats such as JSON or CSV.

Transform

Business rules are applied in this stage to clean the data, perform operations on the data to aggregate, and format the data so that it can be analyzed and reported on.

Load

The transformed data is loaded into a data store, whether it’s a data warehouse or non-relational database.

The 3-Step ETL Process Explained:

Step 1: Extract

In this step, the focus is first to understand what form and what format the data is in and the systems that generate the data. Then decisions need to be made to figure out how and how often to connect to access each data source. It could either through a recurring nightly batch processes, triggered on occurrence of specific events or actions or in real-time.

Challenges extracting data:

  • Permissions: Do your networks and systems have access and rights to the data? Data integrity and accuracy: Are you capturing real-time data, or stale data that's no longer of value? Do you have validation in place to notice if the data that is extracted is in an expected form?
  • Data loss: What is the ephemeral nature of the data? Are you able to capture it before the data passes its lifetime?
  • Availability and scale: Is there enough storage and compute in your staging area to keep up with the data? What is important data and what isn’t?

Step 2: Transform Data

In this second step, raw data is cleaned, formats are changed, and data is aggregated so it's in the proper form to be stored into a data warehouse or other sources, so it can be used by reporting tools or other parts of the business.

Data transformation activities:
  • Deriving calculated values based on the raw data
  • Re-ordering or transposing the data
  • Adding meta data or associating key value pairs to the data
  • Removing repetitive data or adding counts of occurrences of data
  • Encoding or decoding the data
  • Validating the data
  • Performing search and replace functions on the data
  • Changing the field type of the data, for example from text to values or IDs
Challenges transforming data:

Challenges in this step are directly tied to computing power and resources available. The more data that needs to be transformed, the more computationally and storage intensive it can become.

Step 3: Load Data into Storage

In this step, the transformed data is stored in a place that applications and reporting tools can access. This could be as simple as an unstructured text file to more complex data warehouses. The process varies widely depending on the nature of the business requirements and the applications and users the data serves

Things to consider after loading data:
  • Once reporting is performed, what happens after?
  • Are there steps to archive it, remove it, or are there existing queries and caches available?
  • Can other users access the data?
  • How quickly can the data be analyzed?

ETL vs ELT vs Streaming ETL

ETL was created during a period of monolithic architectures, data warehouses, and relational databases. Batch processing was enough to satisfy data management requirements.

Today, organizes generate data as continuous, real-time streams that are ephemeral in nature, unstructured, and in larger volumes. The exponentially large volumes of data breaks ETL pipelines at the seams. The more time and resources it takes to transform that data, the more the source data queues back up, and data becomes stale.

Disadvantages of ETL Tools

Where real-time data processing, ingestion, or integration is required, ETL tools will be extremely limited.

All the requirements of the transformation phase of ETL like data cleansing, enrichment and processing need to be done more frequently as the number of data sources and volume skyrocket.

There is also opportunity to handle important data that could generate better business insights that can be fed into machine learning and AI algorithms is made possible with the conversion of batch-processed ETL to streaming STL.

With the rise towards cloud-native applications, Kubernetes, and microservices, the industry is shifting towards streaming ETL with real-time stream processing using Kafka. Learn more about the how ETL is evolving.

ETL vs ETL

An alternate process called ELT (Extract, Load, Transform) such that the source data is directly loaded into a database and then workers will transform the data when it can.

This became popular because of cloud infrastructure and the rise of cloud data warehouses where the cloud’s processing power and scale could be used to transform the data.

Modern data management continues to be challenging with the increasing volume and variety of data, the complexity of the data pipeline and the emergence of data streams and event streams.

ETL has evolved in many ways, where Extract, Transform and Load are concurrent processes operating on real-time data pipelines.

Streaming ETL - Leveraging Real-Time Data

What if data could be automatically extracted and transformed, then loaded to any destination the millisecond its created?

Confluent enables simple, modern streaming data pipelines and integration — the E and L in ETL — through pre-built data connectors. The Kafka Connect API leverages Kafka for scalability, builds upon Kafka with enterprise scalability, security, and multi-cloud flexibility, and provides a uniform method to monitor all of the connectors.

Choosing Your Data Integration Method

If you have primarily legacy infrastructure and a monolithic setup and batch processing is adequate for your business needs, keep it simple and stick with your ETL set up.

If you find that your transformation process can’t keep up with all the source data coming in, consider using ELT.

If you’re dealing with a massive amount of real-time data streams, have distributed systems, or need to leverage stream processing or analaytics, you could benefit from real-time data pipelines that unlock new use cases that transform your business.

How Confluent Can Help

By integrating historical and real-time data into a central source of truth, Confluent makes it easy to build an entirely new category of modern, event-driven applications. Leverage 100+ pre-built data connectors, gain a universal data pipeline, and future-proof your architecture to unlock powerful new use cases on enterprise scale with zero ops burden.

Learn more about how Confluent can help transform your business in minutes.

Related Resources