Slide 1

Slide 1 text

GPUを活用したデータベース 「爆速DB」で位置情報も 爆速検索 2023/09/18 FOSS4G Japan@Fukui 日本仮想化技術株式会社 坂井 恵

Slide 2

Slide 2 text

自己紹介 • 坂井 恵( @sakaik ) • 今日の会社:日本仮想化技術 株式会社 その他活動 • 日本MySQLユーザ会 副代表 • OSGeo日本支部 運営委員

Slide 3

Slide 3 text

今日の話 時間少ないので細かい話はできませんが • こんなもんがあるんだ へー って思って楽しんでほしい • 面白いと思ったら「いろんな人に伝えて欲しい、紹介してほし い」

Slide 4

Slide 4 text

要するに、今日の話は • データベース(RDBMS)の話です。 • 大量の位置情報データやそれ以外のデータを管理するソフト • OracleとかMySQLとかPostgreSQLとか

Slide 5

Slide 5 text

データベースの処理 • 普通は CPUを使用して処理 • 最近はAIなどでも話題の「GPU」を使うと超っ速になる • →これが今日紹介する PG-Strom CPUの例 i7-12700K 12core 20threads GPUの例 RTX3080 Cuda core 8960 ※PG-Stromの運用ではよりハイスペックな A100やH100などのGPUの利用をお勧めして います

Slide 6

Slide 6 text

PG-Strom • GPUのパワーを使って高速処理を実現 • もう少し細かい話すると、ディスクからメモリへの転送とかを含めて「超 高速」に処理を行えるよう工夫を凝らしまくったもの。 • PostgreSQLのエクステンション。つまり使い勝手はPostgreSQL そのもの • Apache Arrowファイルを使うと超っ速になるケースも • HeteroDBさんが開発 • 日本仮想化技術株式会社が「爆速DB」としてアプライアンス提供

Slide 7

Slide 7 text

どれくらい高速? • 簡単な集計での差を紹介 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'); (秒) (秒)

Slide 8

Slide 8 text

PG-Stromは 地理情報も高速 • あるエリアに居るPOINTデータを抽出 • あるPOINTから一定範囲に居るPOINTデータを抽出 etc などを、非常に高速に実行!

Slide 9

Slide 9 text

PG-Stromは地理情報も高速 デモ動画 • 日本全国のエリアに散らばった 1000万件のPOINTデータ • 自治体境界を示すポリゴンに含ま れるPOINTを抽出 単純な抽出 と 集計処理 をお見せします

Slide 10

Slide 10 text

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を検索

Slide 11

Slide 11 text

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数を集計

Slide 12

Slide 12 text

今日覚えてほしいこと • GPUパワーを活用したデータベース(RDBMS)がある • 位置情報の検索もGPUパワーで高速! • 日本仮想化技術(株) 「爆速DB」 超高速データ分析基盤 爆速DB Powered by PG-Strom 紹介ページ https://virtualtech.jp/bakusokudb/

Slide 13

Slide 13 text

今日覚えてほしいこと • GPUパワーを活用したデータベース(RDBMS)がある • 位置情報の検索もGPUパワーで高速! • 日本仮想化技術(株) 「爆速DB」 超高速データ分析基盤 爆速DB Powered by PG-Strom 紹介ページ https://virtualtech.jp/bakusokudb/ GPUパワーで 位置情報検索も 爆速DB