リモートホストからデータをロードする
COPY コマンドでは、Amazon EC2 インスタンスもしくは他のコンピュータなど、1 つ以上のリモートホストから並列的にデータをロードすることができます。COPY では SSH を使用してリモートホストに接続し、そのホスト上でコマンドを実行しテキスト出力を生成します。
リモートホストになることができるのは、Amazon EC2 の Linux インスタンスか、SSH 接続を許可するように設定されている Unix コンピュータまたは Linux コンピュータです。このガイドでは、リモートホストが Amazon EC2 インスタンスであることを前提としています。これ以外のコンピューターの場合に手順が異なるときは、その都度説明します。
Amazon Redshift は複数のホストに接続でき、各ホストに対して複数の SSH 接続を開くことができます。Amazon Redshift は、各接続を介して一意のコマンドを送信し、ホストの標準出力にテキスト出力を生成します。その後、Amazon Redshift はテキストファイルと同じように読み込みます。
開始する前に
開始する前に、以下があることを確認してください。
-
1 台以上のホストマシン (SSH を使用して接続できる Amazon EC2 インスタンスなど)。
-
ホストのデータソース。
テキスト出力を生成するために Amazon Redshift クラスターがホストで実行するコマンドを指定します。COPY コマンドは、クラスターがホストに接続するとコマンドを実行し、ホストの標準的な出力先からテキストを読み込み、Amazon Redshift テーブルにデータを並列的にロードします。テキストの出力は、COPY コマンドが取り込むことができる形式であることが必要です。詳細については、「入力データを準備する」を参照してください。
-
コンピューターからホストへのアクセス権。
Amazon EC2 インスタンスでは、ホストにアクセスする際に SSH 接続を使用します。このため、ホストにアクセスし、ホストの承認されたキーファイルに Amazon Redshift クラスターの公開キーを追加する必要があります。
-
実行中の Amazon Redshift クラスター。
クラスターを起動する方法については、Amazon Redshift 入門ガイドを参照してください。
データをロードする手順
このセクションでは、リモートホストからデータをロードする手順を説明します。以下のセクションでは、各ステップで必要な操作の詳細を説明します。
-
ステップ 1: クラスターパブリックキーおよびクラスターノード IP アドレスを取得する
公開キーは、Amazon Redshift クラスターノードがリモートホストへの SSH 接続を確立するために使用されます。各クラスターノードの IP アドレスを使用して、その IP アドレスによる Amazon Redshift クラスターからのアクセスを許可するように、ホストのセキュリティグループまたはファイアウォールを設定します。
-
ステップ 2: ホストの承認されたキーファイルに Amazon Redshift クラスターの公開キーを追加する
ホストが Amazon Redshift クラスターを認識し、SSH 接続を許可するように、ホストの認可されたキーファイルに Amazon Redshift クラスターの公開キーを追加します。
-
ステップ 3: Amazon Redshift クラスターの IP アドレスすべてを許可するようにホストを設定する
Amazon EC2 の場合、インスタンスのセキュリティグループを変更して、Amazon Redshift の IP アドレスを許可する進入ルールを追加します。他のホストの場合には、Amazon Redshift ノードがリモートホストに対して SSH 接続を確立できるようにファイアウォールを設定します。
-
Amazon Redshift がホストの識別に公開キーを使用するように指定することもできます。この場合、パブリックキーを探してマニフェストファイルにテキストをコピーする必要があります。
-
マニフェストは、Amazon Redshift がホストに接続し、データを取得する際に必要になる詳細情報が記載された JSON 形式のテキストファイルです。
-
ステップ 6: Amazon S3 バケットにマニフェストファイルをアップロードする
Amazon Redshift はマニフェストを読み込み、その情報を使ってリモートホストに接続します。Amazon S3 バケットが Amazon Redshift クラスターと同じリージョンに存在しない場合は、REGION オプションを使用して、データがあるリージョンを指定する必要があります。
-
ステップ 7: COPY コマンドを実行してデータをロードする
Amazon Redshift データベースから COPY コマンドを実行して、Amazon Redshift テーブルにデータをロードします。