redash-update-v4-to-v8
by
ytannai
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Redash v4をv8に アップデートした話 丹内優紀 合同会社DMM.com データ本部データインフラ部データオペレーショングループ BIチーム Redash Meetup v7.0.0 2021/05/21
Slide 2
Slide 2 text
• 丹内優紀(たんない ゆうき) • 2018年11月 中途入社 • データ本部BIチームリーダー 自己紹介
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
DMM.comのRedash運用状況 6
Slide 7
Slide 7 text
アップデート計画の概要 どのように進めたか 7
Slide 8
Slide 8 text
8 事前にオンプレからGKEに移行 Before After
Slide 9
Slide 9 text
• Python 3に追従したい • Python2のサポートが終了し、Redashもv9でPython3に変わる • Pythonデータソースで使うpipモジュールを更新できるようにしたい • Redashの新機能を使いたい • Athena Workgroup • ヒートマップ、タグ • 柔軟なスケジュール設定 • パッチ関連の問題を解決したい 9 Redash v8に更新したかった理由
Slide 10
Slide 10 text
パッチについて • ファイルを丸ごとコピーしていた • パスの変更に追従しにくい、差分を追いにくい
Slide 11
Slide 11 text
例: データソース情報コメントパッチ 11 • Redashで事業部ごとのクエリ実行状況を把握した い。 • 事業部ごとの消費リソース(特にAthena代)を知りた い。 => 分析環境の管理業務を容易に!
Slide 12
Slide 12 text
例: Partition Key強制パッチ データスキャン量を削減するため
Slide 13
Slide 13 text
アップデートプロジェクトに対する要求 • URLを変えないでアップデートしたい。 • 社内のSlackやWikiにRedashのURLが多数存在してる。 • 一般的な手順通り、DB migrationをするIn-Place Upgrade方式。 • 少ない工数でミスなくアップデートしたい • フルタイム1名(自分)、割り込み作業あり • 並行稼働期間でベータ版を提供し、利用者全員を巻き込む
Slide 14
Slide 14 text
プロジェクト概要 • バージョンを4から8に一気に上げる • v8のworkgroup機能を使うことでパッチを削減する • v4からv8にELTを毎日実施し、並行稼働期間を設ける。 • パッチ方式をpatchfile方式に変更する。
Slide 15
Slide 15 text
プロジェクトの流れ • v8環境構築(ローカル、ステージング) • DB同期 • パッチ移植作業 • Private Beta • 本番環境構築 • 並行稼働前半: Public Beta • 並行稼働後半: GA
Slide 16
Slide 16 text
v8環境構築 16
Slide 17
Slide 17 text
サーバー環境構築 • 初期からCI/CD環境を構築。 • DBの内容を日次で同期するバッチを実装 • psqlコマンドでDBをリセット • CloudSQL機能でエクスポート(.csv.gz) • CloudSQL機能でインポート • Redash v8のマイグレーションを実行
Slide 18
Slide 18 text
パッチの移植作業 • スキャン量を制限するためのパッチは、Redash v8から使えるAthena Workgroup機能で代替することで削減した。 • そのほかのパッチはv8用に修正して移植した。
Slide 19
Slide 19 text
REDASH_SECRET_KEY問題について • v4からv8に上げる際、複数の環境変数に同じ値を設定する • REDASH_COOKIE_SECRET • REDASH_SECRET_KEY • バグのため、両方設定されてないとデータソースが使えない • 長くなるので詳細は懇親会にて
Slide 20
Slide 20 text
ベータ版提供 20
Slide 21
Slide 21 text
ベータテスト • パッチ移植後にベータテストを行った。 • 合計で6件の不具合が見つかった。 • やってよかった!
Slide 22
Slide 22 text
ベータテスト • ダッシュボード検索でエラー • Known Issueで、masterブランチにはパッチがマージ済み • バックポートした。 • https://github.com/getredash/redash/pull/4804 • Redash Metadataをいじる一部のPython DSでエラー • スクリプトを修正した。
Slide 23
Slide 23 text
プロジェクトの総括 23
Slide 24
Slide 24 text
振り返り • 並行稼働で不具合が見つかったのでよかった。 • マイグレーションも勉強になった。 • Redash読む機会が増えた。 • 不明点を棚卸しできて良い。 • パッチのキャッチアップになる
Slide 25
Slide 25 text
アップデート後に運用してみて • 未解決のIssueに当たることが増えた。 • 本体に送れそうなPRのアイデアや修正点がいくつか出てきた。 • チームメンバー二人が送り、1つはマージされました • https://github.com/getredash/redash/pull/5447 • Redashの表示がとても早くなって、DB負荷が減った。
Slide 26
Slide 26 text
プロジェクトのまとめと今後の展望 • Redashに貢献したい • v9早期導入 • 本体へのPR • ナレッジシェア • SQLが書きやすい環境を作ってデータ利用環境を改善したい • データマートの整備、拡充 • スニペットやUDFで複雑なクエリを改善
Slide 27
Slide 27 text
データエンジニア採用中! https://dmm-corp.com/recruit/engineer/173/
Slide 28
Slide 28 text
No content