3. PG-Stromとは?
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤3
GPU CPU
モデル
NVIDIA
Tesla V100
Intel Xeon
Platinum 8280
世代 Volta Cascade Lake
発表 Q2-2017 Q2-2019
トランジスタ数 21billion 8.0billion
コア数
5120
(simple)
28
(functional)
動作クロック
1.280GHz
~1.380GHz
2.70GHz
~4.00GHz
理論性能値
(FP64)
7 TFLOPS
1.6TFLOPS
(with AVX-512)
RAMサイズ 32GB (HBM2) max 768GB (DDR4)
メモリ帯域 900GB/s 140GB/s
消費電力 250W 205W
製造プロセ
ス
12nm 14nm
PG-Strom: GPUの持つ数百~数千コアと広帯域メモリを利用して、
SQLワークロードを高速化するPostgreSQL向け拡張モジュール
App
GPU
off-loading
データのある場所で集計・解析処理を実行
10GB/sを越えるシングルノード性能
エンジニアにとって使い慣れた技術である事
➔ 大量ログデータの集計・解析に最適な製品
4. 想定利用シーン – IoT/M2M向けログデータ処理基盤
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤4
増え続けるログデータの管理、集計から解析・機械学習まで対応したデータ管理基盤
Manufacturing Logistics Mobile Home electronics
処理ユニットの拡張により、シングルノードで~数十TBのデータにも対応。
蓄積した生ログデータのまま、H/W限界に近い速度で集計する事が可能。
使い慣れたPostgreSQLのSQL構文、周辺アプリケーションを適用可能。
JBoF: Just Bunch of Flash
NVME over
Fabric
(RDMA)
DB管理者
BIツール
22. 《補足》ログデータはどこで生成されるのか?
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤22
ETL
OLTP OLAP
伝統的なOLTP&OLAPシステム - データはDBシステムの内側で生成される
Data
Creation
IoT/M2M時代 - データはDBシステムの外側で生成される
Log processing
BI Tools
BI Tools
Gateway Server
Async
Write
Async
Read
Data
Creation
Many Devices
Import!
23. SSD-to-GPUダイレクトSQL on Arrow_Fdw
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤23
PCIe Bus
NVMe SSD GPU
SSD-to-GPU P2P DMA WHERE句
JOIN
GROUP BY
Apache Arrow
データファイル
Arrow_Fdw
モジュール
Apache Arrow ➔
PostgreSQL Heapへの
データ形式変換
WHERE句
JOIN
GROUP BY
被参照列だけを
P2P DMAで転送
Apache Arrow形式に対応。
GPUがデータ形式を解釈し、
数千コアを用いた並列実行
実行結果は PostgreSQL の
Heap形式でホスト側へ転送。
(通常、元データより小さい)
実行結果
“被参照列だけ”をGPUに転送する点を除き、同一のインフラを使用している。
31. ログデータ(時系列データ)向けパーティション設定例
▌PostgreSQLテーブルとArrow外部テーブルの混在するパーティション設定
▌ログデータは必ずタイムスタンプを含んでおり、更新がない。
➔ 古くなったデータは Arrow 外部テーブルへ移す事で高速化。
logdata_201812
logdata_201901
logdata_201902
logdata_current
logdataテーブル
(PARTITION BY timestamp)
2019-03-21
12:34:56
dev_id: 2345
signal: 12.4
タイムスタンプ
付きログデータ
PostgreSQLテーブル
行データ構造
読み書き可能だが低速
Arrow外部テーブル
列データ構造
読込み専用だが高速
検索条件にタイムスタンプを含む場合、
明らかに該当しない子テーブルは読み飛ばす。
例) WHERE timestamp > ‘2019-01-23’
AND device_id = 456
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤31
32. ログデータ(時系列データ)向けパーティション設定例
▌PostgreSQLテーブルとArrow外部テーブルの混在するパーティション設定
▌ログデータは必ずタイムスタンプを含んでおり、更新がない。
➔ 古くなったデータは Arrow 外部テーブルへ移す事で高速化。
logdata_201812
logdata_201901
logdata_201902
logdata_current
logdataテーブル
(PARTITION BY timestamp)
2019-03-21
12:34:56
dev_id: 2345
signal: 12.4
タイムスタンプ
付きログデータ
logdata_201812
logdata_201901
logdata_201902
logdata_201903
logdata_current
logdataテーブル
(PARTITION BY timestamp)
一ヶ月
経過
2019年3月分の
データを抽出
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤32
33. 想定利用シーン – IoT/M2M向けログデータ処理 + 異常検知など
Deep Learning Community #10 - Apache ArrowとSSD-to-GPU Direct SQLで作る "超高速" データ処理基盤33
増え続けるログデータの管理、集計から解析・機械学習まで対応したデータ管理基盤
Manufacturing Logistics Mobile Home electronics
JBoF: Just Bunch of Flash
NVME over
Fabric
(RDMA)
DB管理者
BIツール
共通データフレーム
NVIDIA RAPIDS
異常検知など
機械学習アプリケーション