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で話した資料です



March 08, 2019

More Decks by satoshihirose

Other Decks in Programming


  1. Data Engineering at SmartNews Machine Learning Casual Talks #9 2019-03-08

    Data Engineer, SamrtNews @satoshihirose
  2. Self Introduction • Current (2018-08 -) ◦ Data Engineer @

    SmartNews Inc • Previous ◦ Technical Support Engineer @ Amazon Web Services Japan ◦ Software Engineer @ Sumally Inc @satoshihirose
  3. SmartNews

  4. SmartNews

  5. SmartNews

  6. 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
  7. Role of Data Engineering Data Engineering Data Analysis Machine Learning

    Product Improvement
  8. 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人?
  9. 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
  10. Data Engineering for Data Analysis

  11. Data Engineering for Data Analysis Data HubとしてのPresto • BI, GUI,

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

    SLAの設定、Data Validation、 Slackへの通知 • 各種pluginの活用 ◦ ECS, Fargate plugin ◦ EMR plugin
  13. Data Engineering for Data Analysis ポイント • versionの更新が結構頻繁にあ り、変更が多いので、追いつい ていけるようにDAGの検証環

    境、検証データの整備 • see also: Data Pipeline Casual Talk Vol.2 4/16 Tue 19:00-
  14. 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
  15. Data Engineering for Machine Learning

  16. ML in SmartNews 例: ニュース(記事+動画)配信 • 記事+動画のカテゴライズ • フィード, Push配信のrecommendation

    例: 広告配信 • 様々な広告配信最適化 例: Data Science • User Lifetime Value予測
  17. Data Engineering for Machine Learning Apache Airflowでエンドユーザーのための機械学習パイプラインを構築する Part1 一般的なML Pipeline

  18. Data Engineering for Machine Learning AWS SageMakerの活用 • 少人数チームのチームでマネージドサービ スの活用し、効果を最大化

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

  20. 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化
  21. We are hiring • • • • • • イカした福利厚生を紹介するよ!

  22. Thank you!