加工したデータのうち、膨大な履歴や過去データなどの大量なデータから必要な情報を検索する場合は、ディスク検索を使用してアプリケーションを開発します。数十ギガバイトからテラバイト以上の大量データを検索する業務に適しています。
本機能は、XML文書またはCSVファイルを入力とし、コマンドや関数などを使用することで、アプリケーションからデータ検索できます。また、検索結果をソートまたは集計もできます。
利用者が開発する必要のあるアプリケーションは、以下です。
ディスク検索を使用するためには、以下の方法があります。
ディスク検索のコマンドを実行するアプリケーションを作成する方法
ディスク検索のコマンドを使用して検索実行アプリケーションを作成することで、大量データから高速にデータを抽出できます。
本機能は、XML文書またはCSVファイルを入力とし、条件にあったXML文書またはCSVファイルを出力します。
また、ディスク検索を実現するインターフェースは、以下を提供しています。
統合コマンド
基本コマンド
C APIの関数
ディスク検索の統合コマンドを使用する場合、以下の処理を実装することで検索実行アプリケーションを実現できます。
統合定義ファイルの生成
アプリケーションの入力情報などを元に、統合コマンド用の統合定義ファイルを生成します。
統合コマンドの実行
手順1.で生成したファイルと処理名/シナリオ名を引数とした統合コマンドを実行します。
結果出力
出力ファイルの内容を読込み、追加の整形処理をしてアプリケーションの結果を出力します。
統合コマンドの代わりに、抽出コマンド・連結コマンド・集計コマンド・ソートコマンドを組み合わせて実装することで、ディスク検索を実現もできます。
コマンドの代わりにC API(抽出関数・連結関数・集計関数・ソート関数)を組み合わせて実装することで、ディスク検索を実現もできます。
PostgreSQLを導入してファイルを検索する方法
PostgreSQLの外部テーブル機能を使用して、検索用データ領域にあるスキーマレス加工の結果ファイルをSQLから簡単に検索できます。
外部テーブル機能とは、PostgreSQLの外部にあるデータに対して、通常のテーブルと同様にアクセスできる機能です。
外部テーブル機能を使用するには外部データの種類に応じた外部データラッパを用意し、PostgreSQLに適用する必要があります。PostgreSQL本体同梱の外部データラッパであるfile_fdw(注)を使用した、PostgreSQLの外部テーブル機能によるディスク検索の導入方法を以下で説明します。
注) file_fdwは、タブ区切りやCSV形式のファイルを外部テーブルとして読み込むための外部データラッパです。
PostgreSQLのデータベースに対して、file_fdwを有効化します。
file_fdwはPostgreSQL本体同梱のextensionとして提供されているため、file_fdwを有効化するには下記のSQL実行のみで可能です。
=# CREATE EXTENSION file_fdw; =# CREATE SERVER file_server FOREIGN DATA WRAPPER file_fdw;
ファイルと外部テーブルを1対1でマッピングする、以下のようなDDLで外部テーブルを定義することで、SQLからのファイル検索が可能になります。
=# CREATE FOREIGN TABLE pglog ( log_time timestamp(3) with time zone, user_name text, database_name text, ) SERVER file_server OPTIONS ( filename '/home/josh/9.1/data/pg_log/pglog.csv', format 'csv' );
OPTION句では入力ファイルの情報(ファイルパスや区切り文字、ヘッダ有無など)を指定します。
同一形式の複数ファイルのデータをすべて検索対象にする場合は、それぞれのファイルで外部テーブルを作成した後、ビューですべての外部テーブルを結合することで実現できます。
ポイント
PostgreSQLは本製品に含まれていませんので、別途手配してください。
連携可能なPostgreSQLについては“3.2.3.4.3 検索サーバ上のPostgreSQLを使用したファイル検索の情報”を参照してください。
利用者のクライアント端末からの検索要求を受け付けて、ディスク検索サーバへの検索実行を依頼し、検索結果を応答するアプリケーションを作成する必要があります。必要に応じて、以下の機能も作成する必要があります。
検索ユーザーの認証・認可機能
検索の同時実行制御機能
参照
ディスク検索を使用してアプリケーションを開発するには、“加工編 導入・運用ガイド”を参照してください。