$30 off During Our Annual Pro Sale. View Details »

DPCT発表資料.pdf

Yuu.Kimy
February 13, 2019

 DPCT発表資料.pdf

データパイプラインカジュアルトーク#1の発表資料です。
弊社の丘サーファーを解消していくための取組みをまとめています。

Yuu.Kimy

February 13, 2019
Tweet

More Decks by Yuu.Kimy

Other Decks in Technology

Transcript

  1. Copyright © 2018 Classi Corp. All Rights Reserved. 丘サーファーへ「水」を届けるために -これまでとこれから-

    2019/2/13(水) in Data Pipeline Casual Talk #1 @エムスリー Copyright © 2018 Classi Corp. All Rights Reserved.
  2. Copyright © 2018 Classi Corp. All Rights Reserved. 1. 自己紹介

    2. Classiについて 3. 過去編:「水」はそこにある筈.. 4. 現在編:「水」は目の前にある 5. 未来編:「水」をもっと届けたい! 6. 最後に 1 目次
  3. Copyright © 2018 Classi Corp. All Rights Reserved. 名前: 木宮

    勇毅(@yuu_kimy) 所属: Classi株式会社 仕事: データエンジニア&BI支援 これまでの登壇: お家で 子どもと楽しむプ ログラミング 2 自己紹介
  4. Copyright © 2018 Classi Corp. All Rights Reserved. 4 ◯

    高校への営業 ◯ 学習支援アプリ開発 ◯ 活用コンサルテーション ◯ プラットフォーム開発 ◯ ネイティブアプリ開発 ◯ 学校へのICT関連サポート 会社概要 ベネッセとソフトバンクのジョイントベンチャー
  5. Copyright © 2018 Classi Corp. All Rights Reserved. 7 Classiのミッション・ビジョン・バリュー

    Mission 子供の無限の可能性を解き放ち、学びの形を進化させる。 2020Vision 新しい学びが広がる未来の教育プラットフォームを創る。 データテクノロジーを活用し、子供たち一人ひとりが主体的に、学ぶ意欲と学び続ける力を育む教室を共に創ります。 Value - Unlearn & Learn. 既存の知識を外す勇気。「学び方」を学び続けよう。失敗してもいい。新しい学びに挑戦しよう。 - Love Difference. 違いを愛そう。チームを超えて協働しよう。多様性こそClassiの強み。多様な方がわくわくする。 - Make Happen. 共に作り、共に実現する。大切なのは、信じて、やり抜くこと。
  6. Copyright © 2018 Classi Corp. All Rights Reserved. 「Classi」は教育現場を支援する クラウドサービス

    • 国内No.1、全国の高校の 40%超が導入 • 利用者数83万人超 • 先生、生徒、保護者が繋がる 学習支援プラットフォーム 8 事業について
  7. Copyright © 2018 Classi Corp. All Rights Reserved. 「丘サーファー」は、 こちらから引用させて頂きましたm(_

    _)m 機械学習チームにおけるエンジニアの道は2つある――クックパッドの伊 藤敬彦氏が語る生存戦略【デブサミ2018 夏】 9 最初に
  8. Copyright © 2018 Classi Corp. All Rights Reserved. ただし、本日の「丘サーファー」は、 データにアクセスできない人全員を指します。

    「プランナー・エンジニア・データサイエンティストetc..」 10 最初に ※勝手に定義を変えて、本当に申し訳ありません・・m(_ _)m
  9. Copyright © 2018 Classi Corp. All Rights Reserved. 13 ※引用元:

    Photo by Victor Garcia on Unsplash 「データパイプライン」とは 何か?
  10. Copyright © 2018 Classi Corp. All Rights Reserved. 14 ※引用元:

    https://en.wikipedia.org/wiki/Pipeline_(computing) In computing, a pipeline, also known as a data pipeline, is a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion. (by Wikipedia)
  11. Copyright © 2018 Classi Corp. All Rights Reserved. データパイプラインの目的は、 活用できるデータのフローを

    適切にコントロールすること 15 ※引用元: Photo by Laurent Perren on Unsplash
  12. Copyright © 2018 Classi Corp. All Rights Reserved. 16 過去編:「水」はそこにある筈..

    この前の改善はどうなったけ ・・?また、レポート作成を依 頼しないと,,, (勿論、Excelやな) ビジネス側から要請のあっ た、あのテーブルからデータ を抽出しないと,,
  13. Copyright © 2018 Classi Corp. All Rights Reserved. 17 過去編:「水」はそこにある筈..

    • 容易にデータを利用できない • データの更新は手運用 • レポートの更新も手運用 →つまり、サクッと見れる環境がなかった ※レポート担当者の負荷大(><;
  14. Copyright © 2018 Classi Corp. All Rights Reserved. 18 過去のデータ治安状態を可視化すると..

    量・質が豊富 コストが低い コストが高い 社内のデータ環境は「丘サーファー」の状態 .. →非常に「治安が悪い状態」。。泣 社内のデータ環境は「ウェイ〜♪サーファー」の状態 →本当に理想の状態!!! まさに、こんな状態だった・・ ※2018年2月頃までの実話
  15. Copyright © 2018 Classi Corp. All Rights Reserved. 19 水を上手くお届けするためのアプローチ①

    実は、弊社は、データの取扱 いを厳重に運用している →一旦、後回しにする! まずは、GAのデータをしっかり見れる ようにする!
  16. Copyright © 2018 Classi Corp. All Rights Reserved. 20 ※引用元:

    https://www.irasutoya.com/2016/08/it.html よっしゃー、 そのあたりの水を引いてこよかー!! (って,,GAのデータ定義って分からん・・ Excelのヘッダーは結合しないで..泣) ・GAデータの整形、DWH環境の整備 ・BI環境の整備(スキル定着支援) ・各チームで見たいデータのヒアリング ・ダッシュボードの作成 水を上手くお届けするためのアプローチ①
  17. Copyright © 2018 Classi Corp. All Rights Reserved. 21 現在編:「水」は目の前にある

    主要なKPIレポートは、 Slackで通知される! 主だった必要なデータは、こ こにある ※AWS側は、今のところ、ノータッチのため、本日は詳細は割愛させて頂きます。
  18. Copyright © 2018 Classi Corp. All Rights Reserved. 22 現在編:「水」は目の前にある

    • 必要なデータ(GAなど)をBigQueryへ連携 • Tableau Onlineへ主要なデータを定期更新 • 主なKPIレポートはSlackで確認可能! →ようやくサクッと見れる環境が整ってきた(^^)
  19. Copyright © 2018 Classi Corp. All Rights Reserved. 23 現在編:「水」が目の前にあるために

    データセットをデータのレイ ヤーごとに分類 (ローデータ&中間テーブル& データマート) Scheduled Queryの活用 (Pub/Subとの連携も可能) BQやTableauにあるデータの 定義は、コンフルページに纏め ておく ※更新頻度や用途も記載する コンフル Tableauのデータソースは、 集計後のBQデータを更新す るようにする。カスタム SQL の簡素化!
  20. Copyright © 2018 Classi Corp. All Rights Reserved. 24 現在編:「水」が目の前にあるために

    • BigQuery • データセットの目的/用途を明確にする • スキーマは定めるべし • 分割テーブルは必ず使おう • Tableau • カスタムSQLは可能な限り簡素に! • Confluence • データの定義は非常に大事!
  21. Copyright © 2018 Classi Corp. All Rights Reserved. 25 現在編:「水」が目の前にあるために

    • (例)ローデータからデータマートへ SQLを分割して、段階的に、データ を整形・加工して、集計・分析用の データマートを仕上げていくと運用 しやすい!
  22. Copyright © 2018 Classi Corp. All Rights Reserved. 26 現在編:「水」が目の前にあるために

    • BigQueryのScheduled Queryは結構便利 • 旧Web UI画面でしか利用できないけど,, • シンプル故に逆に分かり辛い時があるけど,, →定期的なクエリの実行環境としては良い ※参考: https://qiita.com/tatsu_kitchen/items/d69deb989a3699a85d99 ※こちらの方のQiitaに網羅的に纏まっています。
  23. Copyright © 2018 Classi Corp. All Rights Reserved. 27 現在編:「水」が目の前にあるために

    • Scheduled Queryの画面例 パラメータを指定することで、日付分割 テーブルとしてクエリ結果を保存することも 可能! ※参照: https://cloud.google.com/bigquery/docs/scheduling-queries?hl=ja
  24. Copyright © 2018 Classi Corp. All Rights Reserved. 28 現在編:「水」が目の前にあるために

    • データ定義のコンフルページ例 何の用途のためのデータな のかを明確にすることは非常 に大事!
  25. Copyright © 2018 Classi Corp. All Rights Reserved. 29 量・質が豊富

    コストが低い 社内のデータ環境は「丘サーファー」の状態 .. →非常に「治安が悪い状態」。。泣 社内のデータ環境は「ウェイ〜♪サーファー」の状態 →本当に理想の状態!!! 丘サーファーではなくなった! だけど、もっと、欲しい コストが高い 現在のデータ治安状態を可視化すると..
  26. Copyright © 2018 Classi Corp. All Rights Reserved. 30 水をもっと上手くお届けするためのアプローチ②

    AWSにあるデータを社内運用 ルールに則り、データを抽出し、 GCP環境へ連携する!
  27. Copyright © 2018 Classi Corp. All Rights Reserved. 31 ※引用元:

    https://www.irasutoya.com/2016/08/it.html よっしゃッー,, 次は、こっちの水を引いてこよかー!! (あれ,, これ何故エラーが出る・・?) 水をもっと上手くお届けするためのアプローチ② ・AWSとGCPの役割明確化&担当分担化 ・テーブルの定義の入念なチェック ・連携I/Fの協議、設計 ・ワークフローの設計、実装 etc..
  28. Copyright © 2018 Classi Corp. All Rights Reserved. 32 少し先の未来編:「水」をもっと届けたい!

    弊社のデータが、一つの場 所で全て参照できる〜 データ連携のワークフロー &データマ ネジメントの仕組化の推進 ※既に、結構開発が進んでいます。
  29. Copyright © 2018 Classi Corp. All Rights Reserved. 33 未来編:「水」をもっと届けるために

    • AWSとGCPの役割を明確に区分 • AWS: セキュアなデータ連携の入口 • GCP: データ分析基盤 • データ連携のワークフローの実装 →よりシステマティック&柔軟な分析環境へ
  30. Copyright © 2018 Classi Corp. All Rights Reserved. 34 未来編:「水」をもっと届けるために

    • Cloud Composer(Airflow) • データワークフローのコントロールの要 • 色々なOperatorが一杯ある!便利 →あれ、あのOperatorが参照エラー? →でも、DAGごとに1個1個のタスクを実装する?
  31. Copyright © 2018 Classi Corp. All Rights Reserved. 35 未来編:「水」をもっと届けるために

    ❖ 公式ドキュメントの熟読 まずは、Googleのドキュメントを見よう ※参照: https://cloud.google.com/blog/products/data-analytics/how-to-transfer-bigquery-tables-between-locations-with-cloud-composer GCSバゲット間のオブジェクトのやり取りをす る際のOperatorは、 「GoogleCloudStorageToGoogleCloudStor ageOperator」であるが、from airflow.contrib.operators.gcs_to_bq import GoogleCloudStorageToGoogleCloudStora geOperator とインポートしても、そんなモ ジュールは知らないと怒られる・・汗 なので、左記のような対応が必要!! ※Appendix.も参照
  32. Copyright © 2018 Classi Corp. All Rights Reserved. 36 未来編:「水」をもっと届けるために

    ❖ タスクの動的生成 yamlで定義して、そこから生成しよう 後からのワークフロー上のタスク追加や改修をなるべく容易にする
  33. Copyright © 2018 Classi Corp. All Rights Reserved. 37 量・質が豊富

    社内のデータ環境は「丘サーファー」の状態 .. →非常に「治安が悪い状態」。。泣 社内のデータ環境は「ウェイ〜♪サーファー」の状態 コストが低い データがウェ〜イな状態 コストが高い 未来の目指したいデータ治安状態!
  34. Copyright © 2018 Classi Corp. All Rights Reserved. 38 教育領域のデータ活用の仕組みを

    一緒に作りませんか?! 最後に ★弊社に興味を持たれた方は、ぜひ、こちらのブログもご覧頂けたら嬉しいですm(_ _)m https://www.wantedly.com/companies/classi/post_articles/147710
  35. Copyright © 2018 Classi Corp. All Rights Reserved. airflow.contrib.operators.gcs_to_gcsをインポートしてもエラーが発生.. 40

    Appendix. Airflowの公式ドキュメントにあるのに,,(><;) https://airflow.apache.org/_modules/airflow/contrib/operators/gcs_to_gcs.html → Airflow ver.1.9.0では、どうやら利用できないよう.. (現在のCloud Composerは、1.9.0がデフォルトになっている) ※参照: https://stackoverflow.com/questions/50478765/broken-dag-no-module-named-airflow-contrib-gsc-to-gcs
  36. Copyright © 2018 Classi Corp. All Rights Reserved. 【弊社のデータ活用の取組みの紹介】 •

    EdTech企業における データ活用現状確認 • データサイエンティスト発 “COCKPIT PROJECT” 〜ユーザーを乗せ たClassiを正しい方向へ導くみんなの操縦室〜 • TableauレポートをGASでSlackに自動連携する方法 41 Appendix.