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

redash patche at dmm

tannai
September 03, 2019

redash patche at dmm

tannai

September 03, 2019
Tweet

More Decks by tannai

Other Decks in Technology

Transcript

  1. © DMM.com
    DMM.comにおける
    Redashパッチ事情
    プラットフォーム事業本部ビッグデータ部DREチーム 丹内優紀
    1

    View full-size slide

  2. © DMM.com
    • 丹内優紀
    • 2018年11月 中途入社
    • ビッグデータ部DREチーム所属
    • データ分析基盤の運用をしてます
    • Redashの運用もやってます!
    2
    自己紹介

    View full-size slide

  3. © DMM.com
    DMM.comのRedash運用状況
    • 社員1527人中、アカウント保有者547人
    • クエリ実行者 266人
    4

    View full-size slide

  4. © DMM.com
    DMM.comのRedash運用状況
    • ダッシュボード数 884
    • クエリ数 12370
    5

    View full-size slide

  5. © DMM.com
    DMM.comのRedash運用状況
    • ホスト情報
    • CPU 8コア
    • メモリ 64GB
    • disk 60GB
    • Docker/Portainerを使用
    • Redash v4
    6

    View full-size slide

  6. © DMM.com 7
    _人人人人人人_
    > Redash v4 <
     ̄YYYYYY ̄

    View full-size slide

  7. © DMM.com
    アップデートを阻むもの、それは・・・
    パッチ!
    8

    View full-size slide

  8. © DMM.com
    本日の発表の趣旨
    Redashの利用が活発になると、新しい要求が出てきます。
    環境が急激に変化するDMM.comでは、パッチを当てることで幾つかの要
    求に応えてきました。
    パッチは必ずしも良いと言えるものではありません。
    パッチの裏にある要求を持ち帰って頂けると幸いです。
    9

    View full-size slide

  9. © DMM.com
    データソースの名前やIDを
    コメント出力するパッチ
    10

    View full-size slide

  10. その数だけ事業部が!!

    View full-size slide

  11. © DMM.com
    背景
    • Redashで事業部ごとのクエリ実行状況を把握したい。
    • 事業部ごとの消費リソース(特にAthena代)を知りたい。
    => 分析環境の管理業務を容易に!
    13

    View full-size slide

  12. © DMM.com
    パッチの内容(バックエンド)
    コメント出力部分に追加
    14

    View full-size slide

  13. © DMM.com
    パッチの結果
    クエリにコメントが出力された!
    15

    View full-size slide

  14. © DMM.com
    パッチの結果
    部署ごとの利用金額ダッシュボードができた!
    16

    View full-size slide

  15. © DMM.com
    クエリ実行時に
    partition keyを強制するパッチ
    17

    View full-size slide

  16. © DMM.com
    背景
    データ増えるけどリソース増えないので
    パーティション指定してほしい!
    18

    View full-size slide

  17. © DMM.com
    パッチの内容
    クエリをパースして正規表現で探す
    19

    View full-size slide

  18. © DMM.com
    パッチの結果
    where句で Partition Key 必須になった!
    (ついでにlimit句も必須にした)
    20

    View full-size slide

  19. © DMM.com
    パラメータ付きクエリを
    viewerも閲覧できるパッチ
    21

    View full-size slide

  20. © DMM.com
    背景
    • 閲覧権限では、「クエリを編集して実行・保存」ができない。
    • 「Fork」もできない
    • 「パラメータ付きクエリ」はダッシュボードの閲覧すらできない。
    => 閲覧したい!
    22

    View full-size slide

  21. © DMM.com
    パッチの内容(フロントエンド)
    23
    閲覧権限でもクエリ実行ボタンを押せるようにする

    View full-size slide

  22. © DMM.com
    パッチの内容(フロントエンド)
    閲覧権限ではforkボタンを表示しない
    24

    View full-size slide

  23. © DMM.com
    パッチの内容(バックエンド)
    バックエンドで弾かない
    25

    View full-size slide

  24. © DMM.com
    パッチの結果
    26

    View full-size slide

  25. © DMM.com
    人によってテーブルを
    出し分けるパッチ
    27

    View full-size slide

  26. © DMM.com
    背景
    おかねのデータは限られた人だけ見れるようにしたい!
    28

    View full-size slide

  27. © DMM.com
    背景補足
    今回は横断部署の分析環境についてお話しています。
    分析環境から触れられるDBには個人情報が入っていません。
    従って、全ての分析者にデータを公開する方針で運営しています。
    一方で事業部が独立していて、お金に関わるデータを公開しにくい
    場合もあります。
    できるだけ横断の分析環境を使って欲しいので、
    必要なセキュリティを実装することでデータを入れてもらいます。
    29

    View full-size slide

  28. © DMM.com
    パッチの前に
    • データ基盤のセキュリティは次のような観点で考えられる。
    • 認証:アクセスする人物の確認
    • 認可:アクセスする権限の確認
    • 監査:アクセスした事実の記録
    • RedashのGoogleログイン機能で認証を実現する
    • データソース毎の機能で認可を実現する
    30

    View full-size slide

  29. © DMM.com
    パッチの内容
    31
    Prestoへの認可

    View full-size slide

  30. © DMM.com
    パッチの内容(オンプレPresto)
    • Prestoにテーブルセキュリティ設定を追加
    • Redashにスキーマ閲覧制限設定を追加
    これらを hive-security.json ファイルで実現する
    32

    View full-size slide

  31. © DMM.com
    パッチの内容(オンプレPresto)
    • Prestoはhiveテーブルを参照する設定にしている。
    • その設定は hive-security.json ファイルで行っている。
    • 同じファイルをRedashのpyhiveにもパッチ。
    33

    View full-size slide

  32. © DMM.com 34
    これがずっと続く
    パッチの内容(オンプレPresto)

    View full-size slide

  33. © DMM.com
    パッチの内容
    35
    Athenaへの認可

    View full-size slide

  34. © DMM.com
    パッチの内容(Athena)
    IAMでアクセス可能なテーブルを制御する
    ※AWS Glueを併用しています
    36

    View full-size slide

  35. © DMM.com
    パッチの内容(Athena)
    部署ごとにできるIAM UserとPolicyの管理が必要
    37

    View full-size slide

  36. © DMM.com
    パッチを外すには
    38

    View full-size slide

  37. © DMM.com
    対応方針
    • PRを送る
    • 諦める(特にUIが関わるもの)
    • Redash以外で実現する
    39

    View full-size slide

  38. © DMM.com
    Redash以外でアクセス制御を実現する方法
    http://pivotalhd.docs.pivotal.io/docs/knox-gateway-administration-guide.html
    40
    Hadoopにセキュリティ設定を寄せる

    View full-size slide

  39. © DMM.com
    教訓とまとめ
    41

    View full-size slide

  40. © DMM.com
    教訓
    • パッチは最後の手段にする。
    • 要求を見つけて長期的な計画のもと利用環境を整備する。
    • 運用コストをかけてまで実現したいことなのかを考える。
    42

    View full-size slide

  41. © DMM.com
    まとめ
    • 様々な立場の人がRedashを使うと、新しい要求が出てきます。
    • Redashに限らず、パッチを含め状況の変化に対応しつつ、
    システムを運用しやすいものにしていきましょう!
    43

    View full-size slide

  42. © DMM.com
    最後に
    そんなDMMでは一緒に基盤を良くし
    てくれる人を探しています!
    https://dmm-corp.com/recruit/359
    もちろん分析してくれる人も、
    他の職種も募集中です!
    44

    View full-size slide

  43. © DMM.com
    おしまい

    View full-size slide