Upgrade to Pro — share decks privately, control downloads, hide ads and more …

フォルシアにおけるPostgreSQLの活用

 フォルシアにおけるPostgreSQLの活用

「FORCIA Meetup #4 高速検索を支えるPostgreSQLのノウハウ」の資料です

forcia_dev_pr

February 21, 2022
Tweet

More Decks by forcia_dev_pr

Other Decks in Programming

Transcript

  1. 自己紹介 • 高橋 優樹 (Yuki Takahashi) ◦ 新卒3年目 ◦ 旅行会社向け

    商品登録システムの開発 ◦ 技術広報チームリーダー • マイブーム ◦ サウナ ◦ スノーボード 2
  2. 7 1. RDBならではの柔軟なテーブル設計 ホテル
 客室
 プラン
 料金
 在庫
 販売単位
 ×


    365日
 現地素材
 飛行機
 新幹線
 その他素材
 例) 旅行会社が扱う素材のデータ 
 ×

  3. 8 1. RDBならではの柔軟なテーブル設計 ホテル
 客室
 プラン
 料金
 在庫
 販売単位
 ×


    365日
 現地素材
 飛行機
 新幹線
 その他素材
 契約情報
 販売停止情報
 その他情報
 例) 旅行会社が扱う素材のデータ 
 ×
 ×

  4. 9 1. RDBならではの柔軟なテーブル設計 ホテル
 客室
 プラン
 料金
 在庫
 販売単位
 ×


    365日
 現地素材
 飛行機
 新幹線
 その他素材
 契約情報
 販売停止情報
 その他情報
 例) 旅行会社が扱う素材のデータ 
 ×
 ×
 販売可能な条件の判定が非常に複雑 → 複雑な関係を表現できるRDBが適している
  5. 12 c言語関数活用の例 • c言語で関数を実装すると、組み込み関数を組み合わせて処理を 実行するより高速に実行できる場合がある
 • テーブルをあえて正規化せず、データを配列で持たせる
 ◦ 組み込み関数では配列の操作が不十分なので、c言語によっ て拡張しています


    ◦ 一般的なセオリーからは外れますが、社内に蓄積されたノウ ハウやライブラリによって実現しています
 • 顧客ごとの検索ロジックをc言語関数にまとめることで、処理の見 通しをよくし、処理を高速化する

  6. 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
  7. EOF