PREPARATION
受験対策

Silverの例題解説
「S2.4 バックアップ方法(COPY文(SQL)、\copyコマンド(psql)の使い方)」

今回は、Silverの「S2 運用管理 - S2.4 バックアップ方法(COPY文(SQL)、\copyコマンド(psql)の使い方)」からの出題です。

例題

2.124

psql を起動して、

\copy tablex from '/path/to/filename'

を実行する。以下の説明から適切なものを3つ選びなさい。

  1. テーブル tablex にファイル /path/to/filename の内容が追加される。
  2. ファイルからデータをロードするために簡便なコマンドであるだけでなく、SQLのINSERTを使うよりも高速に処理される。
  3. /path/to/filename はデータベースサーバ上のファイルなので、データベースプロセスを実行しているユーザ(典型的には postgres)にアクセス権限が必要である。

  4. /path/to/filename はタブ区切りのテキストファイルである。

  5. このコマンドを実行するには、データベースの管理者権限が必要である。

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

解答と解説

テーブルとファイルの間の入出力のために、PostgreSQLではCOPYというコマンドを用意しています(標準SQLのコマンドではなく、独自の拡張です)。

例えば、COPY テーブル名 FROM 'ファイル名' を実行すれば、指定したファイルの内容を読み取り、指定したテーブルにロードします。このコマンドはSQLとして実行できるだけでなく、psqlのメタコマンドとして \copy テーブル名 from 'ファイル名' の形式でも実行できます。

メタコマンドとして実行しても、内部的にはSQLのCOPYが実行されるので、機能も使用方法もよく似ていますが、重要な相違点として、ファイルの取り扱いがあります。

SQLはサーバ上で実行されるので指定するファイル名・パスもデータベースサーバ上のものとなり、データベースプロセスを実行するユーザにアクセス権限が必要です。ファイルのパス名も絶対パスで指定すべきです。また、サーバ上のファイルにアクセスするというセキュリティ上の理由で、コマンドの実行はスーパーユーザなど、特定の権限を有しているユーザに制限されています。一方で psql はクライアント・アプリケーションで、指定するファイルはクライアントマシン上のものになります。したがって、psql を実行しているユーザにアクセス権限があればよく、パス名も相対パスで問題ありません。実行するユーザにも使用するテーブルやファイルへのアクセス権限以外に特別な権限は必要ありません。

本問はメタコマンドの \copy に関するものですが、個々の選択肢について確認しましょう。

選択肢Aにある通り、このコマンドはファイル /path/to/filename の内容をテーブル tablex に追加するものです。
また、選択肢Bにある通り、ファイル入出力の簡便なインタフェースを提供するだけではなく、それを非常に高速に処理することを可能にしています。
選択肢Cは上で説明した通り、SQLのCOPYコマンドで実行する場合の話であって、psql の \copy メタコマンドの場合は事情が大きく異なります。
選択肢Dについて、COPYではタブ区切り、カンマ区切りのいずれも扱うことができますが、デフォルトではタブ区切りとして実行されます。
選択肢Eも上で説明した通り、管理者権限が必要なのはSQLのCOPYコマンドでファイル入出力する場合の話であって、psqlの \copy メタコマンドでは特別な権限は不要です。

したがって正解はA、B、Dです。

例題解説についてのご質問やご意見は以下からご連絡ください。

※本例題および解説は、例題作成者から提供されたものです。実際の試験問題とは異なります。
※実際の試験問題に関するお問い合わせについてはご回答いたしかねます。あからじめご了承ください。

企業の基幹システムや業務システム、AIなどの
新領域での「PostgreSQL」の採用が拡大している中、
昇格・昇給・就職・転職に必ず役立つ認定です

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

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

サンプル問題/例題解説

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

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

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

無料技術解説セミナー

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

OSS-DB道場

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