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
290
redash-update-v4-to-v8
ytannai
May 28, 2021
Tweet
Share
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Fireside Chat
paigeccino
37
3.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
RailsConf 2023
tenderlove
30
1.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
640
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Unsuck your backbone
ammeep
670
57k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Code Review Best Practice
trishagee
67
18k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Writing Fast Ruby
sferik
628
61k
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