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
フォルシアにおけるPostgreSQLの活用
Search
forcia_dev_pr
February 21, 2022
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
フォルシアにおけるPostgreSQLの活用
「FORCIA Meetup #4 高速検索を支えるPostgreSQLのノウハウ」の資料です
forcia_dev_pr
February 21, 2022
Transcript
17 slides
フォルシアにおけるPostgreSQLの活用 高橋 優樹 2022/02/15 FORCIA Meetup #4
自己紹介 • 高橋 優樹 (Yuki Takahashi) ◦ 新卒3年目 ◦ 旅行会社向け
商品登録システムの開発 ◦ 技術広報チームリーダー • マイブーム ◦ サウナ ◦ スノーボード 2
フォルシアのメインDBはPostgreSQLです 3
4 フォルシアと検索 https://www.forcia.com/technology/ フォルシアは「膨大で複雑なデータ」の高速検索 が強みです。 ・属性による絞り込み検索 ・全文検索 ・ファセットカウント
・複雑なデータ間の関係を考慮した検索 これらの実現にPostgreSQLは必要不可欠
5 PostgreSQLのここがいいよ3選 RDBならではの柔軟なテーブル設計 複雑なデータ間の関係を表現可能 c言語による関数の拡張が可能 組み込み関数では実現できない処理を高速に実行可能 OSSなので無料で利用可能 クラウドでも利用しやすい
6 1. RDBならではの柔軟なテーブル設計 ホテル 客室 プラン 料金 在庫 販売単位 ×
365日 例) 旅行会社が扱う素材のデータ
7 1. RDBならではの柔軟なテーブル設計 ホテル 客室 プラン 料金 在庫 販売単位 ×
365日 現地素材 飛行機 新幹線 その他素材 例) 旅行会社が扱う素材のデータ ×
8 1. RDBならではの柔軟なテーブル設計 ホテル 客室 プラン 料金 在庫 販売単位 ×
365日 現地素材 飛行機 新幹線 その他素材 契約情報 販売停止情報 その他情報 例) 旅行会社が扱う素材のデータ × ×
9 1. RDBならではの柔軟なテーブル設計 ホテル 客室 プラン 料金 在庫 販売単位 ×
365日 現地素材 飛行機 新幹線 その他素材 契約情報 販売停止情報 その他情報 例) 旅行会社が扱う素材のデータ × × 販売可能な条件の判定が非常に複雑 → 複雑な関係を表現できるRDBが適している
10 https://www.postgresql.jp/document/13/html/xfunc.html 2.c言語による関数の拡張
11 2.c言語による関数の拡張 登録 C言語で関数を実装 soファイルを元に、PostgreSQL側で 関数を登録 SQLで実行可能 コンパイル plus_one.so
12 c言語関数活用の例 • c言語で関数を実装すると、組み込み関数を組み合わせて処理を 実行するより高速に実行できる場合がある • テーブルをあえて正規化せず、データを配列で持たせる ◦ 組み込み関数では配列の操作が不十分なので、c言語によっ て拡張しています
◦ 一般的なセオリーからは外れますが、社内に蓄積されたノウ ハウやライブラリによって実現しています • 顧客ごとの検索ロジックをc言語関数にまとめることで、処理の見 通しをよくし、処理を高速化する
3. OSSなので無料で利用可能 • コストが抑えられるため、顧客への導入障壁も低い • クラウドでのスケーラブルな構成にも向いている ◦ Kubernetesと組み合わせての利用例もあります • 更新も活発
今後の展望 14
15 https://www.forcia.com/blog/001560.html 拡張関数をRustで実装 → c言語のメンテナンス性の低さをカバー 今後の展望 RDS × plv8
→ AWS RDSがplv8をサポート! https://docs.aws.amazon.com/ja_jp/ AmazonRDS/latest/UserGuide/CHA P_PostgreSQL.html
続きは残りのLTで! 16
EOF
More Decks by forcia_dev_pr
See All by forcia_dev_pr
第9回ゆるふわオンサイト_解説スライド.pdf
forcia_dev_pr
0
93
"書く文化"を仕組みで育てる──フォルシアの技術ブログ継続戦略
forcia_dev_pr
1
320
新しいおもちゃを見つけたい私がやっている情報収集
forcia_dev_pr
2
510
「Pythonの環境構築について」と記事作成で意識したこと
forcia_dev_pr
1
210
Neovim で VS Code みたいにコーディングする
forcia_dev_pr
1
250
なぜ・どうやって・何を書く? 〜技術記事を書く習慣の作り方〜
forcia_dev_pr
1
250
第8回ゆるふわオンサイト 解説スライド
forcia_dev_pr
0
300
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
330
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
330
Other Decks in Programming
See All in Programming
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
250
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.3k
作れるエンジニアから、価値を届けるエンジニアへ
ryunakayama
1
280
はじめてのPLATEAU
nokonoko1203
1
650
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
230
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
130
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
750
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
370
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
320
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
699
190k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
690
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
900
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
300
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Paper Plane
katiecoart
PRO
6
55k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
480
Tell your own story through comics
letsgokoyo
1
1.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k