2.16 CSVファイル中のデータの検索
HADBでは,SELECT文を使ってCSVファイル(CSV形式のファイル)中のデータを検索することができます。例えば,前年度の販売管理データをCSVファイルに保管している場合,その販売管理データを表にインポートしなくても検索できます。
検索の際は,検索対象のCSVファイルのパスを指定したSELECT文を実行します。また,SELECT文に探索条件を指定することで,表にインポートしたデータの検索と同様に,条件に合致したデータを検索できます。CSVファイル中のデータ検索の概要を次の図に示します。
- 注※
-
圧縮されていないCSVファイル,またはGZIP形式で圧縮されているCSVファイル中のデータを検索できます。
- [説明]
-
-
CSVファイルのパスを指定したSELECT文を実行します。
CSVファイルのパスは,HADBが提供している関数(CSVファイル中のデータを取り出すADB_CSVREAD関数)中に指定します。
-
HADBサーバは,関数中に指定されたパスのCSVファイルにアクセスします。
-
HADBサーバは,CSVファイル中のデータを取り出し,表の形式で一時的に保存します。この一時的に保存された表形式のデータ集合を表関数導出表といいます。
-
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ファイルの解析処理が必要となる分,時間が掛かります。
-