Submit Search
Ruby Postgres 2009
4 likes
2,150 views
Akio Ishida
1 of 26
Download now
Downloaded 10 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
More Related Content
PDF
PostgreSQL + pgpool構成におけるリカバリ
hiroin0
PDF
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
PPTX
CMSとPerlで遊ぼう
Daiki Ichinose
PDF
私とmysqlとROLE
lhfukamachi 深町
PDF
MongoDB Configパラメータ解説
Shoken Fujisaki
PDF
Webサーバ勉強会03
oranie Narut
PDF
MongoDBのはじめての運用テキスト
Akihiro Kuwano
PDF
serverspecみんなで集めて(゚Д゚)ウマー?
Sho Hashimoto
PostgreSQL + pgpool構成におけるリカバリ
hiroin0
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
CMSとPerlで遊ぼう
Daiki Ichinose
私とmysqlとROLE
lhfukamachi 深町
MongoDB Configパラメータ解説
Shoken Fujisaki
Webサーバ勉強会03
oranie Narut
MongoDBのはじめての運用テキスト
Akihiro Kuwano
serverspecみんなで集めて(゚Д゚)ウマー?
Sho Hashimoto
What's hot
(20)
PDF
Webサーバのチューニング
Yu Komiya
PDF
第8回KPF発表資料
cryks
PPTX
パフォーマンスの良いGASの書き方 Best Practice
啓介 大橋
PDF
20171103 pg con-jp-lt-plpgsql
Toshi Harada
PDF
卒研発表
yayugu
PDF
社内勉強会資料(Varnish Module)
Iwana Chan
PDF
20171106 ntt-tx-postgre sql-10
Toshi Harada
PDF
未踏成果発表
yayugu
PDF
VarnishではじめるESI
Iwana Chan
PDF
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
PDF
ノンプログラマのためのウェブサーバ入門
Atsu Yamaga
PDF
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
PPT
サーバー実装いろいろ
kjwtnb
PPT
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
PPTX
Openjdk 入門してみた話
Tokuhiro Matsuno
PDF
今日から使い始めるChef
Masahiro NAKAYAMA
PPT
ザ・ドキュメント~うまくいかないNoSQL~
Akihiro Kuwano
PPTX
Apacheチューニング
ii012014
PDF
serverspecでサーバ環境のテストを書いてみよう
Daisuke Ikeda
PDF
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
Webサーバのチューニング
Yu Komiya
第8回KPF発表資料
cryks
パフォーマンスの良いGASの書き方 Best Practice
啓介 大橋
20171103 pg con-jp-lt-plpgsql
Toshi Harada
卒研発表
yayugu
社内勉強会資料(Varnish Module)
Iwana Chan
20171106 ntt-tx-postgre sql-10
Toshi Harada
未踏成果発表
yayugu
VarnishではじめるESI
Iwana Chan
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
ノンプログラマのためのウェブサーバ入門
Atsu Yamaga
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
サーバー実装いろいろ
kjwtnb
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Openjdk 入門してみた話
Tokuhiro Matsuno
今日から使い始めるChef
Masahiro NAKAYAMA
ザ・ドキュメント~うまくいかないNoSQL~
Akihiro Kuwano
Apacheチューニング
ii012014
serverspecでサーバ環境のテストを書いてみよう
Daisuke Ikeda
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
Ad
Viewers also liked
(13)
PDF
Ruby Postgres
Akio Ishida
PDF
PostgreSQLの範囲型と排他制約
Akio Ishida
PDF
Local php-100828 2
Akio Ishida
PDF
Getting start with knockout.js
Akio Ishida
PDF
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
Akio Ishida
PDF
XIDを周回させてみよう
Akio Ishida
PDF
使いこなそうGUC
Akio Ishida
PDF
Rubysapporo Stringsearch
Akio Ishida
PDF
phpspecで学ぶLondon School TDD
Akio Ishida
PDF
textsearch_jaで全文検索
Akio Ishida
PDF
よりよいPHPUnitの実行方法を求めて
Akio Ishida
PPT
Elsevier与Lib2
guestb62477
PDF
Prophecyを使ったユニットテスト
Akio Ishida
Ruby Postgres
Akio Ishida
PostgreSQLの範囲型と排他制約
Akio Ishida
Local php-100828 2
Akio Ishida
Getting start with knockout.js
Akio Ishida
PostgreSQLで学ぶBoyer-Moore-Horspoolアルゴリズム
Akio Ishida
XIDを周回させてみよう
Akio Ishida
使いこなそうGUC
Akio Ishida
Rubysapporo Stringsearch
Akio Ishida
phpspecで学ぶLondon School TDD
Akio Ishida
textsearch_jaで全文検索
Akio Ishida
よりよいPHPUnitの実行方法を求めて
Akio Ishida
Elsevier与Lib2
guestb62477
Prophecyを使ったユニットテスト
Akio Ishida
Ad
Similar to Ruby Postgres 2009
(20)
PDF
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
PDF
Heroku Postgres
Ayumu Aizawa
PDF
Heroku Postgres
Salesforce Developers Japan
PDF
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
PDF
Ruby 2.5
Masahiro Tomita
PDF
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
PDF
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
PDF
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
Shigeru Hanada
PDF
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
Shigeru Hanada
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
PDF
Kof2016 postgresql-9.6
Toshi Harada
PDF
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PDF
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
PDF
MySQLとPostgreSQLにおける基本的なアカウント管理
Shinya Sugiyama
PDF
Postgresql advent calender 2014 using jsonb by ecpg
Toshi Harada
PDF
PostgreSQL 10 新機能 @オープンセミナー香川 2017
Shigeru Hanada
PDF
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
Insight Technology, Inc.
ODP
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
Shigeru Hanada
PDF
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
PDF
PostgreSQL13を検証してみた
Naoya Takeuchi
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
Heroku Postgres
Ayumu Aizawa
Heroku Postgres
Salesforce Developers Japan
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
Ruby 2.5
Masahiro Tomita
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Toshi Harada
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
Shigeru Hanada
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
Shigeru Hanada
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
Kof2016 postgresql-9.6
Toshi Harada
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
MySQLとPostgreSQLにおける基本的なアカウント管理
Shinya Sugiyama
Postgresql advent calender 2014 using jsonb by ecpg
Toshi Harada
PostgreSQL 10 新機能 @オープンセミナー香川 2017
Shigeru Hanada
[C31] OSS-DB Exam Silver 技術解説セミナー by Ryota Watabe
Insight Technology, Inc.
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
Shigeru Hanada
いまさら聞けないPostgreSQL運用管理
Uptime Technologies LLC (JP)
PostgreSQL13を検証してみた
Naoya Takeuchi
Ruby Postgres 2009
1.
RubyでPostgreSQLと
お話しする方法 (株)サイクル・オブ・フィフス 石田朗雄
2.
自己紹介等 / PostgreSQLの方から来ました
(Hatena|Twitter)id:iakio / 石田@苫小牧市 PostgreSQL徹底入門(翔泳社) pgpool-II Developer http://postgresql.g.hatena.ne.jp 普段はPHP、C、Java、C++等 Rubyはあんまり詳しくないです たまにruby-sapporo勉強会に顔を出しています
3.
(宣伝)JPUG北海道支部 2004年から細々と勉強会やイベントをやったりやらな
かったり 「PostgreSQLで学ぶBoyer-Mooreアルゴリズム」 「PostgreSQL8.3はいかにしてTEXT型のサイズを3バイト縮 めたか」 PostgreSQLを使う上では特に役に立たないかもしれません 自分の知識を発表する→普通の勉強会 知らないしやったこと無いけど気になってることを当日ま でに必死で調べて発表する→JPUG北海道Style
4.
RubyとPostgreSQL
5.
プログラムからSQLを実行するということ クライアント/サーバー間のソケット通信 Frontend/Backendプロトコルの仕様もドキュメントに
含まれています http://www.postgresql.jp/document/current/html/p rotocol.html
6.
2種類の実装 Frontend/Backendプロトコルを実装したC言語のライ
ブラリ(libpq.so又はlibpq.dll)
7.
RubyとPostgreSQL ruby-postgres(1997-)
http://rubyforge.org/projects/ruby-postgres libpqを使った実装 postgres-pr http://rubyforge.org/projects/postgres-pr Pure Ruby版 Cコンパイラが使えない環境 libpqが使えない環境
8.
第6回 Ruby勉強会@札幌 2007-11-17
http://www.slideshare.net/iakio/ruby-postgres ruby-postgres → 微妙 postgres-pr → なにそれ こわい
9.
postgres-pr VS ruby-postgres
ruby-postgres PGconn.instance_methods(false).sort => ["async_exec", "async_query", "client_encoding", "close", "db", "endcopy", "error", "exec", "finish", "get_notify", "getline", "host", "insert_table", "lo_create", "lo_export", "lo_import", "lo_open", "lo_unlink", "locreate", "loexport", "loimport", "loopen", "lounlink", "on_notice", "options", "port", "protocol_version", "putline", "query", "reset", "select_one", "select_value", "select_values", "server_version", "set_client_encoding", "status", "trace", "transaction_status", "tty", "untrace", "user"] postgres-pr PGconn.instance_methods(false).sort => ["close", "db", "exec", "host", "query", "user"]
10.
ruby-pg登場 http://rubyforge.org/projects/ruby-pg/
11.
PGconn.instance_methods(false).sort
ruby-pg => [:async_exec, :async_query, :backend_pid, :block, :cancel, :close, :conndefaults, :connect_poll, :connection_needs_password, :connection_used_password, :consume_input, :db, :describe_portal, :describe_prepared, :error_message, :escape, :escape_bytea, :escape_string, :exec, :exec_prepared, :finish, :flush, :get_client_encoding, :get_copy_data, :get_last_result, :get_result, :host, :is_busy, :isnonblocking, :lo_close, :lo_creat, :lo_create, :lo_export, :lo_import, :lo_lseek, :lo_open, :lo_read, :lo_seek, :lo_tell, :lo_truncate, :lo_unlink, :lo_write, :loclose, :locreat, :locreate, :loexport, :loimport, :lolseek, :loopen, :loread, :loseek, :lotell, :lotruncate, :lounlink, :lowrite, :make_empty_pgresult, :notifies, :options, :parameter_status, :pass, :port, :prepare, :protocol_version, :put_copy_data, :put_copy_end, :query, :quote_ident, :reset, :reset_poll, :reset_start, :send_describe_portal, :send_describe_prepared, :send_prepare, :send_query, :send_query_prepared, :server_version, :set_client_encoding, :set_error_verbosity, :set_notice_processor, :set_notice_receiver, :setnonblocking, :socket, :status, :trace, :transaction, :transaction_status, :tty, :unescape_bytea, :untrace, :user]
12.
他の言語との比較 各種ドライバで使われているlibpq関数の数(nm調べ)
13.
ruby-pgは最強のlibpq wrapper
ruby-pgはpgpool-IIのデバッグをするときに便利 残念ながらWindows用のバイナリは配布されてません
14.
ruby-pgの使い方
15.
本を読めばいいと思う Ruby逆引きレシピ 「レシピ100
PostgreSQLを使いたい」 以下、重箱の隅をつつくような 内容にお付き合い下さい
16.
レシピ100.1 接続時のTips 引数がよくわからん ------------------------------------------------------------
PGconn::new PGconn.new(connection_hash) -> PGconn PGconn.new(connection_string) -> PGconn PGconn.new(host, port, options, tty, dbname, login, password) -> PGconn ------------------------------------------------------------------------ * +host+ - server hostname * +hostaddr+ - server address (avoids hostname lookup, overrides +host+) … * +connect_timeout+ - maximum time to wait for connection to succeed * +options+ - backend options
17.
PGconn.open() == PQconnectdb()
18.
libpqのドキュメントを読みましょう http://www.postgresql.jp/document/current/html/li
bpq-connect.html
19.
実際けっこう色んなことが書けます パスワードは$HOME/.pgpassに書くという方法もある c
= PGconn.open "host=127.0.0.1 user=ishida dbname=ishida connect_timeout=10 options='-c client_encoding=utf-8 -c work_mem=1MB -c client_min_messages=debug'"
20.
環境変数等 接続時にオプションが指定されなかった場
合、PGUSER,PGDATABASE,PGOPTIONS等の環境変数を 参照する http://www.postgresql.jp/document/current/html/li bpq-envars.html $ PGUSER=user1 PGDATABASE=postgres psql psql (8.4.1) Type "help" for help. postgres=# select current_user; current_user -------------- user1 (1 row)
21.
たとえばRailsから # config/database.yaml development: ...
database: pool: 5 username: $ PGDATABASE=blog_development PGUSER=blog script/console Loading development environment (Rails 2.3.4) >> ActiveRecord::Base.connection.query "select current_user" => [["blog"]] $ PGDATABASE=blog_development PGUSER=blog script/server
22.
レシピ100.2 bulk load
タブ区切りやCSVファイルのロード サーバー上のファイルにはバックエンドからアクセス 可能(DBのスーパーユーザー権限が必要) psqlから => copy t1 from '/tmp/copy.data'; Rubyから c.query "copy t1 from '/tmp/copy.data'"
23.
クライアント上のファイルのコピー スーパーユーザー権限不要 psqlから =>
copy t1 from stdin; コピーするデータに続いて改行を入力します。 バックスラッシュ()とピリオドだけの行で終了します。 >> 1 One >> 2 Two >> .
24.
PGconn#put_copy_data 改行に関係なく、任意のサイズで送信できる PGconn.open
"" do |c| l = "" c.query "copy t1 from stdin" open("copy.data", "r") do |f| while f.read(8192, l) c.put_copy_data l end end c.put_copy_end end
26.
まとめ 他にもいろいろ便利な機能があります 非同期問い合わせ
ruby-pg + fiber #=> NeverBlockPG http://www.scribd.com/doc/18166746/NeverBlockRubyKai gi2009 非同期通知 SQLSTATEのエラーコードを返す SSLサポート libpqドキュメントを読みましょう
Download