Data ingestion

Designing Forecasting Pipelines for Production

Rami Krispin

Senior Manager, Data Science and Engineering

ETL process

ETL Process

Designing Forecasting Pipelines for Production

ETL process - source

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - extract

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - transform

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - load

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - data validation

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - data integrity

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - logging

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - refreshing

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - refreshing

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - refreshing

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - refreshing

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - triggering a new pipeline

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - updating normalized data

Data Ingestion Process

Designing Forecasting Pipelines for Production

ETL process - data parity check

Check API Task

Designing Forecasting Pipelines for Production

ETL process - metadata

Data Status Task

Designing Forecasting Pipelines for Production

ETL process - data refresh

Data Refresh Task

Designing Forecasting Pipelines for Production

ETL process - data validation

Data Validation Task

Designing Forecasting Pipelines for Production

ETL process - data analysis

Analyze Data Validation Task

Designing Forecasting Pipelines for Production

ETL process - append the data

Append the Data Task

Designing Forecasting Pipelines for Production

ETL process - forecast refresh

Refresh the Forecast Task

Designing Forecasting Pipelines for Production

ETL process - forecast evaluation

Score the Forecast Task

Designing Forecasting Pipelines for Production

ETL process - no update

Validation Task

Designing Forecasting Pipelines for Production

ETL process - refresh failure

Validation Task

Designing Forecasting Pipelines for Production

ETL process - validation failure

Validation Task

Designing Forecasting Pipelines for Production

Data validation checks

  • Data schema
  • Values range
  • Missing values
  • Duplications
  • Business logic
Designing Forecasting Pipelines for Production

Data validation checks

print(raw)
period    respondent    respondent-name    type    type-name    value    value-units
0    2025-05-01 00:00:00    US48    United States Lower 48    D    Demand    504242    
1    2025-04-30 23:00:00    US48    United States Lower 48    D    Demand    508099    
2    2025-04-30 22:00:00    US48    United States Lower 48    D    Demand    508323    
3    2025-04-30 21:00:00    US48    United States Lower 48    D    Demand    500551    
4    2025-04-30 20:00:00    US48    United States Lower 48    D    Demand    492240    

Designing Forecasting Pipelines for Production

Data validation checks

import pointblank as pb

table_schema = pb.Schema( columns=[ ("index", "datetime64[ns]"), ("respondent", "object"), ("respondent-name", "object"), ("type", "object"), ("type-name", "object"), ("value", "int64"), ("value-units", "object") ] )
Designing Forecasting Pipelines for Production

Data validation checks

validation = (pb.Validate(data=raw,
              tbl_name="US48 Data Validation",
              label="Data Refresh",
              thresholds=pb.Thresholds(warning=0.2, error=0, critical=0.1))

.col_schema_match(schema=table_schema)
.col_vals_gt(columns="value", value=0)
.col_vals_in_set(columns="respondent", set = ["US48"]) .col_vals_in_set(columns="type", set = ["D"])
.col_vals_not_null(columns=["period", "value"])
.rows_distinct()
.interrogate())
Designing Forecasting Pipelines for Production

Data validation checks

Data Validation

Designing Forecasting Pipelines for Production

Data validation checks

print(validation.all_passed())
True
Designing Forecasting Pipelines for Production

Let's practice!

Designing Forecasting Pipelines for Production

Preparing Video For Download...