Data Engineering for Beginners: A Step-by-Step Guide
Tags: dataengineering, datascience, data, datastructures
Published: 2023-11-06 10:00:21

Data engineering has become critical to the data ecosystem due to the influx of massive amounts of data from a variety of sources. Organizations are also looking to establish and expand their data engineering teams. 
Some data professions, such as analyst, do not require prior expertise in the industry if you have excellent SQL and programming skills. However, prior knowledge in data analytics or software engineering is often beneficial for breaking into data engineering.

## What is Data engineering?
Data engineering is a subfield of data science concerned with the practical applications of data analysis and acquisition. Like other areas of engineering, it is concerned with the application of data science in the actual world. 
Data engineering has nothing to do with experimental design. It is more concerned with establishing systems for improved information flow and access. 

## What Does a Data Engineer Do?

A data engineer is responsible for creating and maintaining data architectures (such as a database). They are in charge of data collecting and the processing of raw data into useable data. 
You can't collect data until you have a data engineer. Companies demand data engineers to be knowledgeable with SQL, Java, AWS, Scala, and other programming languages. 
A background in backend development or programming is required for data engineering.
As a data engineer, you'll be responsible for managing data collection, storage, and processing for future use.

## Data Engineering Concepts 

**Data Sources and Types**

The data coming from these sources can be classified into one of the three broad categories:

- **Unstructured data**
Lacks a well-defined schema. For example; Images, videos and other multimedia files, website data

- **Semi-structured data**
Has some structure but no rigid schema. Typically has metadata tags that provide additional information. For example; JSON,XML data, emails, and zip files.

- **Structured data**
Has a well-defined schema. For example; spreadsheets.

## Data Repositories: Data Warehouses, Data Lakes, and Data Marts

The raw data collected from various sources is staged in a suitable repository.
There are two data processing systems, OLTP and OLAP systems:

- OLTP or Online Transactional Processing systems are used to store day-to-day operational data for applications such as inventory management. OLTP systems include relational databases that store data that can be used for analysis and deriving business insights. 

- OLAP or Online Analytical Processing systems are used to store large volumes of historical data for carrying out complex analytics. In addition to databases, OLAP systems also include data warehouses and data lakes (more on this shortly).

The source and type of data frequently influence the choice of data store.

**- Data warehouses**: A data warehouse is a centralized repository for receiving data.

**- Data lakes**: Data lakes enable the storage of all data kinds in their raw form, including semi-structured and unstructured data. ELT processes (which we will explain subsequently) frequently end up in data lakes.

**- Data mart**: A data mart is a smaller subset of a data warehouse that is targeted to a certain business use case. 

**- Data lake houses**: Recently, data lake homes have gained popularity because they combine the freedom of data lakes with the structure and organization of data warehouses.

## Data Pipelines: ETL and ELT Processes

Data pipelines encompass the data's travel from source to destination systems via ETL and ELT operations. 

**The ETL** (Extract, Transform, and Load) process consists of the following steps:
Data extraction from several sources 
Clean, validate, and standardize data before transforming it.
Load the data into a database or a destination application.
The destination of ETL processes is frequently a data warehouse.

**ELT**(Extract, Load, and Transform) is a variant of the ETL process in which the phases are reversed: extract, load, and transform instead of extract, transform, and load.
That is, before any modification is conducted, the raw data gathered from the source is loaded into the data repository. This enables us to apply modifications tailored to a certain application. Data lakes are the final endpoint of ELT procedures.

## Tools Data Engineers Should Know

- Dbt (data build tool) for analytics engineering

- Apache Spark for big data analytics and distributed data processing framework.

- Airflow for data pipeline orchestration.
 
-Cloud computing fundamentals and experience working with at least one cloud provider, such as AWS or Microsoft Azure.

In conclusion, Data engineering is a vast field. And there is a high need for persons with this skill set. It only takes one step, so begin your learning adventure right away.