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
20221022-Kaigi_on_Rails_LT.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
negocia, Inc.
November 01, 2022
0
20
20221022-Kaigi_on_Rails_LT.pdf
negocia, Inc.
November 01, 2022
Tweet
Share
More Decks by negocia, Inc.
See All by negocia, Inc.
negocia株式会社_中途採用向け説明資料/2022.12
negocia
0
3.2k
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
140
Leo the Paperboy
mayatellez
4
1.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
54
Building Applications with DynamoDB
mza
96
6.9k
Raft: Consensus for Rubyists
vanstee
141
7.3k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
70
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?