Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
redash patche at dmm
Search
tannai
September 03, 2019
Technology
0
720
redash patche at dmm
tannai
September 03, 2019
Tweet
Share
More Decks by tannai
See All by tannai
akibago-2018-10-30
yuukigoodman
0
72
serverless-design-and-streaming-date-processing-service
yuukigoodman
0
950
alexa-changes-development-process
yuukigoodman
0
1.5k
VUIとAlexaによるちょっと未来の体験の話2
yuukigoodman
0
840
regrowth2016alexa
yuukigoodman
0
1.2k
Rails App Deployment with CodeDeploy
yuukigoodman
0
1.5k
cognito-userpools-in-production
yuukigoodman
4
8.6k
aws-lambda-in-practice
yuukigoodman
2
2k
serverless-from-today
yuukigoodman
2
2.1k
Other Decks in Technology
See All in Technology
いまさら聞けない ABテスト入門
skmr2348
1
200
ZOZOのAI活用実践〜社内基盤からサービス応用まで〜
zozotech
PRO
0
170
多様な事業ドメインのクリエイターへ 価値を届けるための営みについて
massyuu
0
110
多野優介
tanoyusuke
1
420
「Verify with Wallet API」を アプリに導入するために
hinakko
1
230
非エンジニアのあなたもできる&もうやってる!コンテキストエンジニアリング
findy_eventslides
3
910
実装で解き明かす並行処理の歴史
zozotech
PRO
1
320
AI Agentと MCP Serverで実現する iOSアプリの 自動テスト作成の効率化
spiderplus_cb
0
490
「AI駆動PO」を考えてみる - 作る速さから価値のスループットへ:検査・適応で未来を開発 / AI-driven product owner. scrummat2025
yosuke_nagai
4
580
Pure Goで体験するWasmの未来
askua
1
180
20201008_ファインディ_品質意識を育てる役目は人かAIか___2_.pdf
findy_eventslides
0
120
職種別ミートアップで社内から盛り上げる アウトプット文化の醸成と関係強化/ #DevRelKaigi
nishiuma
2
130
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
580
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Making Projects Easy
brettharned
119
6.4k
Music & Morning Musume
bryan
46
6.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Automating Front-end Workflow
addyosmani
1371
200k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
How to Think Like a Performance Engineer
csswizardry
27
2k
The Cult of Friendly URLs
andyhume
79
6.6k
Transcript
© DMM.com DMM.comにおける Redashパッチ事情 プラットフォーム事業本部ビッグデータ部DREチーム 丹内優紀 1
© DMM.com • 丹内優紀 • 2018年11月 中途入社 • ビッグデータ部DREチーム所属 • データ分析基盤の運用をしてます
• Redashの運用もやってます! 2 自己紹介
None
© DMM.com DMM.comのRedash運用状況 • 社員1527人中、アカウント保有者547人 • クエリ実行者 266人 4
© DMM.com DMM.comのRedash運用状況 • ダッシュボード数 884 • クエリ数 12370 5
© DMM.com DMM.comのRedash運用状況 • ホスト情報 • CPU 8コア • メモリ
64GB • disk 60GB • Docker/Portainerを使用 • Redash v4 6
© DMM.com 7 _人人人人人人_ > Redash v4 <  ̄YYYYYY ̄
© DMM.com アップデートを阻むもの、それは・・・ パッチ! 8
© DMM.com 本日の発表の趣旨 Redashの利用が活発になると、新しい要求が出てきます。 環境が急激に変化するDMM.comでは、パッチを当てることで幾つかの要 求に応えてきました。 パッチは必ずしも良いと言えるものではありません。 パッチの裏にある要求を持ち帰って頂けると幸いです。 9
© DMM.com データソースの名前やIDを コメント出力するパッチ 10
None
その数だけ事業部が!!
© DMM.com 背景 • Redashで事業部ごとのクエリ実行状況を把握したい。 • 事業部ごとの消費リソース(特にAthena代)を知りたい。 => 分析環境の管理業務を容易に! 13
© DMM.com パッチの内容(バックエンド) コメント出力部分に追加 14
© DMM.com パッチの結果 クエリにコメントが出力された! 15
© DMM.com パッチの結果 部署ごとの利用金額ダッシュボードができた! 16
© DMM.com クエリ実行時に partition keyを強制するパッチ 17
© DMM.com 背景 データ増えるけどリソース増えないので パーティション指定してほしい! 18
© DMM.com パッチの内容 クエリをパースして正規表現で探す 19
© DMM.com パッチの結果 where句で Partition Key 必須になった! (ついでにlimit句も必須にした) 20
© DMM.com パラメータ付きクエリを viewerも閲覧できるパッチ 21
© DMM.com 背景 • 閲覧権限では、「クエリを編集して実行・保存」ができない。 • 「Fork」もできない • 「パラメータ付きクエリ」はダッシュボードの閲覧すらできない。 =>
閲覧したい! 22
© DMM.com パッチの内容(フロントエンド) 23 閲覧権限でもクエリ実行ボタンを押せるようにする
© DMM.com パッチの内容(フロントエンド) 閲覧権限ではforkボタンを表示しない 24
© DMM.com パッチの内容(バックエンド) バックエンドで弾かない 25
© DMM.com パッチの結果 26
© DMM.com 人によってテーブルを 出し分けるパッチ 27
© DMM.com 背景 おかねのデータは限られた人だけ見れるようにしたい! 28
© DMM.com 背景補足 今回は横断部署の分析環境についてお話しています。 分析環境から触れられるDBには個人情報が入っていません。 従って、全ての分析者にデータを公開する方針で運営しています。 一方で事業部が独立していて、お金に関わるデータを公開しにくい 場合もあります。 できるだけ横断の分析環境を使って欲しいので、 必要なセキュリティを実装することでデータを入れてもらいます。
29
© DMM.com パッチの前に • データ基盤のセキュリティは次のような観点で考えられる。 • 認証:アクセスする人物の確認 • 認可:アクセスする権限の確認 •
監査:アクセスした事実の記録 • RedashのGoogleログイン機能で認証を実現する • データソース毎の機能で認可を実現する 30
© DMM.com パッチの内容 31 Prestoへの認可
© DMM.com パッチの内容(オンプレPresto) • Prestoにテーブルセキュリティ設定を追加 • Redashにスキーマ閲覧制限設定を追加 これらを hive-security.json ファイルで実現する
32
© DMM.com パッチの内容(オンプレPresto) • Prestoはhiveテーブルを参照する設定にしている。 • その設定は hive-security.json ファイルで行っている。 •
同じファイルをRedashのpyhiveにもパッチ。 33
© DMM.com 34 これがずっと続く パッチの内容(オンプレPresto)
© DMM.com パッチの内容 35 Athenaへの認可
© DMM.com パッチの内容(Athena) IAMでアクセス可能なテーブルを制御する ※AWS Glueを併用しています 36
© DMM.com パッチの内容(Athena) 部署ごとにできるIAM UserとPolicyの管理が必要 37
© DMM.com パッチを外すには 38
© DMM.com 対応方針 • PRを送る • 諦める(特にUIが関わるもの) • Redash以外で実現する 39
© DMM.com Redash以外でアクセス制御を実現する方法 http://pivotalhd.docs.pivotal.io/docs/knox-gateway-administration-guide.html 40 Hadoopにセキュリティ設定を寄せる
© DMM.com 教訓とまとめ 41
© DMM.com 教訓 • パッチは最後の手段にする。 • 要求を見つけて長期的な計画のもと利用環境を整備する。 • 運用コストをかけてまで実現したいことなのかを考える。 42
© DMM.com まとめ • 様々な立場の人がRedashを使うと、新しい要求が出てきます。 • Redashに限らず、パッチを含め状況の変化に対応しつつ、 システムを運用しやすいものにしていきましょう! 43
© DMM.com 最後に そんなDMMでは一緒に基盤を良くし てくれる人を探しています! https://dmm-corp.com/recruit/359 もちろん分析してくれる人も、 他の職種も募集中です! 44
© DMM.com おしまい