Slide 1

Slide 1 text

PostgreSQLで手軽に DuckDBを使う! DuckDB & pg_duckdb入門 オープンセミナー2025 香川 #OSK2025 09.20.2025

Slide 2

Slide 2 text

目次 自己紹介 DuckDBとは何か? pg_duckdbの紹介 終わりに 01 03 02 04

Slide 3

Slide 3 text

自己紹介 株式会社リンケージ Webアプリケーションエンジニア 日本PostgreSQLユーザー会 中国地方支部長 妻と息子と娘と岡山在住 高橋 一騎 (@ikkitang) AIデッキ TakahashiIkki TakahashiIkki ikkitang ikkitang Social

Slide 4

Slide 4 text

PostgreSQLの普及と発展を目的として活動しているNPO法人 日本PostgreSQL ユーザー会 PostgreSQLの研究開発および普及促進 PostgreSQLに関する情報の公開 会員相互および外部との技術的・人間的交流

Slide 5

Slide 5 text

中国地方DB勉強会 日本PostgreSQLユーザー会 中国地方支部の活動 各回ごとにテーマを決めてデータベースの勉強会を実施 例) PostgreSQL 最新情報 PostgreSQL、MySQLのバージョンアップ方法 AI × SQL https://dbstudychugoku.connpass.com/ Connpass で勉強会情報をお届けしてるので. ぜひフォローを!

Slide 6

Slide 6 text

PostgreSQL Conference Japan 2025 日本PostgreSQLユーザー会の活動 2025年11月21日(金) 10:00 ~ 18:00 (東京にて) 午前2講演、午後4トラックにて16講演を予定 PostgreSQL 最新情報 チュートリアルトラック 2025/09/21 から事前チケットを販売開始予定 https://www.postgresql.jp/jpug-pgcon2025 プログラムは決まってるので随時公開予定

Slide 7

Slide 7 text

本セッションについて 資料は後日公開予定です 質問は #osk2025 等でも投稿してもらえれば、後からでも拾います 一応、注意事項として pg_duckdb入門 と言いつつ、DuckDB側にも比重を置いた発表です DuckDB知らない人もこの機会に知ってもらえれば!

Slide 8

Slide 8 text

2: DuckDBとは何か?

Slide 9

Slide 9 text

DuckDBとは何か? 軽量な組み込み型データベース 分析処理(OLAP)に特化しており、複数なソースからギガバイト単 位のデータに対して効率的にクエリを実行することができる それにより、高速な分析機能を提供する 多様なデータソース(CSV、Parquet、JSON、S3等)への対応 オープンソースで無料利用可能

Slide 10

Slide 10 text

DuckDBの何が嬉しいのか? 数百GBのデータを高速にシンプルに安価に処理できる それらに加えて 豊富なデータソースを処理することができる “慣れ親しんだ“SQLによりデータソースの情報を処理できる 依存関係を一切持たず、様々な言語から利用可能 豊富なデータフォーマットとして出力できる 既存のアプリケーションの裏側にシュッと組み込んで使うのに最適

Slide 11

Slide 11 text

DuckDBの事例 S3 + DuckDB(Lambda) の構築をしてAthenaの代替とする 75%のコスト削減の例も. https://qiita.com/shinonome_taku/items/cb9bfd7419a77a80e235 高速な jq 代替 シェルスクリプトの中でJSONを読み込んで変換し標準出力に出せる DuckDB-Wasmで軽量なBIツールの提供 ダッシュボードの提供 https://zenn.dev/shiguredo/articles/duckdb-wasm-s3-parquet- opfs GeoJSONのデータをブラウザで可視化するためのツール https://tech.newmo.me/entry/duckdb-wasm-typescript

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Demo - CSVファイルへのQuery

Slide 14

Slide 14 text

Demo - Web上のCSVファイルへのQuery

Slide 15

Slide 15 text

Demo - SUMMARIZE句 SUMMARIZE句をSELECT句の前に    指定するとそのSELECT句の結果を統計的 に解釈してデータを得る事ができる ※ TABLE じゃなくて、SELECTクエリ WHERE とか SUM とか JOIN とかも 考慮してくれる

Slide 16

Slide 16 text

Demo - bar関数

Slide 17

Slide 17 text

2: DuckDBとは何か まとめ DuckDBはOLAP処理に特化したデータベースであり、高速な分析クエリ を実現する。 DuckDBは大量のデータをSQLにより効率的に処理することできる。 様々なデータソースの入出力に対応し、またその依存性の無さから   様々な環境からの接続を実現できる

Slide 18

Slide 18 text

3: pg_duckdbの紹介

Slide 19

Slide 19 text

DuckDB、激速じゃん!!! もう、全部これで良くない?

Slide 20

Slide 20 text

DuckDB、激速じゃん!!! もう、全部これで良くない? ※ 良くはない

Slide 21

Slide 21 text

項目 OLTP (PostgreSQL) OLAP (DuckDB) 目的 トランザクション処理 分析処理 データアクセス / ストレージ 行指向 (行ごとにデータを保存) 列指向 (列ごとにデータを保存) データ更新 書き込み操作が主 信頼性高い(ACID特性) 読み込み操作が主 使用例 Webアプリ 業務システム レポート 集計・分析 OLTP vs OLAP の違い

Slide 22

Slide 22 text

DuckDBはすべてを解決するものではない やりたいことに合わせて、適切に技術の選定をしてく それぞれのデータベースの特性を理解し、使い分けること が重要 例えば.. 高い信頼性でデータを管理する場合はOLTPのDB 大量データの分析が必要ならOLAPのDB DuckDBは銀の弾丸か?

Slide 23

Slide 23 text

とはいえ気持ちはわかる アプリケーション提供の中で運用するために必要なコンポーネントは 少ない方が良い → そこで pg_duckdb

Slide 24

Slide 24 text

PostgreSQLのプロセス内に DuckDBエンジンを組み込む拡張機能 DuckDBのクエリエンジンの使用を指定 し、SQLを実行することで PostgreSQLの プロセス上でDuckDBエンジンがクエリを 実行し、結果を返す PostgreSQLのpg_duckdb Extension

Slide 25

Slide 25 text

pg_duckdb の使いみち DuckDB同様 クラウド上のストレージの分析ができる → CSVのデータをPostgreSQLに Import/Export できる

Slide 26

Slide 26 text

DuckDBの拡張機能として提供 DuckDBの関数や演算子を使用して PostgreSQLのデータを分析できる DuckDBがPostgreSQLからデータを取得 する際に、バイナリでやり取りする仕組み になっているので不要な処理がスキップ  され高速にデータを取得できる DuckDBのPostgreSQL Extension

Slide 27

Slide 27 text

pg_duckdbと DuckDB PostgreSQL Extensionの違い

Slide 28

Slide 28 text

PostgreSQL + DuckDB統合のアプローチ 既存のPostgreSQLサーバーに変更不要 マネージドサービス(RDS、Cloud SQL)でも 利用可能 メリット ネットワーク経由でのデータ転送が必要 大きなテーブルでは性能上限がある DuckDB Server の運用が必要 (“デメリット”ではないが) デメリット DuckDB PostgreSQL Extension

Slide 29

Slide 29 text

PostgreSQL + DuckDB統合のアプローチ 劇的な性能向上 (特定ベンチマークで1500倍高速化) PostgreSQLテーブルへの直接アクセス 外部ファイル(Parquet等)の読み込み可能 メリット PostgreSQLサーバーへの拡張インストールが必要 マネージドサービスの多くでは 現状利用不可 → 自前でのPostgreSQL運用が必要 現状としては、分析専用のPostgreSQLを立てる ことが推奨されている デメリット pg_duckdb

Slide 30

Slide 30 text

3: pg_duckdbとは まとめ DuckDB 分析処理(OLAP)に特化した高速データベース PostgreSQL トランザクション処理(OLTP)に最適化 それぞれの用途に応じた使い分けが重要 PostgreSQL × DuckDBのアプローチ pg_duckdb PostgreSQL内でDuckDBの高速分析を利用可能 DuckDB PostgreSQL Extension DuckDB から PostgreSQL への分析を利用可能

Slide 31

Slide 31 text

4: 終わりに

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Google BigQuery のプロダクトリーダーのブログ 「ビッグデータ」のための分析基盤を!という流れがあった が、実際にビッグデータを使ってたのは一部の企業だった データストレージの総容量は1TB以下 データ保存サイズの中央値は100GB ほとんどの会社は大量のデータを必要とするのではなく、   信頼できるデータを収集して分析できれば十分である。 BIG DATA IS DEAD

Slide 34

Slide 34 text

扱えるデータ量は数百GBを想定してチューニングされている 「DuckDBはデータ分析を再び高速で楽しいものにする」 データパイプラインとデータの準備が簡素化され、実際の 分析、探索、実験に多くの時間を割くことができるように なる DuckDB

Slide 35

Slide 35 text

LLM全盛の時代にあって、我々技術者が求められる成果に  対してのスピードの期待値はどんどん高まっていくはず 技術の特性を更に理解して トップスピードを高める工夫と  トップスピードを保つデバフを起こさない工夫を絶えず   やっていきましょう! LLM全盛の時代

Slide 36

Slide 36 text

公式ドキュメント:https://github.com/duckdb/pg_duckdb DuckDB公式: https://duckdb.org/ DuckDB実践入門: https://www.amazon.co.jp/dp/B0C5Y8X1ZK Big DATA is DEAD: https://motherduck.com/blog/big-data-is- dead/ 15分で学ぶDuckDBの可愛い使い方: https://speakerdeck.com/notrogue/15fen-dexue-buduckdbnoke- ai-ishi-ifang-duckdbnozui-jin-nogeng-xin 参考文献

Slide 37

Slide 37 text

ご清聴ありがとう ございました! [Thank you!]