Slide 1

Slide 1 text

Data Engineering at SmartNews Machine Learning Casual Talks #9 2019-03-08 Data Engineer, SamrtNews @satoshihirose

Slide 2

Slide 2 text

Self Introduction ● Current (2018-08 -) ○ Data Engineer @ SmartNews Inc ● Previous ○ Technical Support Engineer @ Amazon Web Services Japan ○ Software Engineer @ Sumally Inc @satoshihirose

Slide 3

Slide 3 text

SmartNews

Slide 4

Slide 4 text

SmartNews

Slide 5

Slide 5 text

SmartNews

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Role of Data Engineering Data Engineering Data Analysis Machine Learning Product Improvement

Slide 8

Slide 8 text

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人?

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Data Engineering for Data Analysis

Slide 11

Slide 11 text

Data Engineering for Data Analysis Data HubとしてのPresto ● BI, GUI, CLI, Application など から利用される ● 基本的には全ての分析用データ はHive metastoreに追加され、 それに対しPrestoでクエリでき る。 ● 負荷状況によりworkerをオート スケールさせ、利用状況の増減 に対応

Slide 12

Slide 12 text

Data Engineering for Data Analysis Airflowの活用 ● ETL処理の実行管理、依存性管 理 ● SLAの設定、Data Validation、 Slackへの通知 ● 各種pluginの活用 ○ ECS, Fargate plugin ○ EMR plugin

Slide 13

Slide 13 text

Data Engineering for Data Analysis ポイント ● versionの更新が結構頻繁にあ り、変更が多いので、追いつい ていけるようにDAGの検証環 境、検証データの整備 ● see also: Data Pipeline Casual Talk Vol.2 4/16 Tue 19:00-

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

Data Engineering for Machine Learning

Slide 16

Slide 16 text

ML in SmartNews 例: ニュース(記事+動画)配信 ● 記事+動画のカテゴライズ ● フィード, Push配信のrecommendation 例: 広告配信 ● 様々な広告配信最適化 例: Data Science ● User Lifetime Value予測

Slide 17

Slide 17 text

Data Engineering for Machine Learning Apache Airflowでエンドユーザーのための機械学習パイプラインを構築する Part1 一般的なML Pipeline

Slide 18

Slide 18 text

Data Engineering for Machine Learning AWS SageMakerの活用 ● 少人数チームのチームでマネージドサービ スの活用し、効果を最大化 ● Jupyter Notebook内でtrain、evaluate, deployまで完結し、Python API を叩くだけ なので、ワークフローに組み込みやすい ● もちろんSageMakerを必ず使わなければい けないという状況ではなく、試行過程のひと つ(他の仕組みが導入されているコンポーネ ント多数) https://pages.awscloud.com/AmazonSageMaker20190115-jp.html

Slide 19

Slide 19 text

Data Engineering for Machine Learning SageMaker Kinesis Spark DynamoDB S3 Hive

Slide 20

Slide 20 text

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化

Slide 21

Slide 21 text

We are hiring ● ● ● ● ● ● イカした福利厚生を紹介するよ!

Slide 22

Slide 22 text

Thank you!