Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20221022-Kaigi_on_Rails_LT.pdf
Search
negocia, Inc.
November 01, 2022
28
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20221022-Kaigi_on_Rails_LT.pdf
negocia, Inc.
November 01, 2022
More Decks by negocia, Inc.
See All by negocia, Inc.
negocia株式会社_中途採用向け説明資料/2022.12
negocia
0
3.2k
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
7k
Deep Space Network (abreviated)
tonyrice
0
370
Mind Mapping
helmedeiros
1
400
Bash Introduction
62gerente
615
220k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Marketing to machines
jonoalderson
1
5.9k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Building an army of robots
kneath
307
47k
We Have a Design System, Now What?
morganepeng
55
8.4k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Transcript
Realize marketing that works with tech Copyright © negocia 数億レコードあるテーブルのDBマイグレーション
negocia株式会社 Kaigi on Rails スポンサーブース 2022年10月22日
Copyright © negocia corporate philosophy|2 pp self • id: kunitoo
• name: Kunihiko Ito • livein: Toyama • role: programmer and scrum master
None
Copyright © negocia corporate philosophy|4 Vision/Mission 「うれしい広告」 の実現へ バナー広告や動画広告などのデジタル広告は、時に「煩 わしい」「鬱陶しい」存在として語られることが多々あ
ります。 広告自体は決して悪ではなく、個人の嗜好やコンディ ションに即したものが表示されれば、それは新たな 気づきとなる存在であるはずです。 我々はAIを中心としたテクノロジーを駆使し、最適化 を究極まで追求。受け手が必要だと思う広告のみが届く 世界を実現することで、広告との出会いを良い体験に変 化させる、そのようなプロダクト提供を実現していきま す。 OUR VISION.
Copyright © negocia corporate philosophy|5 Vision/Mission Now Vision 「広告って鬱陶しい」と思われる世界観から、 「こんないい商品あるんだ!」「こんな便利なサービスあったんだ!」と
消費者が広告を有益な情報源として活用するのが 当たり前の世界観への変容を「うれしい広告」と表現しています。 AD AD うれしい広告とは?
Copyright © negocia corporate philosophy|6 Commerce Flow 国内初、Amazon広告に特化した AI広告運用ツールです。 AIが業務の自動化や広告効果の向上を
サポートします。 Commerce Flow コマースフロー ※2020年10月1日現在 ※ 1. AIによる広告運用業務自動化(工数削減) 2. AIによる広告の最適化(広告効果向上) 3. 広告運用のプロに向けた、洗練されたUI (使いやすさ)
Copyright © negocia corporate philosophy|7 やりたいこと • DB: Amazon Aurora
MySQL • table: daily_keywords(広告の実績値) ◦ レコード数は数億 • db:migrate でカラムの追加、削除、index 追加を実施したい • 実施すると数時間(数日?)実行が完了しない • 具体的にはbidding_price(入札額)を保存しているカラムを削除した かった ◦ チームがドメイン知識を獲得したことにより、このテーブルにこの 情報があるのはデータのライフサイクルとして間違っていること に気付いたため
Copyright © negocia corporate philosophy|8 DDL による影響 まったく影響のないもの(一瞬で終わる) • index
の削除 • index 名の変更 • カラム名の変更 • テーブル名の変更 オンラインで実行でき、更新をブロックしないもの データ量に応じて実行時間が長くなる可能性があり、レプリケーション遅延を引き起す可能性があるもの • カラム追加・削除 • カラム の NULL 可・不可の設定 • セカンダリインデックスの追加
Copyright © negocia corporate philosophy|9 移行手順 1. カラムがない前提のアプリケーションをデプロイする 2. 該当テーブル構成から削除したいカラムを除いたテーブルを作成す
る 3. 該当テーブルのレコードを移行後テーブルにコピーするスクリプトを 実行する 4. 旧テーブル名をリネーム、新テーブルを旧テーブル名にリネームす る 5. 旧テーブルのindexを削除する 6. 旧テーブルのデータを削除するスクリプトを実行する 7. 旧テーブルを削除する
Copyright © negocia corporate philosophy|10 まとめ • 数億レコードが入ったテーブルは気がるにマイグレートできない • いくつかのステップを踏む必要がある
• 今回は実績データは定期的に取得し、かつ遡ってサービスから取得 できるため、データの整合性はその取得にたよった • データをコピーしテーブルをリネームすることで新しいテーブルに入 れ替えを行った • 大変だが構造のリファクタリングは大切
Copyright © negocia corporate philosophy|11 We’re Hiring!! 「うれしい広告」の実現へ 検 索
negocia 採用
Any questions?