Skip to main content

Data aggregation pipeline for running real-time predictive models

Project description

Blurr

We believe in a world where everyone is a data engineer. Or a data scientist. Or an ML engineer. The lines are blurred (cough). Just like development and operations became DevOps over time

--- Blurr authors

CircleCI Documentation Status Coverage Status PyPI version

Blurr transforms raw data into features for model training and prediction using a high-level expressive YAML-based language called the Data Transform Configuration (DTC).

For production ML applications, experimentation and iteration speed is important. Working directly with raw data provides the most flexibility. Blurr allows product teams to iterate quickly during ML dev and provides a self-service way to take experiments to production.

Data Transformer

Coming up with features is difficult, time-consuming, requires expert knowledge. 'Applied machine learning' is basically feature engineering

--- Andrew Ng

Table of contents

DTC at a glance

Raw data like this

{ "user_id": "09C1", "session_id": "915D", "country" : "US", "event_id": "game_start" }
{ "user_id": "09C1", "session_id": "915D", "country" : "US", "event_id": "game_end", "won": 1 }
{ "user_id": "09C1", "session_id": "915D", "country" : "US", "event_id": "game_start" }
{ "user_id": "09C1", "session_id": "915D", "country" : "US", "event_id": "game_end", "won": 1 }
{ "user_id": "B6FA", "session_id": "D043", "country" : "US", "event_id": "game_start" }
{ "user_id": "B6FA", "session_id": "D043", "country" : "US", "event_id": "game_end", "won": 1 }
{ "user_id": "09C1", "session_id": "T8KA", "country" : "UK", "event_id": "game_start" }
{ "user_id": "09C1", "session_id": "T8KA", "country" : "UK", "event_id": "game_end", "won": 1 }

turns into

session_id user_id games_played games_won
915D 09C1 2 2
D043 B6FA 1 1
T8KA 09C1 1 1

using this DTC

Type: Blurr:Streaming
Version: '2018-03-01'
Name : sessions

Stores:
   - Type: Blurr:Store:MemoryStore
     Name: hello_world_store

Identity: source.user_id

Time: parser.parse(source.timestamp)

DataGroups:

 - Type: Blurr:DataGroup:BlockAggregate
   Name: session_stats
   Store: hello_world_store

   Split: source.session_id != session_stats.session_id

   Fields:

     - Name: session_id
       Type: string
       Value: source.session_id

     - Name: games_played
       Type: integer
       When: source.event_id == 'game_start'
       Value: session_stats.games_played + 1

     - Name: games_won
       Type: integer
       When: source.event_id == 'game_end' and source.won == '1'
       Value: session_stats.games_won + 1

Tutorial and Docs

Read the docs

Streaming DTC Tutorial | Window DTC Tutorial

Preparing data for specific use cases using Blurr

Dynamic in-game offers (Offer AI) | Frequently Bought Together

Use Blurr

We interact with Blurr using a Command Line Interface (CLI). Blurr is installed via pip:

$ pip install blurr

Transform data

$ blurr transform \
     --streaming-dtc ./dtcs/sessionize-dtc.yml \
     --window-dtc ./dtcs/windowing-dtc.yml \
     --source file://path

CLI documentation

Contribute to Blurr

Welcome to the Blurr community! We are so glad that you share our passion for making data management and machine learning accessible to everyone.

Please create a new issue to begin a discussion. Alternatively, feel free to pick up an existing issue!

Please sign the Contributor License Agreement before raising a pull request.

Data Science 'Joel Test'

Inspired by the (old school) Joel Test to rate software teams, here's our version for data science teams. What's your score? We'd love to know!

  1. Data pipelines are versioned and reproducible
  2. Pipelines (re)build in one step
  3. Deploying to production needs minimal engineering help
  4. Successful ML is a long game. You play it like it is
  5. Kaizen. Experimentation and iterations are a way of life

Stay in touch! Star this project or email hello@blurr.ai

Roadmap

Blurr is all about enabling machine learning and AI teams to run faster.

Developer Preview 0: Local transformations only

Developer Preview 1: S3-S3 data transformations

Developer Preview 2: Add DynamoDB as a Store + Features server for ML production use

Ingestion connectors to Kafka and Spark

Project details


Release history Release notifications | RSS feed

This version

0.451

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blurr-dev-0.451.tar.gz (23.3 kB view details)

Uploaded Source

Built Distribution

blurr_dev-0.451-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

File details

Details for the file blurr-dev-0.451.tar.gz.

File metadata

  • Download URL: blurr-dev-0.451.tar.gz
  • Upload date:
  • Size: 23.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for blurr-dev-0.451.tar.gz
Algorithm Hash digest
SHA256 177d33599544e3be2e99ac0e2504eab5e22696171c596d8c7d0a9419067a948f
MD5 8374a8ee38f1d105082a91402f797455
BLAKE2b-256 1ffdae73e974ccf331c8d5aae38aeab06966e8e96a21bb418493d1e1685f1d94

See more details on using hashes here.

File details

Details for the file blurr_dev-0.451-py3-none-any.whl.

File metadata

File hashes

Hashes for blurr_dev-0.451-py3-none-any.whl
Algorithm Hash digest
SHA256 c4f98b95cec374f48f50ea3a9271a5fccfc02877e0d1923514d61dafae454dfc
MD5 c33adb59ccee43d4e3383d3570c6dc44
BLAKE2b-256 dfb6bd391a3c9f5696fd6d20ea7d44c05142207737a8904e2e72ad07f3bf46d9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page