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

GPUを活用したデータベース 「爆速DB」で位置情報も 爆速検索 / bakusoku_db_...

sakaik
September 18, 2023

GPUを活用したデータベース 「爆速DB」で位置情報も 爆速検索 / bakusoku_db_powerd_by_pgstrom_at_foss4g_fukui

2023/09/18 福井市で開催された「FOSS4G Japan @ FUKUI」での、日本仮想化技術株式会社の発表枠『GPUを活用したデータベース「爆速DB」で位置情報も爆速検索』の発表資料です。
元のプレゼン資料にはデモ動画が2枚含まれていましたが、このサイトでは動画が見られないかもしれません。

sakaik

September 18, 2023
Tweet

More Decks by sakaik

Other Decks in Technology

Transcript

  1. データベースの処理 • 普通は CPUを使用して処理 • 最近はAIなどでも話題の「GPU」を使うと超っ速になる • →これが今日紹介する PG-Strom CPUの例

    i7-12700K 12core 20threads GPUの例 RTX3080 Cuda core 8960 ※PG-Stromの運用ではよりハイスペックな A100やH100などのGPUの利用をお勧めして います
  2. どれくらい高速? • 簡単な集計での差を紹介 A) SELECT COUNT(*) FROM %TABLE% WHERE atype='PushEvent';

    17.365 20.522 2.078 1.792 0 5 10 15 20 25 クエリA(=) クエリB(IN) PostgreSQL vs PG-Strom PostgreSQL PG-Strom+Arrow 0.594 4.149 18.936 2.294 2.346 2.332 0 5 10 15 20 クエリC クエリD クエリE PostgreSQL vs PG-Strom PostgreSQL PG-Strom+Arrow C) SELECT atype, COUNT(*) cnt FROM %TABLE% WHERE '2023-02-02 00:00:00'<= created_at AND created_at < '2023-02-03 00:00:00' GROUP BY atype D) '2023-02-02 00:00:00'~'2023-02-09 00:00:00' E) '2023-02-01 00:00:00'~'2023-03-01 00:00:00' B) SELECT COUNT(*) FROM %TABLE% WHERE atype IN('PushEvent', 'PullRequestEvent'); (秒) (秒)
  3. DEMO1 SELECT p.gid, p.x, p.y FROM tdfk j, geopoint p

    WHERE ST_Contains(j.geom, ST_SetSRID(ST_MakePoint(x,y), 4326)) AND j.n03_004 like '新宿区' 全国に散らばった 1000万件のPOINT 自治体界のポリゴン データ 新宿区のポリゴンを 使用して、そのエリ ア内に含まれている POINTを検索
  4. SELECT n03_001 || n03_004, COUNT(*) cnt FROM tdfk j, geopoint

    p WHERE ST_Contains(j.geom, ST_SetSRID(ST_MakePoint(x,y), 4326)) AND n03_001 LIKE '静岡県' GROUP BY n03_001, n03_004 ORDER BY COUNT(*) DESC DEMO2 全国に散らばった 1000万件のPOINT 自治体界のポリゴン データ 静岡県のポリゴンを 使用して、そのエリ ア内に含まれている 市区町村ごとの POINT数を集計