You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DataSecOps: Implementing a Secure ELT Pipeline for E-commerce Data Processing.
Architecture
The architecture consists of the following components:
Data Sources: A csv file that contains transactions of an ecommerce store.
Data Ingestion: Python for ingestion.
Data Storage: Secure data lakes or warehouses (e.g., AWS S3, Snowflake) with encryption at rest.
Data Processing: ETL tools (dbt) to transform and load data.
Data Security: Implementation of encryption, access controls, and monitoring.
Data Consumption: BI tools (e.g., Tableau, Looker) for data analysis and reporting.
Monitoring & Logging: Tools like ELK Stack or Prometheus for tracking data pipeline health and security events.
Run the Project
Clone the Repository
git clone https://github.com/Anass-NB/Ecom-DataOps-pipeline.git
cd Ecom-DataOps-pipeline
Set up a Virtual Environment
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
Install Dependencies
pip install -r requirements.txt
Run Astro
Make sure that Astro is installed on your machine. If not, you can install it by following the instructions here. and then run the following command in the project root directory:
astro dev start
then you should setup the AWS connection in Airflow UI with your credentials.
Infrstrcture As a code using Terraform
(Iac)The infrastructure for this project is provisioned using Terraform. The main components include:
Storage Module: This module creates storage buckets
Iam Module: This module creates the IAM Users needed
Run Terraform
To deploy the infrastructure, navigate to the include/terraform directory and run the following commands
terraform init
terraform plan
terraform apply
Data Quality Expectations (Great Expectations)
This project includes data quality checks using Great Expectations across three layers: Source, Transform, and Report.
Source Layer
raw_invoices
Check
Description
Required columns
InvoiceNo, StockCode, Quantity, InvoiceDate, UnitPrice, CustomerID, Country must exist