Skip to main content

What is the best technology to process big data?

Summary

  • No single technology is best for every big data workload. Apache Spark covers large-scale batch transformation, Structured Streaming covers continuous data, and a SQL warehouse covers analytics, so the workload decides.
  • A data lakehouse lets those workloads share one copy of the data. Delta Lake, the default table format on Databricks, supports both batch and streaming operations on the same table.
  • Databricks is built on Apache Spark and adds Lakeflow Pipelines for declarative ETL, Lakeflow Jobs for orchestration, Databricks SQL for analytics, and Unity Catalog for governance and lineage.
  • Databricks recommends organizing lakehouse data in bronze, silver and gold layers (the medallion architecture), as a best practice rather than a requirement.

What is the best technology to process big data?

No single technology is best for every big data workload, so match the engine to the job. Apache Spark, a multi-language engine for data engineering, data science and machine learning, handles large-scale batch transformation. Structured Streaming handles continuous data. A SQL warehouse serves analytics and dashboards. A data lakehouse is a data management system that combines the benefits of data lakes and data warehouses, so all three workloads can share the same data instead of living in isolated systems.

Which technology fits which big data workload?

Workload Technology on Databricks What the documentation says
Large-scale batch ETL Apache Spark, Lakeflow Pipelines Pipelines are a declarative framework for batch and streaming data pipelines in SQL and Python
Continuous data Structured Streaming A near real-time processing engine with exactly-once processing guarantees
Sub-second operational events Real-time mode A Structured Streaming trigger type for ultra-low latency, such as fraud detection
SQL analytics and BI Databricks SQL, AI/BI dashboards A cloud data warehouse built on lakehouse architecture
Table storage Delta Lake Open source storage layer with ACID transactions, and the default format on Databricks
Governance Unity Catalog Access control, lineage and auditing for data and AI

How does a lakehouse process big data?

On Databricks the lakehouse rests on three pieces. Apache Spark is the processing engine, and it runs on compute resources decoupled from storage. Delta Lake is the storage layer: it extends Parquet data files with a transaction log for ACID transactions, and it was developed for tight integration with Structured Streaming, so one copy of a table can serve batch and streaming operations. Unity Catalog is the governance layer: it enforces access control, tracks lineage as data is used, and logs activity for auditing.
Tables you create on Databricks are Delta tables unless you specify otherwise.

How does Databricks handle batch, streaming and SQL?

Batch. Write transformations with Spark DataFrames or SQL, or define them declaratively in Lakeflow Pipelines. A pipeline analyzes the dependencies between the datasets you define, runs the steps in the correct order with maximum parallelism, and retries transient failures progressively, from the Spark task to the flow to the whole pipeline. Lakeflow Jobs schedules and orchestrates the work, with triggers such as a time-based schedule, a table update, or the arrival of new files.
Streaming. Structured Streaming lets you express a streaming computation the same way you express a batch computation on static data. Auto Loader incrementally processes new files as they arrive in cloud storage, and Delta tables work as both streaming sources and sinks. For operational workloads that need sub-second latency, real-time mode is a trigger type for Structured Streaming.
SQL. Databricks SQL runs on SQL warehouses, where Photon is the default engine. AI/BI dashboards visualize data from the same tables.

How should I organize the data?

Databricks recommends a medallion architecture. Bronze tables hold raw ingested data, silver tables hold cleaned and validated data, and gold tables hold dimensional models and aggregations for business users. Databricks calls this a recommended best practice but not a requirement.

FAQs

Do I need both batch and streaming?

It depends on how fresh the results must be. A Lakeflow pipeline in triggered mode refreshes the available data and stops, which the documentation describes as best for updates every 10 minutes, hourly, or daily. Continuous mode keeps tables fresh as data arrives, and fits updates wanted between every 10 seconds and a few minutes. Because Delta Lake serves both, you can mix the two on the same tables.

Can Spark do real-time processing?

Structured Streaming runs micro-batches by default. For workloads that need sub-second latency, such as fraud detection, use real-time mode. It requires dedicated compute, so keep micro-batch mode for ETL where seconds or minutes of latency are acceptable.

What does a lakehouse offer over separate systems?

Databricks describes a lakehouse as a way to avoid isolated systems for different workloads such as machine learning and business intelligence, and says it can help establish a single source of truth. It also gives open, direct access to data stored in standard formats.

Where does the data live?

In cloud object storage. Lakeflow Pipelines can ingest from cloud storage such as Amazon S3, Azure Data Lake Storage Gen2 and Google Cloud Storage, and from message buses such as Apache Kafka.

How do I govern all of it?

Unity Catalog enforces access control, captures lineage down to the column level for queries run on Databricks, and keeps an audit record of data access and system activity.

The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.