Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


2.16 CSVファイル中のデータの検索

HADBでは,SELECT文を使ってCSVファイル(CSV形式のファイル)中のデータを検索することができます。例えば,前年度の販売管理データをCSVファイルに保管している場合,その販売管理データを表にインポートしなくても検索できます。

検索の際は,検索対象のCSVファイルのパスを指定したSELECT文を実行します。また,SELECT文に探索条件を指定することで,表にインポートしたデータの検索と同様に,条件に合致したデータを検索できます。CSVファイル中のデータ検索の概要を次の図に示します。

図2‒58 CSVファイル中のデータ検索の概要

[図データ]

注※

圧縮されていないCSVファイル,またはGZIP形式で圧縮されているCSVファイル中のデータを検索できます。

[説明]
  1. CSVファイルのパスを指定したSELECT文を実行します。

    CSVファイルのパスは,HADBが提供している関数(CSVファイル中のデータを取り出すADB_CSVREAD関数)中に指定します。

  2. HADBサーバは,関数中に指定されたパスのCSVファイルにアクセスします。

  3. HADBサーバは,CSVファイル中のデータを取り出し,表の形式で一時的に保存します。この一時的に保存された表形式のデータ集合を表関数導出表といいます。

  4. HADBサーバは,SELECT文に指定された探索条件に従って,表関数導出表を検索し,APに検索結果を返します。

ADB_CSVREAD関数を指定したSELECT文の例

GZIP形式で圧縮した次のCSVファイル中のデータを検索します。

  • /dir/file1.csv.gz

  • /dir/file2.csv.gz

  • /dir/file3.csv.gz

SELECT * FROM TABLE(ADB_CSVREAD(
           MULTISET['/dir/file1.csv.gz','/dir/file2.csv.gz','/dir/file3.csv.gz'],
          'COMPRESSION_FORMAT=GZIP;
           FIELD_NUM=1,2;
           ENCLOSING_CHAR=";
           DELIMITER_CHAR=,;'))
           AS "T1" ("C1" INTEGER, "C2" VARCHAR(32))
[説明]

下線部分がADB_CSVREAD関数の指定です。

ADB_CSVREAD関数には,CSVファイルの絶対パス名や,CSVファイル中の取り出し対象のデータなどを指定します。

ADB_CSVREAD関数については,マニュアルHADB SQLリファレンス構成要素システム定義関数ADB_CSVREAD関数を参照してください。

重要
  • CSVファイルは,次のどれかの条件を満たす必要があります。

    ・圧縮されていないCSVファイル

    ・OSのgzipコマンドでGZIP形式に圧縮されたCSVファイル

    adbexportコマンドでエクスポートした,GZIP形式に圧縮されたCSVファイル

  • CSVファイル中のデータを更新することはできません。

  • 表にインポートされているデータの検索と比べると,CSVファイル中のデータの検索は,CSVファイルの解析処理が必要となる分,時間が掛かります。