Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Data Engineering at SmartNews

Data Engineering at SmartNews

2019年3月8日のMachine Learning Casual Talks #9で話した資料です
https://mlct.connpass.com/event/120451/

satoshihirose

March 08, 2019
Tweet

More Decks by satoshihirose

Other Decks in Programming

Transcript

  1. Self Introduction • Current (2018-08 -) ◦ Data Engineer @

    SmartNews Inc • Previous ◦ Technical Support Engineer @ Amazon Web Services Japan ◦ Software Engineer @ Sumally Inc @satoshihirose
  2. Role of Data Engineer https://medium.com/moonshot/ataengineers-vs-data-scientist-13fce30812a7 • Engineer, build and implement

    new services, libraries, tools, frameworks for data processing or management • Own and maintain the key data processing portfolios such as APIs for accessing data, ETLs for processing data, storages/DBMS for hosting data and underlying hardware and software architectures, to build durable and scalable data platform as services https://smartnews.workable.com/j/AAD9A917A8
  3. Role of Data Engineering in SmartNews Data Engineering Data Analysis

    Machine Learning Product Improvement Data Engineer + SRE ~ 5人 (+ other Engineers) DS team ~ 5人 Software Engineer(ML) + DS team一部 ~ 12人?
  4. Data Infrastructure in SmartNews Data Store Amazon S3 Workflow Management

    Airflow, Azkaban Batch Processing Hive, Spark on EMR Interactive Query Presto on EC2 Streaming Processing Kinesis + Spark Streaming GUI for SQL Shib, Superset BI Dashboard Chartio Analytics Tool JupyterHub
  5. Data Engineering for Data Analysis Data HubとしてのPresto • BI, GUI,

    CLI, Application など から利用される • 基本的には全ての分析用データ はHive metastoreに追加され、 それに対しPrestoでクエリでき る。 • 負荷状況によりworkerをオート スケールさせ、利用状況の増減 に対応
  6. Data Engineering for Data Analysis Airflowの活用 • ETL処理の実行管理、依存性管 理 •

    SLAの設定、Data Validation、 Slackへの通知 • 各種pluginの活用 ◦ ECS, Fargate plugin ◦ EMR plugin
  7. DataOps DataOps in Seven Steps 1. Add Data and Logic

    Tests 2. Use a Version Control System 3.  Branch and Merge 4. Use Multiple Environments 5. Reuse & Containerize 6. Parameterize Your Processing 7. Work Without Fear™ https://www.dataopsmanifesto.org/ https://datakitchen.readme.io/docs/seven-steps-to-dataops
  8. ML in SmartNews 例: ニュース(記事+動画)配信 • 記事+動画のカテゴライズ • フィード, Push配信のrecommendation

    例: 広告配信 • 様々な広告配信最適化 例: Data Science • User Lifetime Value予測
  9. Data Engineering for Machine Learning AWS SageMakerの活用 • 少人数チームのチームでマネージドサービ スの活用し、効果を最大化

    • Jupyter Notebook内でtrain、evaluate, deployまで完結し、Python API を叩くだけ なので、ワークフローに組み込みやすい • もちろんSageMakerを必ず使わなければい けないという状況ではなく、試行過程のひと つ(他の仕組みが導入されているコンポーネ ント多数) https://pages.awscloud.com/AmazonSageMaker20190115-jp.html
  10. Data Engineering for Machine Learning • 課題: Model作りっぱなし問題 • 対策:

    AWS SageMaker + Airflow + Presto によるML Workflow • 継続的にdata update, train, evaluation, deployをしたい ◦ generate data: SQL query+実行日時によるデータ取得とS3 upload ◦ train, evaluate, deploy: モデルの性能を現在のものと比較してdeploy ◦ health check: 現在deployされれているモデルが正常か定期確認 ◦ 一連の流れをtemplate化