タグ

lets-postgresに関するnabinnoのブックマーク (282)

  • xlogdumpによるトランザクションログの解析 — Let's Postgres

    アップタイム・テクノロジーズ合同会社 永安 悟史 この記事は、PostgreSQL Advent Calendar #13の12月13日の記事です。 今回は、「PostgreSQL内部解析の強化期間」ということですので、普段はあまり覗くことのないトランザクションログの中を覗いてみる方法を解説します。 もっとも、普段あまり気にすることはなくとも、PostgreSQLのトランザクションログはアーカイブログとして保存してリカバリに使われたり、または(ファイル単位ではなくレコード単位ですが)レプリケーションの際の通信にも使われるものですので、知っておいて損はないでしょう。 普段、ほとんど気にせず使っている機能の内部がどのようなデータ形式になっているのか、その理解の一助になれば幸いです。 はじめに PostgreSQLは、データを障害から保護するために、データへの更新情報を時系列にトランザクションロ

  • PostGIS データの格納と表示 | Let's POSTGRES

    農業・品産業技術総合研究機構 近畿中国四国農業研究センター 寺元 郁博 はじめに 今回は、実際に GIS データベースにデータを叩き込んでみます。 また、格納されたデータを、デスクトップ GIS で表示してみます。 例での前提は次の通りです。 データベース名は pgis 格納するデータは、国土数値情報 (行政区域) のうち広島県 テーブル名は admarea ジオメトリカラム名は the_geom (shp2pgsql のデフォルト) ここで突然「ジオメトリカラム」という語を出してしまいましたが、ジオメトリ型のカラムという意味です。 例では MULTIPOLYGON 型を使用します。 ジオメトリ型には、他にも POINT, LINESTRING, POLYGON 型などがあります。 空間データベースの作成 まずは、叩き込み先となる空間データベースを作成します。 データベース名は "p

  • PostgreSQL 9.2 の新機能 | Let's POSTGRES

    最新のメジャーバージョンとなるPostgreSQL 9.2 が2012/9 にリリースされました。記事では、PostgreSQL9.2の新機能をいくつかピックアップしてご紹介します。 9.2 では、ロックの改善やIndex Only Scanのサポートなどの性能改善をはじめ、レプリケーション機能の強化、JSON型や範囲型のサポート、ログメッセージや監視機能の充実など、多方面に渡る改良がバランスよく行われています。 性能強化 9.2ではIndex Only Scanやスケーラビリティの向上など、様々な性能強化が図られています。特に、Index Only Scanは9.2の目玉機能の一つとなっています。 Index Only Scan 読んで字の如く、インデックスのみを読むスキャン機能です。この機能により、インデックスキーの付与されている列だけを参照するSELECT処理速度がぐっと向上してい

  • gihyo.jp & Let's Postgres 連動企画 今こそ!PostgreSQL | Let's POSTGRES

    gihyo.jp & Let's Postgres 連動企画 今こそ!PostgreSQL gihyo.jp と Let's Postgres で 3 ヵ月に渡り交互に記事を掲載する連動企画です。(2009年9〜12月) 初の国際カンファレンスであった PostgreSQL Conference 2009 を記念したものです。 第1回 PostgreSQLの今を知る 記念すべき第 1 回は、PostgreSQL の今を知るために、改めて PostgreSQL について見つめなおします。(gihyo.jp に掲載した記事の再掲載です。) 第2回 PostgreSQLの機能を他のデータベースと比較してみてみよう PostgreSQL の機能と他の RDBMS の比較です。PostgreSQL を商用 RDBMSMySQL と比較して紹介します。 第3回 PostgreSQLの利用事例と情

  • PostgreSQL の構造とソースツリー(1) — Let's Postgres

    PostgreSQL では、ユーザが独自にユーザ定義関数の処理系を定義することができます。 そこで各種言語用のサーバサイドスクリプトがサードパーティーによって提供されています。 主なものとしては、Ruby, Java, PHP などがあります。 それでは、もう少し詳しく PostgreSQL の構造を見てみましょう。 バックエンド側はいくつかのプロセスから構成されています。 postgres (常駐プロセス) バックエンドを管理する常駐プロセスです。 "postmaster" とも呼ばれます。 デフォルトでは postgres は UNIX ドメインソケットと TCP/IP の 5432 番のポートを listen しており、フロントエンドがここに接続するのを待ち受けています (Windows など、一部のプラットフォームでは TCP/IP のみ)。 待ち受けるポート番号は Postgre

  • 稼動統計情報を活用しよう(2) — Let's Postgres

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 稼動統計情報を取得してみよう では、実際に稼動統計情報を取得してみましょう。稼動統計情報は、PostgreSQLのテーブルやビューの形で提供されています。pg_stat_* という名称のテーブル/ビューがそれらに当たります。そのため、取得にはSQLを用います。なお、psqlの\dコマンドなどでpg_stat_*のビュー定義を見てみると、pg_stat_get_*() 関数で各種情報が取得されていることが分かると思います。稼動統計情報を直接取得するには関数を使うのですが、それをビュー経由でユーザが閲覧できるようになっています。項では、pg_stat_*で提供されているビューを読み解いていくことにします。 それでは、前ページの冒頭で紹介した情報について具体的に解説していきます。下記は稼動統計情報の中でも多用される情報ですので、覚えておくと

  • 第2回 XPathの基礎 ~XMLデータ内を検索するPostgreSQL XPath機能の紹介~ | Let's POSTGRES

    響 楽人 前回は、XML型を使ってXMLデータをPostgreSQLに格納できることを確認しました。その際、格納されたXMLデータを取り出す例で、条件を付けるためにXPathと呼ばれる記述法を一部使いました。そこで今回は、格納したXMLデータを取り出す時に、様々な条件を付けて、XMLデータの特定の一部分にアクセスすることのできるXPathの記述法について説明します。PostgreSQLでは8.3から標準でXPath式を評価する機能が追加されています。 ところで、今回の記事のタイトルに “検索” とありますが、ふつう“検索”というとテキストでの検索をイメージすることでしょう。しかし、XPathを使ったXMLデータ内の「検索」はそれとは異なります。情報がフラットな形で表現されているテキスト情報とは違い、XMLデータは構造化されており、それ自体がデータベース化された情報のようなものだからです。X

  • PHPでのSQLインジェクション対策 - プレースホルダ編 | Let's POSTGRES

    第四企画 坂井 潔 SQLインジェクションの脅威からシステムを守るために、プログラミング言語/スクリプトからSQLを発行するときには、パラメータを適切に処理しなくてはなりません。今回はプレースホルダ編と題し、SQLインジェクション対策として最も簡単で効果的な方法を、PHPで説明します。 SQLインジェクションとは? まず「SQLインジェクション」とは何かおさらいしましょう。SQLインジェクションとは、アプリケーション(この場合はPHPスクリプト)に渡すパラメータの値を操作することで、元々は意図されていない処理をSQLとして実行させてしまうことです。 簡単な例をあげてみます。ユーザーから文字列「山田」が渡されたとき、以下のようなSELECT文を発行することにします。 SELECT * FROM users WHERE username LIKE '%山田太郎%'; ユーザーに入力された文字列

  • バックアップとリストア | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 鈴木 幸市 記事では、PostgreSQLデータベースのバックアップとリストア方法を解説していきます。 今回は、各種バックアップの概要を説明し、次回以降でそれぞれの方法の具体的な手順を示していきます。 用語の整理 「バックアップ」とは、データベースの障害に備えたり、アップグレードの際にデータを移行するために、データベースの内容を別のファイルに取り出すことをいいます。 バックアップには、データをSQLやテキストデータとして取り出す「論理バックアップ」と、データファイルをそのまま保存する「物理バックアップ」があります。 論理バックアップでは SQL の結果としてデータを保存するので、もちろん PostgreSQL サーバは動作したままです。 一方、物理バックアップでは、サーバを停止した状態でバックアップを行う「オフライン・バックアップ」と、サーバを起

  • PostgreSQL導入に向けての取り組み ~大規模システムへの適用を目指して~ | Let's POSTGRES

    NTTコムウェア株式会社 基盤技術部 山内 孝彦 吉田 敏和 はじめに 2009 年 11 月に JPUG 10 周年記念として開催された「PostgreSQL Conference 2009 Japan」において、「大規模システムへの PostgreSQL の適用」に向けた NTTコムウェア株式会社(以下 NTTコムウェア)の取り組みについて発表させて頂きました。 今回は当日説明させて頂いた内容に加えて、そこに至った背景なども合わせてご紹介いたします。 1. NTTコムウェアの紹介 NTTコムウェアは 1985 年に日電信電話株式会社内に発足した中央ソフトウェアセンタが起点となり、 1997 年に NTTコミュニケーションウェア株式会社として設立され、 2000 年に NTTコムウェア株式会社に社名を変更し、現在に至ります。 設立当初は NTTグループ内の情報通信システムのソフト開発

  • 稼動統計情報を活用しよう(3) — Let's Postgres

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 有用な情報を持つテーブル / ビュー 稼動統計情報を持つテーブルとビューの一部について、どのような情報を蓄積しているかを紹介します。前ページで稼動統計情報の取得方法を述べましたが、紹介したもの以外にも、下記に示すように色々な情報が取得できます。 pg_stat_database DB単位で、実施された表スキャンやインデックススキャン数などが確認できます。DB単位でざっくりとしたアクティビティ状況を確認するのに便利です。このビューでは下記の項目を確認できます。 pg_stat_database 名前 ver. 説明

  • Pgpool-II | Let's POSTGRES

    メインコンテンツに移動 pgpool-II を使用した PostgreSQL の様々なクラスタ構成を紹介します。 ブックナビゲーション 入門向けの記事 技術的な記事 PostgreSQL13の新機能 PostgreSQL 8.4 の新機能 PostgreSQL 9.0 の新機能 PostgreSQL 9.1 の新機能 PostgreSQL 9.2 の新機能 PostgreSQL 9.3 の新機能 PostgreSQL 9.4の新機能 PostgreSQL 9.5の新機能 PostgreSQL 9.6の新機能 PostgreSQL10の新機能 PostgreSQL11の新機能 PostgreSQL12の新機能 PostgreSQL14の新機能 PostgreSQL15の新機能 PostgreSQL16の新機能 pgpool-II 3.2 の新機能 pgpool-II 3.3 の watchd

  • RPMで複数バージョンのPostgreSQLをインストールしてみよう | Let's POSTGRES

    笠原 辰仁 はじめに この記事は、PostgreSQL Advent Calendar(#5)に参加しています。 以前に、CentOSでPostgreSQLをインストールする方法やyumでPostgreSQLをインストールする方法がLet's Postgresで紹介されました。これらはいずれもRPMを使ったインストール方法でした。ところで、RPMについてはRedHatなどディストリビュータが作成しているものもあれば、コミュニティで作成されているものもあります。CentOSでのインストールはCentOSコミュニティが、yumでのインストールはPostgreSQLのコミュニティがそれぞれ作成しているRPMが配布されています。 最近、といっても昨年の2010年にPostgreSQLの9.0がリリースされた時からですが、コミュニティやCent、RedHatで配布されているRPMのポリシーがいくつか

  • PostgreSQL 8.4 の新機能 | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 2009年7月1日、PostgreSQL 8.4 がリリースされました。以前のバージョンから1年5ヶ月ぶりのリリースです。数多くの新機能が盛り込まれていますが、大まかに以下のカテゴリに分けて紹介します。今回は、応用SQL、大規模対応に引き続き、運用管理に関する新機能をご紹介します。 応用SQL 大規模対応 運用管理 その他の情報 その他の新機能 次のバージョンへ先送りされた機能 公式のリリースノートは PostgreSQL 8.4プレスキットを参照してください。ソースコードと各プラットホーム向けのバイナリもダウンロードできるようになっています。 応用SQLに関する新機能 応用SQLに関する機能では、特に「再帰SQL」と「Window関数」への対応が大きいでしょう。 PostgreSQL は標準SQLに良く準拠していると評価されることが多

  • Explaining Explain ~ PostgreSQLの実行計画を読む ~ (PPT版) — Let's Postgres

    Explaining Explain ~ PostgreSQLの実行計画を読む ~ (PPT版) OSCON 2005 で講演され、2005年のJPUG夏合宿で分担して翻訳した発表資料です。PostgreSQL 8.3 に対応できるよう内容を更新しています。 Click here to get the file Size 170.0 kB - File type application/vnd.ms-powerpoint

  • PostgreSQL普及の課題と展望 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 坂田 哲夫 第2回 PostgreSQL普及の課題と展望 ― 商用サポートの動向とコミュニティの活用 普及する上での課題 この記事の第1回では PostgreSQL の普及の現状について報告しました。まとめると、次のようになります。 すでに、30%以上の IT 企業で PostgreSQL を業務として利用しており、近いうちに半数近い企業が利用する見込みです。 近年増えつつある、Oracle からのデータベースの移行先としては、OSS の DBMS では圧倒的に PostgreSQL が選ばれる傾向があり、MySQL が普及していると考えられる Web アプリケーションの分野でも MySQL と同程度には利用されていると見られます。 PostgreSQL が選ばれる理由は、その機能や性能が十分実用に耐えるレベルに達しているためである、と考えられます

  • passwordcheck — Let's Postgres

    笠原 辰仁 はじめに エントリは、PostgreSQL Advent Calendar 2012の12月4日分です。 昨今のwebサービスやOSのユーザ作成時には、推測されやすい弱いパスワードを弾く機能が標準で備わっています。これらの検査は一般的にはアプリケーションで実施されることが多いでしょう。しかし、DBのホスティングサービスやDaaS(Database as a Service)に代表されるように、PostgreSQLなどDBMSそのものを提供するサービス機構では、DBMSでのユーザ登録時に弱いパスワードを弾く機能が求められることもあります。しかし、PostgreSQL体にはパスワードの強度を検査する仕組みはありません。 passwordcheckは、PostgreSQLのユーザやロールに指定するパスワードに対して検査を行い、推測されやすい弱い文字列を弾く仕組みを提供するcont

  • 文字列処理の比較 | Let's POSTGRES

    FORCIA, Inc. 板垣 貴裕 PostgreSQLSQL から利用できる関数 (以下、SQL関数) を豊富に提供しています。 今回は文字列の処理に注目して、SQL関数と、プログラミング言語の標準ライブラリが提供する機能を比較してみます。 比較対象のプログラミング言語は JavaJavaScript です。 PostgreSQL での文字列型の使い方全般に関しては、「文字列処理と日語全文検索」も参照してください。 全般的な比較 SQL, Java, JavaScript すべて、文字列は変更不可能なオブジェクトです。 また、空文字と null は異なることも、すべての言語で共通しています。 違いとしては、文字のインデックス (添字, 文字の位置) の表現方法があります。 SQL関数では、最初の文字のインデックスは 1 です。 一方、Java, Java Script で

  • PostgreSQL アンカンファレンス@東京(2) | Let's POSTGRES

    NTTデータ 藤井雅雄 ・ 澤田雅彦 ゆるいテキスト検索 原田氏による、ゆるいテキスト検索(類似検索・正規化など)についての話です。全文検索時によく問題となる表記ゆれ(ブとヴ、ニャルラトホテプとニャラルトホテプなど・・)を解決すべく、原田氏が独自にPostgreSQLにHookを仕込み、類似検索用の評価関数を差し込んだ結果がデモと共に解説されました。愉快な検索例などで笑いも交えつつ、わかりやすい講演で参加者を楽しませていました。Hookそのものの解説や、シソーラス(類義辞書)や機械学習に頼らないストイック?な実装、表記ゆれを解決する全文検索としての有用性などの話もあり、短い時間で多くの技術要素が盛り込まれた講演でした。講演の資料はこちらにあります。 PG9.3の新しいロックモード 笠原氏による、PostgreSQL9.3で新規に加わったロックモードについての話です。PostgreSQL

  • PostgreSQLでXMLを処理してみよう!(最終回)(2) | Let's POSTGRES

    3. PostgreSQLでのXML名前空間対応 ~xpath関数での名前空間指定~ 連載でこれまでに使ったXMLデータではXML名前空間を指定していませんでしたが、多くのXML利用では名前空間接頭辞をつけて要素名を表現する方法がよく使われます。 (これによって、一つのXMLデータの中で異なるXML Schemaで定義された要素を衝突することなく使い分けることができます。) この記事で使用したXMLデータ (record001.xml) を名前空間接頭辞を加えて表現すると以下のようになります。 名前空間付きXMLデータ(record002.xml) : <?xml version="1.0" encoding="Shift_JIS"?> <a:work-record xmlns:a="http://www.postgresql.jp/schema/workhistory" xmlns:x