Data Engineering Fundamentals
Data engineering builds and maintains the infrastructure that collects, stores, transforms, and delivers data to analysts and applications. It covers pipelines, warehouses, lakes, orchestration, and the reliability practices that ensure data arrives complete, timely, and trustworthy.
itData engineering and analytics | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Data Engineering Fundamentals
Data engineering is the work of getting data from the systems that produce it to the people and systems that need it, without turning the journey into a rumor. The job is not to accumulate tables until someone declares victory. It is to deliver data with meaning, timing, and enough evidence that a consumer can use it without consulting a séance.
The useful picture is a path: source, ingest, store, transform, validate, serve, consumer. Each stop has a different job. A source produces records. Ingestion gets them into the path. Transformation changes them into a useful shape. Validation asks whether that shape is acceptable. Serving is where a dashboard, application, or analysis finally meets the result. The arrows matter as much as the boxes, which is inconvenient for anyone who hoped a warehouse was a decorative cupboard.
Data product contract is the grown-up name for saying what the result is for before choosing a tool. State the grain, which says what one row or event represents. State the schema and semantics, which say what the fields are and what they mean. Then state freshness, correctness, availability, ownership, and access. A pipeline that runs beautifully but delivers yesterday's answer to today's question has achieved a kind of efficiency that nobody needed.
The surprise is that a green task is not proof of correct data. A source can arrive half-empty. A repeated task can duplicate a key. A schema can change while the pipeline keeps moving with the serene confidence of machinery that has not been informed. This is why data engineering needs tests, measurable quality signals, run metadata, and lineage: the recorded path from datasets through jobs and runs to the output. They make a failure explainable instead of merely memorable.
Batch processing handles a bounded input and can finish. Stream processing handles records as they arrive. Neither is a personality type. Pick the one that fits the consumer deadline and input behavior, then keep enough history to correct and replay work when reality sends a late record through the door.
Read the intro when you need the whole architecture and its tradeoffs. Use the slides for the relationships among pipeline roles. Keep the cheatsheet nearby when reviewing a contract, quality signal, or failure path. Field Notes covers the costs that appear once the pleasant diagram meets a real schedule. The exercise turns the path into one bounded orders pipeline, where the arithmetic is mercifully small and the design questions are not.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.nist.gov/publications/nist-big-data-interoperability-framework-volume-6-big-data-reference-architecture
Supports
- A data architecture connects data providers, application activities, framework providers, consumers, and orchestration
- A data life cycle includes collection, transformation, use, and archiving
- Management, security, and privacy span the architecture
- Data engineering builds scalable data systems for storage, manipulation, and analysis
- https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/big-data
Supports
- Data architectures connect sources, storage, batch or real-time processing, analytical stores, and consumers
- Orchestration coordinates repeated data movement and processing workflows
- Storage and serving choices depend on workload and analysis requirements
- Security, partitioning, parallelism, sensitive-data handling, and cost are architecture concerns
- Batch and real-time processing can coexist in one architecture
- https://learn.microsoft.com/en-us/azure/architecture/data-guide/relational-data/etl
Supports
- ETL consolidates source data and transforms it before loading the target
- ELT performs transformation in the target data store after loading
- Transformations include filtering, sorting, aggregation, joining, cleaning, deduplication, and validation
- ETL or ELT selection depends on target capability and workload requirements
- https://beam.apache.org/documentation/basics/
Supports
- A pipeline is a graph of data processing transformations
- Bounded data has a known fixed size and supports batch processing
- Unbounded data grows over time and requires streaming processing
- Batch and streaming concepts can coexist in a unified processing model
- Schemas define named fields and types for data collections
- https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/dags.html
Supports
- An orchestrated Dag contains tasks, dependencies, schedules, and operational controls
- Orchestration controls task order, retry, timeout, and execution state
- A Dag run is a distinct execution of a workflow
- https://docs.cloud.google.com/dataflow/docs/guides/plan-pipelines
Supports
- Pipeline planning begins with business, performance, reliability, source, sink, regional, and security requirements
- Freshness and correctness can be expressed as measurable service objectives and indicators
- Correctness is evaluated with unit, integration, end-to-end, and production monitoring evidence
- Pipeline performance and reliability affect the broader systems that consume pipeline output
- https://openlineage.io/docs/
Supports
- Data lineage collection records metadata for jobs in execution
- A lineage model relates dataset, job, and run entities
- Lineage metadata supports collection and analysis across systems
- Extensible facets enrich core lineage entities with additional metadata
- https://research.google/pubs/the-google-file-system/
Supports
- The 2003 Google File System paper described a distributed file system for large data-intensive applications
- https://research.google/pubs/mapreduce-simplified-data-processing-on-large-clusters/
Supports
- The 2004 MapReduce paper described a programming model and implementation for processing large datasets on clusters
- https://research.google/pubs/bigtable-a-distributed-storage-system-for-structured-data/
Supports
- The 2006 Bigtable paper described a distributed storage system for structured data
- https://hadoop.apache.org/bylaws.html
Supports
- Hadoop became an Apache top-level project in January 2008
- https://spark.apache.org/history.html
Supports
- Spark began as a UC Berkeley AMPLab research project in 2009
- Spark was open sourced in early 2010 and moved to Apache in 2013
- https://training.apache.org/presentations/apache/spark/basics/index.html
Supports
- Apache training material records Spark 1.0 in May 2014
- https://beam.apache.org/about/
Supports
- Apache Beam entered incubation in early 2016 from the Google Cloud Dataflow SDKs and runners
- Apache Beam defines a unified programming model for batch and streaming pipelines
- https://beam.apache.org/blog/beam-first-stable-release/
Supports
- Apache Beam graduated as an Apache top-level project in December 2016
- Apache Beam version 2.0.0 was the first stable release in May 2017
- https://medium.com/airbnb-engineering/scaling-a-mature-data-pipeline-managing-overhead-f34835cbc866
Supports
- Airbnb documented scheduler, setup, resource-allocation, and startup overhead in a mature data pipeline
- Airbnb found integration-pipeline elapsed time could be dominated by overhead rather than ETL computation
- https://medium.com/airbnb-engineering/data-quality-score-the-next-chapter-of-data-quality-at-airbnb-851dccda19c3
Supports
- Airbnb documented the limits of scaling strict data certification across its warehouse
- Airbnb described multidimensional quality signals for producers and consumers
