data at sweden s television
play

DATA AT SWEDEN'S TELEVISION Ismail Elouafiq A wide spectrum of Apps - PowerPoint PPT Presentation

LESSONS & PITFALLS DATA AT SWEDEN'S TELEVISION Ismail Elouafiq A wide spectrum of Apps A wide spectrum of Apps Running on different platforms A wide spectrum of Users STRATEGY ANALYSTS PRODUCT OWNERS A wide spectrum of Users STRATEGY


  1. LESSONS & PITFALLS DATA AT SWEDEN'S TELEVISION Ismail Elouafiq

  2. A wide spectrum of Apps

  3. A wide spectrum of Apps Running on different platforms

  4. A wide spectrum of Users STRATEGY ANALYSTS PRODUCT OWNERS

  5. A wide spectrum of Users STRATEGY AUTHORS / ANALYSTS PRODUCT OWNERS DEVELOPERS EDITORS

  6. tl;dr: Defining what to prioritise

  7. tl;dr: Defining what to prioritise “ Data: I could be chasing an untamed ornithoid without cause.” ― Star Trek The Next Generation

  8. tl;dr: Defining what to prioritise “ Data: I could be chasing an untamed ornithoid without cause.” ― Star Trek The Next Generation

  9. tl;dr: Defining what to prioritise Experimenting and iterating in small increments Spoilers : how and why we now use protobuf, functional data engineering and ETL practices

  10. tl;dr: Defining what to prioritise Experimenting and iterating in small increments Spoilers : how and why we now use protobuf, functional data engineering and ETL practices BLOCKCHAIN AI Deep reinforcement learning

  11. tl;dr: Defining what to prioritise Experimenting and iterating in small increments

  12. tl;dr: Defining what to prioritise Experimenting and iterating in small increments ismail.land/velocity

  13. tl;dr: Defining what to prioritise Experimenting and iterating in small increments ismail.land/velocity

  14. What events should you collect?

  15. What events should you collect?

  16. How many people read what we want to the article know per day

  17. How many people read what we want to the article know per day click what we can scroll observe share

  18. How many people read what we want to the article know per day click what we can scroll events observe share

  19. How many people read what we want to the article know per day explicit model click what we can scroll events observe share

  20. How many people read what we want to the article know per day explicit model click what we can scroll events observe share

  21. let's start with views

  22. If you could do anything with data ... What would you actually use for decision making

  23. If you could do anything with data ... What would you actually use for decision making A/B tests... Hell yeah!

  24. tl;dr: Defining what to prioritise Experimenting and iterating in small increments ismail.land/velocity

  25. First we need to collect data 1 2 COLLECT INGEST SDK

  26. 1 2 COLLECT INGEST Event API SDK events

  27. 1 2 COLLECT INGEST Event API SDK publish events

  28. 1 2 COLLECT INGEST pub / sub Event API SDK publish events

  29. 2 INGEST pub / sub

  30. 2 2 INGEST STORE pub / sub

  31. 2 2 INGEST STORE pub / sub Events table

  32. 2 2 INGEST STORE pub / sub Events table judge - judi subscribe write

  33. 2 2 INGEST STORE pub / sub Events table judge - judi subscribe write

  34. 1 COLLECT 2 3 INGEST STORE

  35. 1 COLLECT 2 3 INGEST STORE {event_type: click } { eventType: click } {eventType: klick }

  36. 1 COLLECT 2 3 INGEST STORE {event_type: click } { eventType: click } {eventType: klick }

  37. 1 COLLECT 2 3 INGEST STORE More Issues Multiple teams / platforms => takes time to update the clients The schema is sent with every event Unclear types ( arbitrary memory allocation )

  38. 1 COLLECT 2 3 INGEST STORE More Issues Multiple teams / platforms => takes time to update the clients The schema is sent with every event Unclear types ( arbitrary memory allocation ) We know the schema on all levels we have a common model for the data.. how can we make use of that...

  39. ENTER PROTOBUF Keepign a centralized Event Schema

  40. ENTER PROTOBUF Keepign a centralized Event Schema person.proto

  41. ENTER PROTOBUF Keepign a centralized Event Schema person.go compiler person.proto person.js person.f

  42. ENTER PROTOBUF Keepign a centralized Event Schema person.js person.js Person Client Person Server binary serialize deserialize

  43. ENTER PROTOBUF Keepign a centralized Event Schema 1 - Define the Schema As a . proto file event.proto

  44. ENTER PROTOBUF Keepign a centralized Event Schema 1 - Define the Schema As a . proto file 2 - Publish libraries event.proto Publish using CI pipeline go, js, java, swift

  45. ENTER PROTOBUF Keepign a centralized Event Schema 1 - Define the Schema As a . proto file 2 - Publish libraries event.proto Publish using CI pipeline go, js, 2 - Fetch java, Fetch in SDKs swift ( serialization ) Fetch in Judy ( deserialization ) Use to generate table

  46. 0 DEFINE 1 COLLECT 2 3 INGEST STORE

  47. My work here is done!

  48. Not really... Backward and forward compatibility Table changes Language agnostic but nor really Lack of support

  49. The Data Pyramid Storage, transformation, monitoring Collection and ingestion

  50. The Data Pyramid Storage, transformation, monitoring Collection and ingestion

  51. The Data Pyramid Learn, Optimise, Experiment Metrics, aggregations, KPIs Storage, transformation, monitoring Collection and ingestion

  52. The Data Pyramid Nirvana AI, machine learning Learn, Optimise, Experiment Metrics, aggregations, KPIs Storage, transformation, monitoring Collection and ingestion

  53. The Data Pyramid "The pyramids of Egypt could be explained as symbolic stairways to the stars, according to a British scientist " _ The Guardian

  54. The Data Pyramid "The pyramids of Egypt could be explained as symbolic stairways to the stars, according to a British scientist " _ The Guardian "The data pyramid could be explained as a symbolic stairway to the A.I., according to myself " _ Me

  55. Endorse me on Linkedin

  56. We have the data Now what? 0 DEFINE 1 COLLECT 2 3 INGEST STORE

  57. We have the data Now what? 0 DEFINE 1 COLLECT 2 3 INGEST STORE Present Analyze Service / API Batch jobs etl Dashboard Streaming Reports 4 5

  58. We have the data Now what? 0 DEFINE 1 COLLECT 2 3 INGEST STORE Present Analyze Service / API Batch jobs etl Dashboard Streaming Reports 4 5

  59. Everybody ETLs

  60. Everybody ETLs

  61. Inputs Output Some data to be aggregated Aggregated Table Our mysterious job pipeline ( article reads ) Per DAY click events article reads per day article titles

  62. today - partition Append magic job

  63. today - partition Failed magic job

  64. Immutable data Principle : Ensuring partitions reproducibility Versioned logic today - partition Append magic job

  65. On ETL design Ensure reproducibility Practice failure in small increments Defining conventions in one place

  66. keeping a tidy pipeline ISMAIL . LAND / VELOCITY

  67. ¯ \ _( ツ )_/¯ Br3Ak ' em rULeS

  68. summary...

  69. summary...

  70. summary...

  71. summary... (what worked for us)

  72. summary... (what worked for us) DATA DATA DATA

  73. Thank You ismail.land/velocity

Recommend


More recommend