Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
redash patche at dmm
tannai
September 03, 2019
Technology
0
530
redash patche at dmm
tannai
September 03, 2019
Tweet
Share
More Decks by tannai
See All by tannai
akibago-2018-10-30
yuukigoodman
0
56
serverless-design-and-streaming-date-processing-service
yuukigoodman
0
630
alexa-changes-development-process
yuukigoodman
0
1.1k
VUIとAlexaによるちょっと未来の体験の話2
yuukigoodman
0
590
regrowth2016alexa
yuukigoodman
0
1k
Rails App Deployment with CodeDeploy
yuukigoodman
0
1.1k
cognito-userpools-in-production
yuukigoodman
4
7.5k
aws-lambda-in-practice
yuukigoodman
2
1.5k
serverless-from-today
yuukigoodman
2
1.7k
Other Decks in Technology
See All in Technology
UEでPLATEAU触ってみた
41h0_shiho
0
160
Kaggleシミュレーションコンペの動向
nagiss
0
270
AWS Cloud Forensics & Incident Response
e11i0t_4lders0n
0
380
NGINXENG JP#2 - 3-NGINX Plus・プロダクトのアップデート
hiropo20
0
250
イ良い日ンマを作る(USBストレージ容量偽装の手法) / USB Storage Capacity Faking Techniques
shutingrz
0
220
もし本番ネットワークをまるごと仮想環境に”コピー”できたらうれしいですか? / janog51
corestate55
0
380
Deep dive in Reserved Instance ~脳死推奨量購入からの脱却~
kzkmaeda
0
540
証明書って何だっけ? 〜AWSの中間CA移行に備える〜
minorun365
3
2.1k
CUEとKubernetesカスタムオペレータを用いた新しいネットワークコントローラをつくってみた
hrk091
1
290
インフラ技術基礎勉強会 開催概要
toru_kubota
0
170
Oracle Transaction Manager for Microservices Free 22.3 製品概要
oracle4engineer
PRO
5
110
Deep Neural Networkの共同学習
hf149
0
310
Featured
See All Featured
The Cult of Friendly URLs
andyhume
69
5.1k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
175
9.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
22
1.7k
GraphQLとの向き合い方2022年版
quramy
20
9.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
32
1.9k
The Brand Is Dead. Long Live the Brand.
mthomps
48
2.9k
Product Roadmaps are Hard
iamctodd
38
7.7k
How GitHub (no longer) Works
holman
298
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Web Components: a chance to create the future
zenorocha
304
40k
Visualization
eitanlees
128
12k
Rails Girls Zürich Keynote
gr2m
87
12k
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 おしまい