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
310
redash-update-v4-to-v8
ytannai
May 28, 2021
Tweet
Share
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
310
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
84
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Code Review Best Practice
trishagee
74
20k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
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