タグ

ブックマーク / lets.postgresql.jp (299)

  • 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

  • PostgreSQL 超入門 第3回 (3) | Let's POSTGRES

    Excel の表では、行数は最大約 65,000行です。データベースの表の行数にはそのような制限はありません。何千万行でも何十億行でも扱うことができます。Excel の表はメモリ(仮想メモリが使えるので実際のメモリのサイズよりも大きい表が扱えますが)のサイズが上限ですが、データーベースの表にはそのような制限はありません。仮想メモリの数百倍、数千倍のサイズの表を作ることができます。 Excel では、処理中に PC がクラッシュしたり電源が切れたりすると、保存していない部分は失われてしまいます。 データベース管理システムでは、このようなことが起きないように、大量のデータを効率よく読み書きするだけではなく、変更の確定したデータが破壊されたり失われたりすることがないような配慮がなされています。 データベース管理システムはデータの変更が確定するたびに、データベースの変更記録(ログ)を常に保存し続け

  • PHPの内部エンコーディングでUTF-8を使う | Let's POSTGRES

    語などASCII以外の文字集合を使う場合は、そのシステムでどの文字セットをメインに使用するか、ということが最初に決めるべき事項の1つです。代表的なものにShift_JIS(SJIS、SJIS-win)、EUC-JP(eucJP-win)、UTF-8、UTF-16などがあります。 ただShift_JISなど、バックスラッシュ(≒エスケープ記号)が通常の文字の2バイト目として含まれてれる可能性のある文字エンコーディングでは、正規表現関数(preg_*** あるいは eregなど)や、マルチバイト文字列関数(mb_***)などの関数が正しく動かないケースや、各種エスケープ処理が意図した通りには動作してくれないことが多々あります。 また、PHPの内部エンコーディングをPostgreSQLで使用する文字セットと揃えておくことで、変換にかかるサーバ上のコストや変換で生じる脆弱性を低減することができ

  • Insideラージオブジェクト — Let's Postgres

    SRA OSS, Inc. 日支社 石井 達夫 ラージオブジェクトとは たいていのDBにはBlob(Binary large object)などと呼ばれる、巨大オブジェクトを扱う仕組みがあります。これを使うと、画像や動画、あるいは巨大なテキストなどをDBで扱うことができるようになります。PostgreSQLの場合には、「ラージオブジェクト」(Large Object)と呼ばれており、PostgreSQLのラージオブジェクトは、今のところデフォルトで2GBまで、9.3以降では4TBまでを扱えるようになります(この改良は、安齋氏、長田氏、それに私によって行われました)。 普通のファイルに画像や動画をおいて管理する方法もありますが、ラージオブジェクトを使うメリットとしては、 PostgreSQLがアクセス手段を提供してくれるので、リモートにあるオブジェクトをアクセスする方法をアプリケーションが

  • 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

  • 2013-02 PostgreSQL アンカンファレンス@東京 | Let's POSTGRES

    笠原 辰仁 ・ NTTデータ 江川大地 PostgreSQL Unconference 2013年2月16日に市ヶ谷の(株)アシストさんのオフィスにて、JPUG主催の、日(世界でも?)初のPostgreSQLのアンカンファレンスが開催されました。場所と1セッションあたりの時間だけ決められており、講演者や講演内容は当日に決まるというある意味"ゆるい"カンファレンスでした。それでも当日は40名近い参加者が集まり賑やかなイベントとなりました。レポートはアンカンファレンスの模様をざっくりとお伝えします。 主催者挨拶 最初に、JPUGの永安氏(@snaga)から挨拶がありました。この時点ではまだ講演内容など一切が決まっていませんでした。とりあえず、1セッションの最大時間を20分とし、2トラックでそれぞれ10セッションを走らせるというスケジュールが伝えられました。その後、会場の入り口にあるホワイト

  • pgAgentでジョブを定期実行する | Let's POSTGRES

    はじめに pgAgentはPostgreSQLのジョブ・スケジューラです。似たような機能を持つものにMicrosoftSQL Server Agentがあります。pgAgentは、Windows, Linux, MacOS X, Solaris, FreeBSDなど、いろいろなOSで動作します。pgAgentを使うと、権限を持ったユーザが、単一または複数のSQLやシェルコマンド、バッチコマンドなどをスケジュール通りに実行できます。古いレコードをアーカイブしたり、日々のトランザクションをバッチ処理する、というようなメンテナンス用の処理を実行させるのが一般的な利用方法です。 通常は、pgAgentをデータベースが稼働している同じサーバにインストールして使いますが、複数のpgAgentを、データベースが稼働するサーバ以外のサーバにインストールする方がよい場合もあります。pgAdminを使うと

  • PostgreSQL 超入門 第3回 (2) | Let's POSTGRES

    ところで、Excel に出てくる表とデータベースの表では少し違いがあります。その違いを次に解説します。 データベースの表では、フィールド同士を連結したり、一つのフィールドを複数のフィールドに分割したりすることはできません。一つのフィールドに入れることができるデータは、一つです(ただし、データとして配列など、複数の値が入るように拡張してあります)(図3-2)。 図3-2 ● フィールドの分割結合はできない 行の順序には意味がありません。データベースからデータを読み出した場合、特に順序を指定しなければ、読み出される順は予測することはできません。入力した順序というわけでもありません。実際データを読み出す際には、データの順序を一定にする手段がいろいろと用意されています(図3-3)。 図3-3 ● 行の順序には意味はない 行は、それぞれのフィールドの値でだけ区別されます。したがって、図7にあるように

    PostgreSQL 超入門 第3回 (2) | Let's POSTGRES
  • PostgreSQL の構造とソースツリー(2) — Let's Postgres

    PostgreSQLのソースコード PostgreSQL のおおまかな構造がわかったところで、PostgreSQL のソースコードの構造を見ていきましょう。 PostgreSQL が現在の形になったときは 20 万行ほどだったソースコードは、今では 100 万行ほどあります。 これほどの量になると、闇雲にコードを読んでも理解するのは難しいでしょう。 そこでまず稿で大まかなソースコードの構造を理解していただきたいと思います。 トップレベル PostgreSQL のソースコードを展開すると、トップレベルには表のようなファイルやディレクトリがあります。 トップレベルで configure; make; make install を行なえば、基的なインストールはすぐにできるようになっています。 実際には、PostgreSQL のソースからのインストールは極めて容易です。 ファイル/ディレクトリ

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

    3.2 性能面の着目点2:スケーラビリティ ここまで性能とその安定性を検証してきました。 ここでは「コストパフォーマンス」という観点から、CPU スケーラビリティに関する検証結果をご紹介します。 大規模システムでスケールアップの要求を満たせるのかという観点で、参照系トランザクションを主体に構成される TPC-W モデルを参考に作られた DBT-1 というベンチマークプログラムを用いて CPU スケーラビリティを計測してみました。 図3.2-1 IA サーバでは 16 コアまではスケールする事が確認できましたが、4 → 8 コアでのスケーラビリティに比べ、 8 → 16 コアでのスケーラビリティは低くなっており、コストパフォーマンスの観点で PostgreSQL 8.4 は 8 コアマシンで使用するのがお勧めと言えます。 また、今回ご紹介しませんが OS・ハードウェアアーキテクチャの点から、

  • pgpool-II 3.2 の新機能 (1) 概要 — Let's Postgres

    はじめに 2012 年 8 月にリリースされた pgpool-II 3.2 では、    DBへの検索リクエストを実効的に高速化するオンメモリクエリキャッシュ、 可用性を高めるウォッチドッグ機能などが搭載され、より PostgreSQL を高速、安全に利用できるようになりました。 記事では、まず pgpool-II 3.2 の概要を説明します。オンメモリクエリキャッシュとウォッチドッグに関しては、 別ページで詳細に解説します。 pgpool-IIとは pgpool-II についてまだあまりご存知のない方のために、pgpool-II とは何かという事を簡単にご紹介します。 すでに pgpool-II についてよくご存じの方は、次の章までとばして頂いて構いません。 pgpool-II は、PostgreSQL のクライアントアプリケーションと、(複数の)PostgreSQL の間に割り込んで

  • pgpool-II 3.2 の新機能 (3) Watchdog | Let's POSTGRES

    watchdog とは 従来の pgpool-II で複数の PostgreSQL を連携させる場合、pgpool-II 自体、あるいは pgpool-II が動いているサーバや OS に障害が発生すると全体のサービスが停止してしまうため、ここが単一障害点(Single Point Of Failure: SPOF)となっていました。watchdog は、複数の pgpool-II の連携によってこの問題を解決し、pgpool-II の可用性を高める機能です。この機能により、サービスを提供する主系(アクティブ)の pgpool-II に障害が発生した場合でも、それを検知した待機系(スタンバイ)の pgpool-II が主系に取って代わって運用を継続する、すなわち pgpool-II のフェイルオーバが実現可能になりました。 今まではこのような構成をとるためには pgpool-HA というパ

  • PostgreSQL 9.2 リリース! — Let's Postgres

    ニュースは、石井達夫氏による紹介 を 転載させていただいています。 ※ Let's Postgres では近日、それぞれの新機能について詳しく紹介する予定です。ご期待ください! 待望の PostgreSQL 9.2.0 がついにリリースされました。 PostgreSQL 9.2.0 では、大幅な性能改善や各種の機能追加が行なわれています。 検索性能の大幅な改善。マルチ CPU 環境では最高 64 コアまで検索性能が向上することが確認されています。 インデックスだけを見て検索を行なう "index only scan" により、 特に大規模データで数十倍の性能向上が得られる場合があります。 スタンバイサーバから更に別のスタンバイサーバにレプリケーションを行なう カスケードレプリケーション アナウンス(英語) http://www.postgresql.org/about/news/14

  • 統合監視ソフトウェア Zabbix で PostgreSQL を監視しよう | Let's POSTGRES

    (1) はじめに 記事では、OSS 統合監視ソフトウェア Zabbix を利用した PostgreSQL の監視方法を紹介します。 (2) 統合監視ソフトウェアとは システム監視は、ハードウェアの稼働監視、CPU などのリソース監視や アプリケーション監視など多岐にわたります。 監視や監視データの保存、障害が発生したときの通知設定を一元的に行って システム監視を自動化するソフトウェアを、統合監視ソフトウェアと呼びます。 統合監視ソフトウェアを用いると、内部状態が刻々と変化するデータベースの稼働状況と OS の状態を容易に蓄積できるので、障害発生時の通知だけでなく、障害が発生する前に データベース状態を把握することで対策を取ることもできるようになります。 また過去取得したデータを元に障害発生後に原因を追究したり将来を予想するなどに 役立てることができます。 オープンソースで利用できる統合監

    統合監視ソフトウェア Zabbix で PostgreSQL を監視しよう | Let's POSTGRES
  • 第三回 HOTの上手な使い方 | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 さて、HOTシリーズの第3回目となりました。前回・前々回を通じて、HOTがどんな効果を持ち、どのように振舞うのかを見てきました。今回は、HOTを上手く使うためのコツを解説していきたいと思います。HOTの機能を上手く生かすには何が必要になるのでしょうか?次の4つのキーワードに沿って進んでいきましょう。 インデックスキーの更新は避けよう 使われないインデックスは削除しよう ページの空き領域を確保しておこう ロングトランザクションに要注意 インデックスキーの更新は避けよう! 1つ目のコツは、「インデックスキーの更新を避ける」です。 HOTが機能するための前提として、「インデックスキーの更新が起こらない」ことが挙げられます。もちろん、必要不可欠なインデックスキーの更新処理は避けることができませんが、HOTを機能させるための条件ですので、覚えてお

    第三回 HOTの上手な使い方 | Let's POSTGRES
  • WindowsでPostgreSQLを使ってみよう — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 Windows Vista へ PostgreSQL をインストールし、データベースを利用するための環境を整えます。インストールには EnterpriseDB 社のバイナリ・パッケージを使います。解説の最後で、初期設定やデータの移動に関する、よくある質問についても補足します。 インストールの流れ 最初にインストールが何を行うのかと、インストールされるファイルを整理しておきます。PostgreSQL サーバ体に関しては、ウィザードに従えば一括でインストールされます。 ダウンロード バージョン 8.4 では、Windows 用のパッケージは EnterpriseDB 社によりメンテナンスされています。コミュニティのダウンロードページから辿れるインストーラを利用するのが手軽です。postgresql-8.4.0-1-windows.exe

  • PostGIS 単純なデータ処理をやってみる | Let's POSTGRES

    農業・品産業技術総合研究機構 近畿中国四国農業研究センター 寺元 郁博 はじめに PostGIS では、幾何関数やジオメトリ型を、PostgreSQL のクエリの中に混ぜ込むことができます。 WHERE 句に幾何関数を使ったり、INSERT, UPDATE 等で使用することができます。 ビューで扱うこともできます。 今回はごく簡単なデータ処理の例を示してみます。 広島県内の市区町村ごとの駅の数を数え上げて、多いところ少ないところを色分けして表示します。 数え上げまでを PostGIS で行います。 例での前提は次の通りです。 データベース名は pgis 格納するデータは2種類 国土数値情報 (行政区域) のうち広島県 国土数値情報 (鉄道) テーブルは3つ admarea station rail (使用しません) 全テーブルのジオメトリカラム名は the_geom (shp2pgsq

    PostGIS 単純なデータ処理をやってみる | Let's POSTGRES