DATA CLOUD WORLD TOUR JAPAN Day 2 15:05-15:35 の発表のスライドです。
Snowflakeがもたらした noteのデータ分析の進化 note株式会社 基盤グループ データ基盤チーム リーダー 久保田 勇喜
View Slide
2015年、株式会社Adwaysに入社。アプリの事前予約システムの開発などを担当後、 2017年からBulbit株式会社(現UNICORN株式会社)でDSPの開発に携わる。 2021年からnote株式会社に入社し、データエンジニアとしてデータ基盤の開発・運用に携わる。 現在はデータ基盤チームのリーダーとして、開発及びデータ活用の推進を担当。 2Speaker 久保田勇喜 (くぼた ゆうき)
note inc.あらゆるクリエイターが文章やマンガ、写真、音声等のコンテンツを自由に投稿することができ、ユーザーはそのコンテンツを楽しんで応援できるCtoCの メディアプラットフォーム。2014年4月スタート。 3会員登録数 約500万人 ※2022年7月時点 総記事数 約2,400万件
4だれもが創作をはじめ 続けられるようにする noteのミッション
note inc.メンバー 193名社員 エンジニア 177名約50名5(2022年9月時点) 従業員数 子育て率 社員紹介による入社率 12%23%
note inc.本日はなすこと 6● noteのデータ基盤が目指す姿 ● Snowflake導入による分析業務に起きた変化 ● Snowflake導入までの経緯 ● まとめ ● 現在の課題
note inc.noteのデータ基盤が目指す姿 7
note inc.使われるデータ基盤を開発・運用し、データに基づいた意思決定を支える
note inc.使われるデータ基盤 = ほしいデータがいつでも・すぐに・直感的に手に入る基盤
note inc.とにかく、クエリーの結果が返ってくるのが遅い。。。
note inc.過去の現場の声 11アナリスト (ヘビーユーザー) PM・ディレクター (ライトユーザー) - せっかくSQLを書いたが、レスポンスが遅いので、別の作業をしてしまいデータ活用のモチベーションが上がらない。 - そもそもほしいデータがどこにあるかわからない。 - インタラクティブに結果が返ってこず、分析業務の認知負荷が高まる。 - 一度間違えると再度実行するのにまた30分くらい待たなければいけない。 - クエリーの実行完了までが遅いので、タスクの消化ができない。
12このままでは使われなくなってしまう。。
note inc.従来のデータ基盤アーキテクチャー 13
note inc.従来のデータ基盤アーキテクチャー 14
note inc.Snowflake導入後のデータ基盤アーキテクチャー 15
note inc.Snowflake導入による 分析業務に起きた変化 16
note inc.noteにおける分析業務体制 17基盤開発グループデータ基盤チームメディア&マーケティンググループデータチーム経営陣PMディレクターデータ活用の推進
note inc.Snowflake導入による変化 18分析業務の効率大幅アップ 今まで不可能だった規模の分析が可能に データ活用への興味・関心の向上
note inc.Snowflake導入による変化 -1- 19分析業務の効率大幅アップ URL毎の、ユーザーのページ閲覧状況の可視化 1年分の記事PVの月毎の集計 10分 => 30秒(warehouseはS) and more... 40分 => 15秒(warehouseはXS)
note inc.Snowflake導入による変化 -2- 20今まで不可能だった規模の分析が可能に and more... ユーザーの回遊ID毎の、ファネル分析が可能になった 集計開始時から全期間を対象にした集計が可能になった => 新たなインサイトの獲得
note inc.Snowflake導入による変化 -3- 21データ活用への興味・関心の向上 ダッシュボードの数の増加した SQLを実行し、データ活用する人口が増えた => データの民主化が進み、データにもとづいた意思決定の文化形成が進んでいる
note inc.導入後の現場の声 22速度が爆速で、待つ時間が大幅に減って効率化が進んだ①格段に早くなったのでSQLたたく人が増えた②長期間のSQLも回せるようになった。③億×億レコードのJoinが回せるようになったデータを見ることに前向きになれたし、データに触れるモチベーションが上がりました
note inc.Snowflake導入までの経緯 23
note inc.2018/6 2019/11 2022/4RDSを使ったデータ分析 noteにおけるデータ分析基盤の歴史 データ基盤による分析 DWH導入 RDSによるデータ分析 RDSによるデータ分析
note inc. - 記事などのデータも保存しているMySQLに対し、アプリケーションのAPIと同じAPI経由でユーザーの行動ログも保存し始めた。 - アプリケーションでの利用が主目的、分析はGoogleAnalyticsを利用。 フェーズ1: RDSによるデータ分析 概要 27
note inc. - 分析用のデータではなかった。(ログが欠損したり消えたりする) - データ分析の需要が高まるにつれ、ログの種類が増え、APIサーバーにかかる負荷が高くなった。 - バズった際など、APIに負荷がかかってしまっていた。 - レコード数が増え、RDSでの集計が不可能になった。 - GoogleAnalyticsが無料で使える範囲を超えた。 28フェーズ1: RDSによるデータ分析 課題
note inc. - AWS上にデータ基盤を構築し、kinesisを利用しストリーミングデータをS3に保存、Athenaによる分析を開始した。 - APIから分けたことで、スケールが容易になりバズった際の欠損などがなくなり、インフラコストは上がったが安定性が増した。 - 大規模データの分析用のシステムを使うことでRDSでは実現不可能だった分析が可能になった。 30フェーズ2: データ基盤による分析 概要
note inc. - レコード数が増え、S3のファイルが増えるとともにAthenaのタイムアウトが発生するようになった。 - データ分析の要望は増えていくが、インフラの制限により、実現できることに限りが出てきた。 - タイムアウトの回避のためデータのETLを行ったが、 アーキテクチャーが複雑化してしまい、開発の難易度が上がり、増える要望を消化できなくなった。 31フェーズ2: データ基盤による分析 課題
note inc.33 - 主に分析業務の速度の改善のためにDWHの導入を検討。 - Redshift・BigQueryとの比較の上、Snowflakeの導入を決定。 - 速度の改善に成功。分析業務の 大幅効率化。 フェーズ3: DWH導入 概要
なぜSnowflakeを選定したか 34
note inc.当時のデータ分析の課題 解決したかった課題 - データの探索に時間がかかっていた。 - 半年以上の長期間の集計をしようとすると、タイムアウトが発生してしまい集計が不可能。 35
note inc.遅いは罪? データの探索に時間がかかる - SQLを実行してからしばらく待つため、別の作業をしてしまい、 集計作業に集中できない 。 - SQLにミスがあった場合、再度数十分待つ必要があり、 ストレスが発生する。 - 可視化まで時間がかかるので、 現場の要望を消化できない 。 36
note inc.遅いは罪? 37データの探索に時間がかかる - SQLを実行してからしばらく待つため、別の作業をしてしまい、 集計作業に集中できない 。 - SQLにミスがあった場合、再度数十分待つ必要があり、 ストレスが発生する。 - 可視化まで時間がかかるので、 現場の要望を消化できない 。 データが活用されなくなる
note inc.データウェアハウスに求めたもの - ほしいデータにすぐにアクセスできる - 長期間のログデータの集計 - クラウドサービスにあるデータの取り扱いが容易 - BIツール・その他システムとの連携 - できれば安価で運用コストも低い 38
note inc.Snowflake選定の理由 - ほしいデータにすぐにアクセスできる - 長期間のログデータの集計 39マイクロパーティショニング・ウェアハウスの分離により爆速かつ大規模なデータ探索が可能 5分程度で取り込み可能・Snowpipeなどで連続的に流れてくるデータの取り扱いも容易 ほとんどのBIツールとの連携が可能 ストレージは圧縮により非常に安価・ウェアハウスも使用後はすぐに停止するため、コントロールしやすい。 - クラウドサービスにあるデータの取り扱いが容易 - BIツール・その他システムとの連携 - できれば安価で簡単に運用が可能
note inc.Snowflake選定の理由 - ウェアハウスの分離により、ワークロード毎にリソースの割り当てが可能 業務効率化・コストのコントロールがしやすい - マーケットプレイスなど、機能がデータウェアハウスにとどまらないため、データの一元管理が可能 複雑なアーキテクチャーを一新 40
note inc.導入して気がついたよかった点 - 導入自体が容易 SnowflakeはAWSにデータをおいていれば扱いが簡単なので、導入が非常に容易だった - サポートが充実 ドキュメントが豊富かつ 日本語でのサポートも充実で、基本即日に問題が解決する - 比較的新しいシステムなので、UIなど使用感がとてもいい 開発者のモチベーション向上 41
note inc.- 比較的費用が高い - 外部テーブルを使った際に、Athenaなどとそこまでパフォーマンスに差が感じられなかった - ストレージとコンピュートリソースが分離できず、運用に負荷がかかる Redshift 42
note inc.BigQuery - パフォーマンスは申し分なかったが、AWS=>GCPのデータの取り込みに転送のコスト・転送処理事態に運用コストがかかる - 当時noteではGCPはほとんど使っていなかったので、権限管理など、GCPの運用体制が整っていなかった。 43
note inc.Snowflake選定の理由 AWSとの親和性も非常に高く、 機能・パフォーマンスともに充実しているSnowflakeの導入を決定 44
note inc.まとめ 45
note inc.Snowflake導入により起きた変化 46より直感的・ストレスなくデータ分析ができるようになった。 データ活用が活発になり、 データの民主化・データに基づいた意思決定が進んでいる。 現代のデータ活用には、 データがほしいと思った時に手に入る環境が必要。
note inc.現在の課題 47
note inc.複雑なアーキテクチャー 分析の速度をあげるため、データのETLを多数行っていた。 アーキテクチャーが複雑になり、どこにどの状態のデータが存在しているのかなど、認知負荷が高い。 48
note inc.複雑なアーキテクチャー 分析の速度をあげるため、データのETLを多数行っていた。 アーキテクチャーが複雑になり、どこにどの状態のデータが存在しているのかなど、認知負荷が上がってしまった。 49Snowpipeを利用し、ニアリアルタイムにSnowflakeにデータを投入し、Snowflakeをデータレイク化することで、ETLではなくELTをベース とし、データの一元管理を実現する。
50
note inc.人手不足 ありがたいことに、Snowflakeによりデータ分析が爆速になり、集計待ちというボトルネックが解消され、業務が圧倒的に効率化された。 しかし、できることが多くなりやりたいことが増え 、開発側の人手不足が浮き彫りになった。 51
一緒に理想のデータ基盤を作ってくれる データエンジニアを募集中です 52採用情報 https://open.talentio.com/r/1/c/note/pages/64092
note inc.さいごに 53
note inc.