PREPARATION
受験対策

Silverの例題解説
「S2.4 バックアップ方法」

今回は、Silverの「S2 運用管理 - S2.4 バックアップ方法」からの出題です。

例題

2.08

PostgreSQL で CSV 形式のファイルを入出力するための方法について、適切な記述を2つ選びなさい。

  1. SELECT 文の INTO 句で出力先ファイルを指定することにより、テーブルの内容を CSV 形式で出力することができる。

  2. psql でデータベースに接続し、\copy メタコマンドを使うことにより、テーブルの内容を CSV 形式で出力することができる。

  3. LOAD DATA 文により、CSV ファイルを読み込んで、PostgreSQL のテーブルに データをアップロードすることができる。

  4. COPY 文により、CSV ファイルを読み込んで、PostgreSQL のテーブルにデータをアップロードすることができる。

  5. pg_loader という、CSV ファイルを読み込むための専用のコマンドがある。

※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2011年11月15日

解答と解説

正解はBとDです。

テーブル単位で CSV 形式などのテキストファイルを入出力する機能は比較的重要度が高いですが、その方法は標準化されておらず、データベースの種類によって様々です。
PostgreSQL では、入出力とも、2つの方法があります。
一つは psql でデータベースに接続し、\copy メタコマンドを使う方法です。
\copy table_name to file_name [options]
とすることで、テーブル table_name の内容をファイル file_name に出力できます。
デフォルトではタブ区切りのテキスト形式の出力となりますが、オプションでcsv を指定するとカンマ区切りの CSV 形式になります。
同じように psql でデータベースに接続し、
\copy table_name from file_name [options]
とすることで、CSV 形式などのテキストファイル file_name を読み込み、テーブル table_name にアップロードすることができます。
もう一つは、COPY 文を使う方法で、データベースに接続し、
COPY table_name TO 'file_name' [options];
COPY table_name FROM 'file_name' [options];
とすることで、それぞれ出力、入力が実行できます。
COPY 文ではファイル名をシングルクォート(')で括る必要がある他、コマンドの形式やオプションにも \copy メタコマンドとは若干の違いがありますが、注意すべきはそれだけではありません。
\copy メタコマンドと COPY 文の最大の違いは、前者が psql ツールのメタコマンドとしてクライアント上で実行されるのに対し、後者は SQL としてサーバ上で実行されることです。
つまり、入出力の対象となるファイルは、\copy メタコマンドの場合はクライアントマシン上にあるのに対し、COPY 文の場合はサーバ上にあります。
COPY 文はサーバ上のファイルを読み書きするため、データベースの管理者ユーザでしか実行できないという制限があり、またファイル名は絶対パスで指定する必要があります。
一方で、\copy メタコマンドはネットワークを介して入出力データのやり取りをするのに対し、COPY 文ではサーバ内でファイルの入出力を行いますから、データサイズが大きい場合は、COPY 文の方がパフォーマンス的に有利となります。

この他、psql の出力先をリダイレクトすることで CSV などのテキスト形式のファイル出力を得るという方法もあります。この場合、SELECT 文の出力時の列の区切り文字などを変更する必要があります。

\copy メタコマンド、COPY 文、いずれも PostgreSQL 独自の方法であり、他のRDBMS ではこれとは異なる方法で CSV ファイルの入出力を行います。
例えば、MySQL では、SELECT 文の INTO 句で出力先ファイル名を指定することで、CSV などのテキスト形式でファイルを出力し、LOAD DATA 文により、CSV などのテキストファイルを読み込むことができます。
PostgreSQL でも SELECT 文に INTO 句がありますが、これはファイル出力ではなく、CREATE TABLE AS と同等の、新しいテーブルを作成する機能なので注意してください。

今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。

※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

企業の基幹システムや業務システムでの
OSS-DBの採用がますます拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定資格になります

OSS-DBの受験対策について

受験の学習をサポートする情報や対策に役立つ情報をご紹介

サンプル問題/例題解説

例題 のアーカイブを試験ごとにまとめています。OSS-DB技術者認定試験の学習にお役立てください

学習教材・教育機関のご紹介

OSS-DB認定教材や教育機関について詳しくご説明いたします。

無料技術解説セミナー

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

OSS-DB道場

受験準備をされていらっしゃる方々を対象に、無料技術解説セミナーの日程をお知らせしています。

LPI-Japan
Platinum Sponsors