11.1.11 実表のデータをファイルに出力する方法(データをエクスポートする方法)
実表に格納されているデータをファイルに出力する場合,次に示す3つの方法があります。
-
adbexportコマンドを実行する
adbexportコマンドを実行すると,実表に格納されているデータをファイルに出力できます。
-
実表に格納されている全データを出力したい場合は,-nオプションに処理対象表を指定してadbexportコマンドを実行してください。
-nオプションに指定した処理対象表に格納されているデータを出力できます。
-
実表に格納されているデータのうち,特定の条件を満たすデータだけを出力したい場合は,-qオプションを指定してadbexportコマンドを実行してください。
-qオプションのSQL記述ファイルに指定したSQL文の検索結果を出力できます。
adbexportコマンドを使用すると,adbsqlコマンドよりも短時間でデータを出力できます。ただし,adbexportコマンドは,HADBサーバで実行できますが,HADBクライアントでは実行できません。
adbexportコマンドについては,マニュアルHADB コマンドリファレンスのadbexport(データのエクスポート)を参照してください。
-
-
adbsqlコマンドを実行する
adbsqlコマンドで実表のデータを検索して,検索結果をリダイレクションすると,実表のデータをファイルに出力できます。
なお,adbsqlコマンドは,HADBサーバおよびHADBクライアント(Linux版)で実行できます。
adbsqlコマンドについては,マニュアルHADB コマンドリファレンスのadbsql(SQLの実行)を参照してください。
-
COPY文を実行する
COPY文で実表のデータを検索し,その検索結果を外部のオブジェクトストレージ(Amazon S3またはAmazon S3互換オブジェクトストレージ)またはファイルストレージに,PARQUET形式またはCSV形式のデータでファイルに出力します。
(例1)
COPY (SELECT * FROM "T1") TO 's3://hadb.bucket/shoplist/' SERVER "FOREIGNSERVER1"上記は,外部のオブジェクトストレージのs3://hadb.bucket/shoplist/ディレクトリ下に,表T1の全データをPARQUET形式のデータでファイルに出力する例です。
(例2)
COPY (SELECT * FROM "T1" WHERE "REG-DATE">=DATE'2025-04-01') TO 's3://hadb.bucket/shoplist/' SERVER "FOREIGNSERVER1"上記は,外部のオブジェクトストレージのs3://hadb.bucket/shoplist/ディレクトリ下に,表T1の2025年4月1日以降のデータをPARQUET形式のデータでファイルに出力する例です。
COPY文については,マニュアルHADB SQLリファレンスの操作系SQLのCOPY(検索結果のファイルへの出力)を参照してください。
- メモ
-
COPY文を実行する際,HADBサーバは外部データアクセス用ライブラリを使用します。
基本的には,adbexportコマンドで実表に格納されているデータを出力することを推奨します。HADBクライアント(Linux版)で,実表のデータをファイルに出力する必要がある場合は,adbsqlコマンドを使用してください。また,外部のオブジェクトストレージまたはファイルストレージに実表のデータを出力する場合は,COPY文を使用してください。
上記3つの方法の特徴を次の表に示します。
|
方法 |
実行環境 |
データの出力形式 |
特徴 |
|---|---|---|---|
|
adbexportコマンド |
HADBサーバ |
CSV形式 |
ほかの方法よりも短時間でデータを出力できます。 |
|
adbsqlコマンド |
|
CSV形式 |
HADBクライアントでコマンドを実行できます。 |
|
COPY文 |
|
|
|
- 重要
-
待機状態のチャンク内のデータを出力したい場合は,次のどちらかを実施してください。
-
チャンクIDを指定して待機状態のチャンク内のデータを出力する
チャンクIDを指定してadbexportコマンドやadbsqlコマンドを実行すると,待機状態のチャンク内のデータも出力できます。詳細については,「11.5.5 チャンク単位にデータをエクスポートする方法」を参照してください。
-
待機状態のチャンクを通常状態のチャンクに変更する
通常状態のチャンク内のデータは,上記2つの方法で出力できます。そのため,adbchgchunkstatusコマンドで,待機状態のチャンクを通常状態のチャンクに変更してください。詳細については,「11.5.12 チャンクの状態を変更する方法」を参照してください。
-