Logboeken

Forecasting-pijplijnen ontwerpen voor productie

Rami Krispin

Senior Manager, Data Science and Engineering

Pijplijnlogs

Logging

  • Metadata
  • Validatietests
  • Status
  • Performance
Forecasting-pijplijnen ontwerpen voor productie

Pijplijnlogs

Logging

  • Metadata
  • Validatietests
  • Status
  • Performance

Functionaliteit

  • Observability
  • Debuggen
  • Rolgebaseerde beslissingen
Forecasting-pijplijnen ontwerpen voor productie

Logs instellen

  • Stel het log-schema in
  • Behandel scenario’s:
    • Geen nieuwe data beschikbaar
    • Resultaat validatie
  • Log toevoegen
Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

API-taak controleren

import etl.eia_etl as ee

log = ee.Log()
facet = {'respondent': 'US48', 'type': 'D'}
log.create_log(facets = facets)

Log-schema

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

API-taak controleren

import etl.eia_etl as ee

log = ee.Log()
facet = {'respondent': 'US48', 'type': 'D'}
log.create_log(facets = facets)

Log-schema

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

API-taak controleren

import etl.eia_etl as ee

log = ee.Log()
facet = {'respondent': 'US48', 'type': 'D'}
log.create_log(facets = facets)

Log-schema

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

API-taak controleren

import etl.eia_etl as ee

log = ee.Log()
facet = {'respondent': 'US48', 'type': 'D'}
log.create_log(facets = facets)

Log-schema

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

API-taak controleren

import etl.eia_etl as ee

log = ee.Log()
facet = {'respondent': 'US48', 'type': 'D'}
log.create_log(facets = facets)

Log-schema

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

API-taak controleren

import etl.eia_etl as ee

log = ee.Log()
facet = {'respondent': 'US48', 'type': 'D'}
log.create_log(facets = facets)

Log-schema

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

API-taak controleren

import etl.eia_etl as ee

log = ee.Log()
facet = {'respondent': 'US48', 'type': 'D'}
log.create_log(facets = facets)

Log-schema

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

API-status taak

meta = ee.get_metadata(api_key = api_key,
api_path = api_meta_path, 
meta_path= log_path, 
facets = facets, 
offset = 22, window = 336)

API-status

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Datastatus taak

meta = ee.get_metadata(api_key = api_key,
api_path = api_meta_path, 
meta_path= log_path, 
facets = facets, 
offset = 22, window = 336)

API-status

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Validatietaak

if not meta.updates_available:
  log.no_updates()

API-status

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Validatietaak

API-status

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Data verversen-taak

get = ea.eia_get(api_key=api_key, 
    api_path= api_data_path, 
    data = "value", facets = facets, 
    start = meta.start, 
    end = meta.api_end_offset)

Data-uitvoer

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Mislukte dataverversing-taak

log.failure()
Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Datavalidatie-taak

test = ee.Validation(data = get.data,  
tbl_name= "get request", 
label = "validation",
parameters=get.parameters,initial= False,
warning=0.10, error=0, critical=0)
schema_refresh = pb.Schema(
    columns=[
        ("index", "datetime64[ns]"),   
        ("respondent", "object"),
        ("respondent-name", "object"),
        ("type", "object"),
        ("type-name", "object"),
        ("value", "int64"),
        ("value-units", "object")
    ])

test.add_schema(schema = schema_refresh)
Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Datavalidatie-taak

Samenvatting datavalidatie

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Mislukte validatie-taak

log.failure()
Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

Data toevoegen-taak

if log.log["status"]:
  print("Appended the data")
  df = ee.AppendData()
  df.append_data(data_path = data_path, 
    new_data = get.data,save = True,
    schema = schema_append, 
    parameters = get.parameters)
  print(df.validation)
  if df.status and df.save:
    log.log["update"] = True
  else:
    log.log["update"] = False
Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

ETL-logtabel

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

ETL-logtabel

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

ETL-logtabel

Forecasting-pijplijnen ontwerpen voor productie

Het ETL-logproces

ETL-logtabel

Forecasting-pijplijnen ontwerpen voor productie

Het logproces voor de voorspelling

De voorspelling verversen-taak

Forecasting-pijplijnen ontwerpen voor productie

Het logproces voor de voorspelling

De voorspelling scoren-taak

Forecasting-pijplijnen ontwerpen voor productie

Het logproces voor de voorspelling

Tabel met voorspellogs

Forecasting-pijplijnen ontwerpen voor productie

Het logproces voor de voorspelling

Tabel met voorspellogs

Forecasting-pijplijnen ontwerpen voor productie

Het logproces voor de voorspelling

Tabel met voorspellogs

Forecasting-pijplijnen ontwerpen voor productie

Het logproces voor de voorspelling

Tabel met voorspellogs

Forecasting-pijplijnen ontwerpen voor productie

Laten we oefenen!

Forecasting-pijplijnen ontwerpen voor productie

Preparing Video For Download...