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-update-v4-to-v8
Search
ytannai
May 28, 2021
1
280
redash-update-v4-to-v8
ytannai
May 28, 2021
Tweet
Share
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Writing Fast Ruby
sferik
627
61k
Done Done
chrislema
181
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Automating Front-end Workflow
addyosmani
1366
200k
Designing for Performance
lara
604
68k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Building Your Own Lightsaber
phodgson
103
6.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Transcript
Redash v4をv8に アップデートした話 丹内優紀 合同会社DMM.com データ本部データインフラ部データオペレーショングループ BIチーム Redash Meetup v7.0.0
2021/05/21
• 丹内優紀(たんない ゆうき) • 2018年11月 中途入社 • データ本部BIチームリーダー 自己紹介
None
None
None
DMM.comのRedash運用状況 6
アップデート計画の概要 どのように進めたか 7
8 事前にオンプレからGKEに移行 Before After
• Python 3に追従したい • Python2のサポートが終了し、Redashもv9でPython3に変わる • Pythonデータソースで使うpipモジュールを更新できるようにしたい • Redashの新機能を使いたい •
Athena Workgroup • ヒートマップ、タグ • 柔軟なスケジュール設定 • パッチ関連の問題を解決したい 9 Redash v8に更新したかった理由
パッチについて • ファイルを丸ごとコピーしていた • パスの変更に追従しにくい、差分を追いにくい
例: データソース情報コメントパッチ 11 • Redashで事業部ごとのクエリ実行状況を把握した い。 • 事業部ごとの消費リソース(特にAthena代)を知りた い。 =>
分析環境の管理業務を容易に!
例: Partition Key強制パッチ データスキャン量を削減するため
アップデートプロジェクトに対する要求 • URLを変えないでアップデートしたい。 • 社内のSlackやWikiにRedashのURLが多数存在してる。 • 一般的な手順通り、DB migrationをするIn-Place Upgrade方式。 •
少ない工数でミスなくアップデートしたい • フルタイム1名(自分)、割り込み作業あり • 並行稼働期間でベータ版を提供し、利用者全員を巻き込む
プロジェクト概要 • バージョンを4から8に一気に上げる • v8のworkgroup機能を使うことでパッチを削減する • v4からv8にELTを毎日実施し、並行稼働期間を設ける。 • パッチ方式をpatchfile方式に変更する。
プロジェクトの流れ • v8環境構築(ローカル、ステージング) • DB同期 • パッチ移植作業 • Private Beta
• 本番環境構築 • 並行稼働前半: Public Beta • 並行稼働後半: GA
v8環境構築 16
サーバー環境構築 • 初期からCI/CD環境を構築。 • DBの内容を日次で同期するバッチを実装 • psqlコマンドでDBをリセット • CloudSQL機能でエクスポート(.csv.gz) •
CloudSQL機能でインポート • Redash v8のマイグレーションを実行
パッチの移植作業 • スキャン量を制限するためのパッチは、Redash v8から使えるAthena Workgroup機能で代替することで削減した。 • そのほかのパッチはv8用に修正して移植した。
REDASH_SECRET_KEY問題について • v4からv8に上げる際、複数の環境変数に同じ値を設定する • REDASH_COOKIE_SECRET • REDASH_SECRET_KEY • バグのため、両方設定されてないとデータソースが使えない •
長くなるので詳細は懇親会にて
ベータ版提供 20
ベータテスト • パッチ移植後にベータテストを行った。 • 合計で6件の不具合が見つかった。 • やってよかった!
ベータテスト • ダッシュボード検索でエラー • Known Issueで、masterブランチにはパッチがマージ済み • バックポートした。 • https://github.com/getredash/redash/pull/4804
• Redash Metadataをいじる一部のPython DSでエラー • スクリプトを修正した。
プロジェクトの総括 23
振り返り • 並行稼働で不具合が見つかったのでよかった。 • マイグレーションも勉強になった。 • Redash読む機会が増えた。 • 不明点を棚卸しできて良い。 •
パッチのキャッチアップになる
アップデート後に運用してみて • 未解決のIssueに当たることが増えた。 • 本体に送れそうなPRのアイデアや修正点がいくつか出てきた。 • チームメンバー二人が送り、1つはマージされました • https://github.com/getredash/redash/pull/5447 •
Redashの表示がとても早くなって、DB負荷が減った。
プロジェクトのまとめと今後の展望 • Redashに貢献したい • v9早期導入 • 本体へのPR • ナレッジシェア •
SQLが書きやすい環境を作ってデータ利用環境を改善したい • データマートの整備、拡充 • スニペットやUDFで複雑なクエリを改善
データエンジニア採用中! https://dmm-corp.com/recruit/engineer/173/
None