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

Cloud-Nativeなデータ分析基盤におけるPrestoの活用 / Cloud-Native Data Infrastructure with Presto

Cloud-Nativeなデータ分析基盤におけるPrestoの活用 / Cloud-Native Data Infrastructure with Presto

Hadoop / Spark Conference Japan 2019で話した資料です。
http://hadoop.apache.jp/hcj2019-program/

satoshihirose

March 14, 2019
Tweet

More Decks by satoshihirose

Other Decks in Programming

Transcript

  1. 2019-03-14
    Data Engineer, SmartNews Inc
    廣瀬 智史
    Cloud-Nativeなデータ分析基盤
    におけるPrestoの活用
    Hadoop / Spark Conference Japan 2019

    View full-size slide

  2. データの活用(データ分析、機械学習)
    例: ニュース(記事+動画)配信
    ● 記事+動画のカテゴライズ
    ● フィードにおけるレコメンド
    例: 広告配信
    ● 様々な配信最適化
    例: データサイエンス
    ● 経営指標の計算や予測

    View full-size slide

  3. ● 当時の構成
    ○ MapReduce(mrjob) + MongoDB
    ● 課題
    ○ 集計処理が必要になるたびに
    MapReduce処理を追加する必要が
    あった
    ○ 見たいデータを追加するたびに可視
    化のためのウェブアプリを修正する必
    要があった
    ○ データを気軽に分析できる環境では
    なかった
    2014年当時のSmartNewsデータ基盤の構成と課題
    in-house visualization
    web application

    View full-size slide

  4. Hadoop Conference in Japan 2014
    ● Facebookが公開したSQL
    Query Engine
    ● 大規模データセットに対してもイ
    ンタラクティブなレスポンスを返

    ● Presto自身はデータストレージ
    を持っていない
    ● 複数のデータソース(Hive,
    Cassandra, MySQL, etc…)に
    対して一度に集計を実行するこ
    とができる
    https://tug.red/entry/2014/07/10/150250/

    View full-size slide

  5. Presto/Hiveの導入
    ● 変更後の構成
    ○ S3 + Presto + Hive
    ● コンセプト
    ○ ETLバッチ処理はHive, リアルタイム
    データ集計はPresto
    ○ ストレージとコンピューテーションリソー
    スを分離
    ○ SQLを書ければ誰でもデータ分析がで
    きるようにする
    BI Tools, CLI, Data Application

    View full-size slide

  6. EMR+S3によるCloud-Nativeなデータ分析基盤
    [メリット]
    ● Less Maintenance: マネージドサービスを
    活用することで運用を少なく
    ● Elasticity: long runningなHadoopクラスタ
    の他にも、必要に応じてtransientなHadoop
    クラスタを活用できる。ワークロードに応じて
    クラスターの規模を増減できる
    ● DevOps: 用途やチームに応じてクラスター
    を使い分けることで、依存性が局所化され、
    チームがownershipを持てる
    広告配信
    チーム
    Hive
    MetaStore
    multi EMR clusters
    S3 Buckets
    ニュース配信
    チーム
    multi EMR clusters
    S3 Buckets
    Hive
    MetaStore

    View full-size slide

  7. EMR+S3によるCloud-Nativeなデータ分析基盤
    [デメリット]
    ● マルチクラスター化によって複数のHive
    MetaStore Databaseにデータが分散してし
    まい、それらを跨いだ集計処理が難しくなる
    広告配信
    チーム
    Hive
    MetaStore
    multi EMR clusters
    S3 Buckets
    ニュース配信
    チーム
    multi EMR clusters
    S3 Buckets
    Hive
    MetaStore

    View full-size slide

  8. ● データが分散して存在しまう状況への
    対応
    ○ Prestoをインターフェイスにするこ
    とで複数のデータソースにまた
    がった集計が可能に
    other Applications
    CLI
    Hive(Ads) Hive(News) other databases
    PrestoによるData Aggregation
    BI Tool

    View full-size slide

  9. ● EMRを使うのではなく、EC2上にクラス
    ターを構築している
    ● 負荷状況によりworkerをオートスケール
    させ、利用状況の増減に対応している
    ● 利用用途により、複数のクラスターが存
    在する
    ○ 一部では今年2月にリリースされた
    version 302を使い始めている
    Prestoの活用(1)

    View full-size slide

  10. ● defaultのPrestoには存在しないコネクターの追加や、独自のファンクション
    の追加を行なっている
    ○ 例: Kinesis connector
    ○ 例: fast JSON extraction function
    ○ 例: AWS function
    ■ ddb_get()
    Prestoの活用(2)
    Table Name

    View full-size slide

  11. ● PrestoやHiveのバージョンアップに追従する仕組みの整備
    ○ 検証環境の整備など
    ● 監視の強化
    ○ 問題のあるクエリの実行検知
    ○ ETL処理結果のvalidation
    ○ SLI/SLOの設定
    ● データフォーマットや設定の最適化
    ○ RCFile から ORC への移行など
    ● Streaming Processingの拡充
    SmartNewsデータ分析基盤の課題と今後

    View full-size slide

  12. Presto Software Foundationの設立
    ● 2019年1月にPrestoの開発コミュニ
    ティをサポートするためStarburst
    Data, Arm Treasure Data, Qubole
    などのengineerにより設立
    ● 今後はこれまでのprestodb/presto
    (2019/3時点最新バージョンが
    0.217)がprestosql/presto(2019/3時
    点最新バージョンが305)に分岐し、開
    発が進んでいく

    View full-size slide

  13. まとめ
    ● SmartNewsでは、EMRとS3を使用したCloud-Nativeなデータ処理基盤を、
    Hive/Prestoを活用することで実現している
    ● Hiveを中心としたETL処理により、エンジニア以外もロジックの実装に参加で
    きるようになった
    ● Prestoを活用することで、社内の様々なデータをSQLによって集計し、分析
    できるようになった
    ● transientなクラスターを活用するなど、メンテナンスコストを下げることを意識
    し、それぞれのチームごとのOwnershipを持って開発を進めることができる

    View full-size slide