Submit Search
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
4 likes
4,823 views
Insight Technology, Inc.
1 of 38
Download now
Downloaded 44 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
More Related Content
What's hot
(20)
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
NTT DATA Technology & Innovation
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
Linux女子部 systemd徹底入門
Etsuji Nakai
PPTX
分散システムについて語らせてくれ
Kumazaki Hiroki
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
雑なMySQLパフォーマンスチューニング
yoku0825
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
PDF
PostgreSQL 15 開発最新情報
Masahiko Sawada
PDF
MySQLとPostgreSQLの基本的なレプリケーション設定比較
Shinya Sugiyama
PDF
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
PDF
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
PPTX
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
PDF
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
PDF
PostgreSQL運用管理入門
Yoshiyuki Asaba
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
PDF
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
PDF
PostgreSQLの関数属性を知ろう
kasaharatt
PPTX
Apache Avro vs Protocol Buffers
Seiya Mizuno
PDF
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
hideakikabuto
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
NTT DATA Technology & Innovation
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Linux女子部 systemd徹底入門
Etsuji Nakai
分散システムについて語らせてくれ
Kumazaki Hiroki
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
雑なMySQLパフォーマンスチューニング
yoku0825
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
PostgreSQL 15 開発最新情報
Masahiko Sawada
MySQLとPostgreSQLの基本的なレプリケーション設定比較
Shinya Sugiyama
Webアプリを並行開発する際のマイグレーション戦略
Takayuki Shimizukawa
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
PostgreSQL運用管理入門
Yoshiyuki Asaba
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
PostgreSQLの関数属性を知ろう
kasaharatt
Apache Avro vs Protocol Buffers
Seiya Mizuno
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
hideakikabuto
Viewers also liked
(16)
PDF
9.3で進化した外部テーブル
Shigeru Hanada
PDF
PostgreSQL 9.5 新機能紹介
NTT DATA OSS Professional Services
PDF
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
PDF
PostgreSQL UPDATEs 2016年5月 - OSC群馬
Haruka Takatsuka
PDF
Pgunconf 20121212-postgeres fdw
Toshi Harada
PDF
Postgre sql9.3新機能紹介
Daichi Egawa
PDF
オープンソース・データベースの最新事情
Meiji Kimura
PDF
Postgre sql update_20170310
Haruka Takatsuka
PDF
Postgres Toolkitのご紹介
Uptime Technologies LLC (JP)
PDF
PostgreSQLとpython
Soudai Sone
PDF
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
PDF
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
PDF
Foreign Data Wrapper Enhancements
Shigeru Hanada
PDF
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
PPT
Leveraging Hadoop in your PostgreSQL Environment
Jim Mlodgenski
PDF
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
9.3で進化した外部テーブル
Shigeru Hanada
PostgreSQL 9.5 新機能紹介
NTT DATA OSS Professional Services
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
PostgreSQL UPDATEs 2016年5月 - OSC群馬
Haruka Takatsuka
Pgunconf 20121212-postgeres fdw
Toshi Harada
Postgre sql9.3新機能紹介
Daichi Egawa
オープンソース・データベースの最新事情
Meiji Kimura
Postgre sql update_20170310
Haruka Takatsuka
Postgres Toolkitのご紹介
Uptime Technologies LLC (JP)
PostgreSQLとpython
Soudai Sone
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
Foreign Data Wrapper Enhancements
Shigeru Hanada
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
Leveraging Hadoop in your PostgreSQL Environment
Jim Mlodgenski
PostgreSQLによるデータ分析ことはじめ
Ohyama Masanori
Ad
Similar to [D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
(20)
PDF
Postgre sqlから見るnosql
Soudai Sone
PDF
20190119 aws-study-pg-extension
Toshi Harada
PDF
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
Shigeru Hanada
PDF
20181110 fok2018-pg-extension
Toshi Harada
PDF
PostgreSQL Conference Japan 2021 B2 Citus 10
Noriyoshi Shinoda
PDF
20191115-PGconf.Japan
Kohei KaiGai
PDF
20190925_DBTS_PGStrom
Kohei KaiGai
PPTX
Dat009 クラウドでビック
Tech Summit 2016
PDF
Dat009 クラウドでビック
Tech Summit 2016
PDF
PostgreSQL 12の話
Masahiko Sawada
PDF
知って得するWebで便利なpostgre sqlの3つの機能
Soudai Sone
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
PDF
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
Insight Technology, Inc.
PDF
20190314 PGStrom Arrow_Fdw
Kohei KaiGai
PDF
Let's scale-out PostgreSQL using Citus (Japanese)
Noriyoshi Shinoda
PDF
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
PDF
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
PDF
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
Insight Technology, Inc.
PDF
Extending PostgreSQL - PgDay 2012 Japan
Shigeru Hanada
PDF
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか by 日本ヒューレット・パッカード株式会社 後藤宏
Insight Technology, Inc.
Postgre sqlから見るnosql
Soudai Sone
20190119 aws-study-pg-extension
Toshi Harada
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
Shigeru Hanada
20181110 fok2018-pg-extension
Toshi Harada
PostgreSQL Conference Japan 2021 B2 Citus 10
Noriyoshi Shinoda
20191115-PGconf.Japan
Kohei KaiGai
20190925_DBTS_PGStrom
Kohei KaiGai
Dat009 クラウドでビック
Tech Summit 2016
Dat009 クラウドでビック
Tech Summit 2016
PostgreSQL 12の話
Masahiko Sawada
知って得するWebで便利なpostgre sqlの3つの機能
Soudai Sone
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
Insight Technology, Inc.
20190314 PGStrom Arrow_Fdw
Kohei KaiGai
Let's scale-out PostgreSQL using Citus (Japanese)
Noriyoshi Shinoda
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
Insight Technology, Inc.
Extending PostgreSQL - PgDay 2012 Japan
Shigeru Hanada
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか by 日本ヒューレット・パッカード株式会社 後藤宏
Insight Technology, Inc.
Ad
More from Insight Technology, Inc.
(20)
PDF
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
PDF
Docker and the Oracle Database
Insight Technology, Inc.
PDF
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Insight Technology, Inc.
PDF
事例を通じて機械学習とは何かを説明する
Insight Technology, Inc.
PDF
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
Insight Technology, Inc.
PDF
MBAAで覚えるDBREの大事なおしごと
Insight Technology, Inc.
PDF
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
PDF
DBREから始めるデータベースプラットフォーム
Insight Technology, Inc.
PDF
SQL Server エンジニアのためのコンテナ入門
Insight Technology, Inc.
PDF
Lunch & Learn, AWS NoSQL Services
Insight Technology, Inc.
PDF
db tech showcase2019オープニングセッション @ 森田 俊哉
Insight Technology, Inc.
PDF
db tech showcase2019 オープニングセッション @ 石川 雅也
Insight Technology, Inc.
PDF
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
Insight Technology, Inc.
PPTX
難しいアプリケーション移行、手軽に試してみませんか?
Insight Technology, Inc.
PPTX
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Insight Technology, Inc.
PPTX
そのデータベース、クラウドで使ってみませんか?
Insight Technology, Inc.
PPTX
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
Insight Technology, Inc.
PDF
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
Insight Technology, Inc.
PPTX
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Insight Technology, Inc.
PPTX
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
Insight Technology, Inc.
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
Docker and the Oracle Database
Insight Technology, Inc.
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Insight Technology, Inc.
事例を通じて機械学習とは何かを説明する
Insight Technology, Inc.
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
Insight Technology, Inc.
MBAAで覚えるDBREの大事なおしごと
Insight Technology, Inc.
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
DBREから始めるデータベースプラットフォーム
Insight Technology, Inc.
SQL Server エンジニアのためのコンテナ入門
Insight Technology, Inc.
Lunch & Learn, AWS NoSQL Services
Insight Technology, Inc.
db tech showcase2019オープニングセッション @ 森田 俊哉
Insight Technology, Inc.
db tech showcase2019 オープニングセッション @ 石川 雅也
Insight Technology, Inc.
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
Insight Technology, Inc.
難しいアプリケーション移行、手軽に試してみませんか?
Insight Technology, Inc.
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Insight Technology, Inc.
そのデータベース、クラウドで使ってみませんか?
Insight Technology, Inc.
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
Insight Technology, Inc.
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
Insight Technology, Inc.
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Insight Technology, Inc.
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
Insight Technology, Inc.
Recently uploaded
(7)
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
[D26] データハブとしてのPostgreSQL~9.3で進化した外部テーブル~ by Shigeru Hanada
1.
データハブとしてのPostgreSQL ~9.3で進化した外部テーブル~ db tech showcase
Tokyo 2013 2013-11-01 株式会社メトロシステムズ 花田 茂 © 2013 Metro Systems.
2.
自己紹介(1) 氏名 花田 茂(はなだ しげる) 所属 株式会社メトロシステムズ メール
[email protected]
ブログ http://d.hatena.ne.jp/s87/ Twitter @s87 2 © 2013 Metro
Systems.
3.
自己紹介(2) 経歴 1999年 メトロシステムズに入社、Oracleでシステム開発 2003年 PostgreSQLの運用ツール開発やコンサルティング 2010年 PostgreSQL本体開発に参加 2012年 カナダで開催されたPostgreSQL開発者会議に参加 2013年 OSS-DB Silver/Gold取得 現在 ドキュメント翻訳や日本語MLなどでも活動中 3 © 2013
Metro Systems.
4.
アジェンダ 外部テーブルとは? 外部テーブルの進化 外部テーブルを使ったデータ統合 外部データラッパの紹介 外部データラッパの作り方 4 © 2013 Metro
Systems.
5.
外部テーブルとは? PostgreSQLの外部にあるデータに通常のテーブルと同様 にSQL文でアクセスできる特殊なテーブルです。 (ビューに近い?) SQL規格での名前は「FOREIGN TABLE」 外部テーブルを作成するには、外部データの種類に応じ た「外部データラッパ」(FDW:Foreign Data
Wrapper) が必要です。 SQL PostgreSQLサーバ 外部 テーブル テーブル PostgreSQL クライアント 検索 結果 外部 データ データ ファイル ラッパ 外部 データ 5 © 2013 Metro Systems.
6.
そもそも外部データって? PostgreSQLからアクセスできるもの全て OSファイル CSVファイル、JSONファイル、ログファイル、Etc. リレーショナルデータベース PostgreSQL、Oracle、MySQL、SQLite3、Etc. NoSQLデータベース Hadoop、Redis、Mongo、Neo4J、Etc. Webサービス twitter、RESTアプリケーション、Etc. その他 Amazon S3、コマンド実行結果、Etc. 6 © 2013
Metro Systems.
7.
外部テーブルの進化(1) 8.4(2009年) SQL/MED基盤 外部データラッパ関連オブジェクトサポート 外部データラッパ、サーバ、ユーザマッピング 外部データの検索は未実装 dblinkやplproxyなどの外部モジュール用に管理情報のコンテナ を提供 postgres=> SELECT dblink_connect('con',
'host=foo,dbname=bar'); ... postgres=> SELECT * FROM dblink('con', 'SELECT id, name FROM remote_table WHERE col = ''value'' ORDER BY key') AS t (id int, name text); クエリを文字列で渡す →シンタックスチェックなし 結果の列型定義を 明示する必要がある 7 © 2013 Metro Systems.
8.
外部テーブルの進化(2) 9.0(2010年) ***動きなし*** 8 © 2013 Metro
Systems.
9.
外部テーブルの進化(3) 9.1(2011年) 外部テーブルサポート(検索のみ) file_fdwの追加 MySQLでいう CSVストレージエンジン のようなもの COPYコマンドがサポートするフォーマット (CSV、タブ区切り、独自バイナリ) のファイルをロード不要で参照可能に! 外部PostgreSQLは(標準では)未対応 外部データの更新は未実装 9 © 2013 Metro
Systems.
10.
外部テーブルの進化(4) 9.2(2012年) 外部テーブルの統計情報取得 外部データの内容に応じた実行計画を生成 【注意】ANALYZEコマンドにテーブル名を明示すること! 複数候補パス(よりよいアクセスパスを選択) 外部データへのアクセス方法が複数ある場合に、最適な方法を PostgreSQLのプランナが選択 列単位のFDWオプション 外部データの統計情報の取得や 複数候補パスサポートにより、 よりよい実行計画を選択可能に 外部データの更新は未実装 10 © 2013 Metro
Systems.
11.
外部テーブルの進化(5) 9.3(2013年) 書き込み可能な外部テーブル トランザクションコマンドもハンドリング可能 postgres_fdwの追加 外部データが更新可能に! 外部のPostgreSQLのテーブルを ローカルテーブルと 同様に参照/更新可能 二相コミットは未実装 11 © 2013 Metro
Systems.
12.
外部テーブルの進化(6) 9.4(現在開発中) テーブル継承サポート 外部テーブルを子テーブルとして定義 パーティションキーによるシャーディングが可能に リモートでの結合や集約 分析系クエリなどで負荷分散や転送量削減 検索 親テーブル 自動的に 結果をマージ 外部 テーブル 外部 テーブル 外部 テーブル 外部 データ 外部 データ 外部 データ 結果 12 © 2013 Metro
Systems.
13.
外部テーブルのデモ postgres_fdw 他のPostgreSQLサーバにアクセスできるFDW 9.1で外部テーブルと一緒に提案→却下 9.2でANALYZE対応などと一緒に提案→却下 9.3でようやくcontribに追加 長引いた原因はネーミング? pgsql_fdw → postgresql_fdw
→ postgres_fdw 13 © 2013 Metro Systems.
14.
postgres_fdw(1) まずはEXTENSIONを作成 自動的にFOREIGN DATA WRAPPERも作成 接続先サーバをSERVERで定義 オプション:host、port、dbnameなどのlibpqオプション リモートユーザをUSER
MAPPINGで定義 オプション:user、password 外部データ構造をFOREIGN TABLEで定義 オプション:table_name 14 © 2013 Metro Systems.
15.
postgres_fdw(2) SERVERで定義したデータベースにUSER MAPPINGで定 義したユーザで接続 ローカルユーザとリモートユーザをマッピング サーバ×ローカルユーザでリモートユーザを切り替え table_nameオプションで指定したテーブルに対する SELECT文を生成してクエリを実行 リモートと別の名前で外部テーブルを定義可能 取得した結果をローカルのPostgreSQL内で処理し、クラ イアントに返却 EXPLAIN VERBOSEでリモートクエリを表示 15 ©
2013 Metro Systems.
16.
postgres_fdw(3) WHERE句をリモートで評価して転送量削減 MUTABLE/STABLEの演算子/関数 ユーザ定義の演算子/関数 他のテーブルやビューとの結合が可能 同じサーバの外部テーブル同士でも、結合はローカルに持っ てきてから→大量データの場合は要注意 ORDER BYやLIMIT/OFFSETはローカル評価 頑張ればORDER BYはリモート評価できそうです 16 ©
2013 Metro Systems.
17.
postgres_fdw(4) 見積もりを正確にするには… クエリ実行時にリモートの見積もりを取得 FOREIGN TABLEかSERVERのオプションで use_remote_estimateをtrueに設定 クエリ実行時にEXPLAINをリモートで実行し、その見積もりで ローカルの実行計画を作成 ANALYZEしてローカルに統計情報を保持 テーブル名を明示する必要がある(対象を指定しない場合は外 部テーブルをスキップ) 17 © 2013
Metro Systems.
18.
postgres_fdw(5) リモート接続に関する注意点 ローカル接続が続いている限り、リモート接続は保持され る→リモート側をシャットダウンするとき注意 同じサーバ上の外部テーブルへのクエリは同じ接続で実行 REPEATABLE READまたはSERIALIZABLEの分離レベルを使用 18 © 2013
Metro Systems.
19.
postgres_fdw(6) 検索だけでなく、更新も可能 INSERT/UPDATE/DELETE トランザクションも一部サポート リモートトランザクションをロールバック可能 二相コミットは未サポート 19 © 2013 Metro
Systems.
20.
外部テーブルによるデータ統合(1) ログデータ ログをCSV形式で出力し、file_fdwで参照 ログをSQLで検索可能 ウィンドウ関数や集約関数などで統計処理も可能 20 © 2013 Metro
Systems.
21.
外部テーブルによるデータ統合(2) 別システムのマスタデータ流通 別システムのマスタテーブルを外部テーブルで参照 エクスポート/インポート不要でリアルタイムに変更に追従 9.3の新機能のマテリアライズド・ビューと組み合わせる と、スナップショット取得も可能 21 © 2013 Metro
Systems.
22.
外部テーブルによるデータ統合(3) 旧システムデータの活用 旧システムのデータを外部テーブル経由で参照すること で、データ流通基盤を構築せずにデータ連携が可能 新旧システム間のデータ移行にも利用可能 22 © 2013 Metro
Systems.
23.
外部テーブルによるデータ統合(4) 簡易EAIサーバとしての利用 複数種類のデータソースをPostgreSQLを経由して一本化 異種データソース間の結合や中間表の作成なども使い慣れ たSQL文だけで可能 最終結果はCOPYコマンドで簡単にCSV化可能 23 © 2013 Metro
Systems.
24.
サードパーティのFDW(1) RDBMS oracle_fdw(Zheng Yang版) http://pgxn.org/dist/odbc_fdw/ oracle_fdw(NTT版) http://interdbconnect.sourceforge.net mysql_fdw http://pgxn.org/dist/mysql_fdw/ odbc_fdw http://pgxn.org/dist/odbc_fdw/ jdbc_fdw http://pgxn.org/dist/jdbc_fdw/ 24 © 2013 Metro
Systems.
25.
サードパーティのFDW(2) その他のデーターベース couchdb_fdw http://pgxn.org/dist/couchdb_fdw/ mongo_fdw http://pgxn.org/dist/mongo_fdw/ redis_fdw http://pgxn.org/dist/redis_fdw/ ldap_fdw http://pgxn.org/dist/ldap_fdw/ neo4j_fdw https://github.com/nuko-yokohama/neo4j_fdw hadoop_fdw http://www.bigsql.org/se/hadoopfdw/ 25 © 2013 Metro
Systems.
26.
サードパーティのFDW(3) その他 multicorn_fdw PythonでFDWを実装するフレームワーク http://pgxn.org/dist/couchdb_fdw/ s3_fdw(Amazon S3) http://pgxn.org/dist/s3_fdw/ twitter_fdw(Twitter) http://pgxn.org/dist/twitter_fdw/ www_fdw(REST) https://github.com/cyga/www_fdw 26 © 2013
Metro Systems.
27.
外部データラッパの作り方 C言語関数 FDW API(コールバック関数)を実装し、それらの関数ポ インタを持った構造体を返すハンドラ関数を実装 検索のみのサポートならば、7個の関数を実装すればOK! SQL関数 ハンドラ関数のSQLラッパ関数を実装 オプションを検査するバリデータ関数を実装(必要に応 じて) EXTENSION 全体をEXTENSIONとしてパッケージ 詳細は http://www.postgresql.org/docs/9.3/static/fdwhandler.html 27 © 2013
Metro Systems.
28.
FDW API(1) 検索系 プランナ GetForeignRelSize テーブルサイズを見積もる GetForeignPaths アクセスパスを(最低一つ)生成する ソートキーの異なるパスなどを複数生成できる プランナが自動的に最適なパスを選択してくれる GetForeignPlan プランナが決定したアクセスパスに沿ったForeignScanプランノー ドを生成する FDW独自の情報をGetForeignPathsから受け取れる 28 © 2013
Metro Systems.
29.
FDW API(2) 検索系 エグゼキュータ BeginForeignScan スキャン開始時に一度だけ呼ばれる IterateForeignScan 上位ノードが1行必要としたときに呼ばれる HeapTuple(行データの内部表現)を生成して返す ReScanForeignScan スキャン位置を先頭に戻してほしいときに呼ばれる NestedLoopのインナー側の場合など スキャン結果を捨ててしまった場合は、リモートから再取得する EndForeignScan(検索終了) スキャン終了時に呼ばれる クリーンアップなど クエリがエラー終了すると呼ばれないので要注意 29 © 2013
Metro Systems.
30.
FDW API(3) 検索用EXPLAIN ExplainForeignScan 検索クエリのEXPLAINで呼ばれる ForeignScanノードに表示する情報を追加する VERBOSEモードのon/off判定も可能 ANALYZE AnalyzeForeignTable ANALYZE可否を判断し、可能ならばサンプル収集関数を返す AcquireSampleRows リモートデータからサンプル行を取得する 30 © 2013
Metro Systems.
31.
FDW API(4) 更新系 リライタ/プランナ AddForeignUpdateTargets 更新時に使用するキー情報をタプル定義に追加する postgres_fdwではCTID(タプルID)を使用 PlanForeignModify 更新処理に必要な情報をプライベート領域に保存する postgres_fdwでは更新用SQL分を生成 31 © 2013
Metro Systems.
32.
FDW API(5) 更新系 エグゼキュータ BeginForeignModify 更新処理開始時に呼ばれる ExecForeignInsert ExecForeignUpdate(リモート更新実行) ExecForeignDelete(リモート削除実行) 挿入/更新/削除一件ごとに一回呼ばれる リモート側にデータを挿入/更新/削除する EndForeignModify(更新終了) 更新処理終了時に呼ばれる 32 © 2013
Metro Systems.
33.
FDW API(6) 更新用EXPLAIN ExplainForeignModify 更新クエリのEXPLAINで呼ばれる 更新ノードに表示する情報を追加する VERBOSEモードのon/off判定も可能 33 © 2013
Metro Systems.
34.
トランザクション管理 リモートトランザクションサポート トランザクション終了時に呼ばれるコールバック関数を登 録しておき、そこでトランザクションコマンドを実行する RegisterXactCallback RegisterSubXactCallback ローカルのCOMMIT/ROLLBACKの直前に呼ばれるので、 このコールバックで例外が発生するとローカルトランザク ションもABORTする 34 © 2013 Metro
Systems.
35.
大変だな〜という人向けに blackhole_fdw Andrew Dunstan氏が公開 https://bitbucket.org/adunstan/blackhole_fdw APIに対応する関数を持つが、何もしない→検索しても0 件、更新は空振り FDWのひな形として利用可能 35 © 2013
Metro Systems.
36.
FDW関連の情報源 PostgreSQL wiki http://wiki.postgresql.org/wiki/SQL/MED PGXN http://pgxn.org 36 © 2013
Metro Systems.
37.
おわりに ご清聴ありがとうございました。 37 © 2013 Metro
Systems.
38.
お知らせ PostgreSQL入門トレーニング 2013年からOSS-DB Silverに対応したトレーニングコースを 提供しています。 http://www.metrosystems.co.jp/education/ 商用データベースの構築・運用で培ったノウハウを盛り込 んだ独自テキストを使用し、商用製品とPostgreSQLを対比 しながらハンズオン環境で基本的な使い方を習得できま す! 11/21・22の二日間は、初回につき特別に無料で開催いたし ます。お問い合わせは
[email protected]
まで! 38 © 2013
Metro Systems.
Download