

# データターゲットノードの設定
<a name="data-target-nodes"></a>

データターゲットは、変換されたデータがジョブにより書き込まれる場所です。

## データターゲットでのオプションの概要
<a name="edit-jobs-target-overview"></a>

データターゲット (*データシンク*とも呼ばれます) は、次のようになります。
+ **S3** – ジョブにより、選択した Amazon S3 の場所にある、指定した形式のファイルにデータが書き込まれます。

  データターゲットにパーティション列を設定すると、ジョブによりパーティションキーに基づいて Amazon S3 へのデータセットがディレクトリに書き込まれます。
+ **AWS Glue Data Catalog** –データカタログ内のテーブルに関連付けられた情報を使用して、ジョブによりターゲットの場所に出力データが書き込まれます。

  テーブルは、手動で、またはクローラーを使用して作成できます。また、AWS CloudFormation テンプレートを使用して、データカタログにテーブルを作成できます。
+ コネクタ – コネクタは、データストアと AWS Glue 間の通信を容易にするコードの一部です。コネクタや関連付けられた接続を使用して、ジョブにより出力データがターゲットの場所に書き込まれます。で提供されるコネクタをサブスクライブするには、AWS Marketplaceまたは、独自のカスタムコネクタを作成することもできます。詳細については、「[AWS Glue Studio にコネクタを追加する](creating-custom-connectors.md#creating-connectors)」を参照してください。

ジョブにより Amazon S3 のデータターゲットに書き込みが行われる際、データカタログを更新するように選択できます。このオプションを使用すると、スキーマまたはパーティションの変更時に、クローラーをリクエストしなくてもデータカタログが更新されます。これにより、テーブルを最新の状態に保つことが容易になります。また、このオプションではデータカタログに新しいテーブルを追加したり、テーブルパーティションを更新したり、ジョブから直接テーブルのスキーマを更新できます。これにより、データを分析に使用できるようにするプロセスが簡略化されます。

## データターゲットノードの編集
<a name="edit-jobs-target"></a>

データターゲットは、変換されたデータがジョブにより書き込まれる場所です。

**ジョブ図でデータターゲットノードを追加または設定するには**

1. (オプション) ターゲットノードを追加する必要がある場合、ビジュアルエディタの上部のツールバーで [**Target**] (ターゲット) を選択し、その後 [**S3**] または [**Glue Data Catalog**] (Glue データカタログ) を選択します。
   + ターゲットに [**S3**] を選択した場合、ジョブにより指定した Amazon S3 の場所にある 1 つ以上のファイルにデータセットが書き込まれます。
   + ターゲットに [**AWS Glue Data Catalog**] を選択した場合、ジョブによりデータカタログから選択したテーブルによって記述された場所に書き込みが行われます。

1. ジョブ図でデータターゲットノードを選択します。ノードを選択すると、ページの右側にノードの詳細パネルが表示されます。

1. [**Node properties**] (ノードのプロパティ) タブを選択して、次の情報を入力します。
   + **Name** (名前): ジョブ図でノードに関連付ける名前を入力します。
   + **Node type** (ノードタイプ): 値は既に選択されていますが、必要に応じて変更できます。
   + **Node parents** (ノードの親): 親ノードは、ターゲットの場所に書き込む出力データを提供するジョブ図内のノードです。事前に設定されたジョブ図では、ターゲットノードで既に親ノードが選択されている必要があります。親ノードが表示されていない場合は、リストから親ノードを選択します。

     ターゲットノードは、単一の親ノードを持ちます。

1. **データターゲットのプロパティ**情報を設定する 詳細については、次のセクションを参照してください。
   + [データターゲットに Amazon S3 を使用する](#edit-job-target-S3)
   + [データターゲットにデータカタログテーブルを使用する](#edit-job-target-catalog)
   + [データターゲットにコネクタを使用する](#edit-job-target-connector)

1. (オプション) データターゲットノードのプロパティの設定後、ノードの詳細パネルの [**Output schema**] (出力スキーマ) タブを選択して、データの出力スキーマを表示できます。ジョブ内の任意のノードに対してこのタブを初めて選択すると、データにアクセスする IAM ロールを指定するよう求められます。[**Job details**] (ジョブの詳細) タブで IAM ロールをまだ指定していない場合、ここで IAM ロールを入力するよう求められます。

### データターゲットに Amazon S3 を使用する
<a name="edit-job-target-S3"></a>

Amazon S3 とコネクタを除くすべてのデータソースでは、選択するソースタイプの AWS Glue Data Catalog にテーブルが存在する必要があります。AWS Glue Studio はデータカタログテーブルを生成しません。

**Amazon S3 に書き込むデータターゲットノードを設定するには**

1. 新規または保存済みのジョブのビジュアルエディタに移動します。

1. ジョブ図でデータソースノードを選択します。

1. [**Data source properties**] (データソースのプロパティ) タブを選択して、次の情報を入力します。
   + **Format** (形式): リストから形式を選択します。データ結果に使用できる形式のタイプは次のとおりです。
     + **JSON**: JavaScript Object Notation。
     + **CSV**: カンマで区切られた値。
     + **Avro**: Apache Avro JSON バイナリ。
     + **Parquet**: データ形式として `DynamicFrames` 用に最適化されたカスタム Parquet ライターのタイプ。データに対して事前に計算されたスキーマをリクエストしなくても、スキーマを動的に計算して変更します。
     + **ORC**: Apache Optimized Row Columnar (ORC) 形式。
     + **Apache Hudi**: 増分データ処理とデータパイプラインの開発を簡素化する、オープンソースのデータレイク用ストレージフレームワーク。
     + **Apache Iceberg**: SQL テーブルと同様な機能を持つ、高性能なテーブルフォーマット。
     + **Delta Lake**: ACID トランザクションの実行、メタデータ処理のスケーリング、さらにストリーミングとバッチデータ処理の統合を支援する、オープンソースのデータレイクストレージフレームワーク。
     + **XML**: 拡張マークアップ言語 (XML)。
     + **Tableau Hyper**: Tableau のインメモリデータエンジンテクノロジー。

     これらの形式のオプションについての詳細は、*AWS Glue デベロッパーガイド*の「[Format Options for ETL Inputs and Outputs in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html)」を参照してください。
   + **圧縮タイプ**: `CSV`、`JSON` または `Parquet` のファイルタイプを使用して、任意でデータを圧縮するかどうかを選択できます。デフォルトでは圧縮なし、または [**None**] (なし) です。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/data-target-nodes.html)
   + **S3 Target Location** (S3 ターゲットの場所): Amazon S3 バケットおよびデータを出力する場所。[**Browse S3**] (S3 をブラウズ) ボタンをクリックして、アクセスできる Amazon S3 バケットを表示し、バケットの 1 つをターゲットの宛先として選択できます。
   + **データカタログの更新オプション**
     + **Do not update the Data Catalog**(データカタログを更新しない): (デフォルト) スキーマが変更されたり、新しいパーティションが追加された場合、ジョブでデータカタログを更新したくない場合は、このオプションを選択します。
     + **Create a table in the Data Catalog and on subsequent runs, update the schema and add new partitions** (データカタログにテーブルを作成し、それ以降の実行時にスキーマを更新して新しいパーティションを追加する): このオプションを選択すると、最初のジョブの実行時に、ジョブによりデータカタログにテーブルが作成されます。それ以降のジョブの実行時にスキーマが変更されたり、新しいパーティションが追加されたりすると、ジョブによりデータカタログテーブルが更新されます。

       また、データカタログからデータベースを選択し、テーブル名を入力する必要があります。
     + **[Create a table in the Data Catalog and on subsequent runs, keep existing schema and add new partitions]** (データカタログでテーブル作成し、それ以降の実行時に既存のスキーマの保持して新しいパーティションを追加する): このオプションを選択すると、最初のジョブの実行時に、ジョブによりデータカタログにテーブルが作成されます。それ以降のジョブの実行時に、新しいパーティションを追加するため、ジョブでデータカタログテーブルが更新されます。

       また、データカタログからデータベースを選択し、テーブル名を入力する必要があります。
   + **ファイルのパーティショニング**: 出力を保存するパーティショニングのタイプを選択します。
     + **ファイルの自動生成 (推奨)**: これは生成されたファイル数のデフォルト値です。
     + **複数のファイル出力**: 必要なファイル出力の数を指定します。最適なパフォーマンスを得るには、デフォルトで自動生成されたファイル数の値を使用します。
   + **Partition keys** (パーティションキー): 出力でパーティションキーとして使用する列を選択します。さらにパーティションキーを追加するには、[**Add a partition key**] (パーティションキーの追加) を選択します。

   ファイルのパーティショニングは、ターゲット形式としての Tableau Hyper ではサポートされていません。

### データターゲットにデータカタログテーブルを使用する
<a name="edit-job-target-catalog"></a>

Amazon S3 とコネクタを除くすべてのデータソースでは、選択するターゲットタイプの AWS Glue Data Catalog にテーブルが存在する必要があります。AWS Glue Studio はデータカタログテーブルを生成しません。

**データカタログテーブルを使用するターゲットのデータプロパティを設定するには**

1. 新規または保存済みのジョブのビジュアルエディタに移動します。

1. ジョブ図でデータターゲットノードを選択します。

1. [**Data target properties**] (データターゲットのプロパティ) タブを選択して、次の情報を入力します。
   + **Database** (データベース): ターゲットとして使用するテーブルを含むデータベースをリストから選択します。このデータベースは、データカタログに既に存在している必要があります。
   + **Table** (テーブル): 出力データのスキーマを定義するテーブルをリストから選択します。このテーブルは、データカタログに既に存在している必要があります。

     データカタログのテーブルは、列名、データ型の定義、パーティション情報、およびターゲットのデータセットに関するその他のメタデータで構成されています。ジョブにより、データカタログのこのテーブルで示されている場所に書き込みが行われます。

     データカタログでのテーブルの作成についての詳細は、*AWS Glue デベロッパーガイド*の「[Defining Tables in the Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/tables-described.html)」を参照してください。
   + **データカタログの更新オプション**
     + **Do not change table definition** (テーブルの定義を変更しない)： (デフォルト) スキーマが変更されたり、新しいパーティションが追加された場合、ジョブでデータカタログを更新したくない場合は、このオプションを選択します。
     + **[Update schema and add new partitions]** (スキーマを更新して新しいパーティションを追加する): このオプションを選択すると、スキーマが変更されたり新しいパーティションが追加される際に、ジョブによりデータカタログテーブルが更新されます。
     + **[Keep existing schema and add new partitions]** (既存のスキーマを保持して新しいパーティションを追加する): このオプションを選択すると、ジョブにより データカタログテーブルが更新され、新しいパーティションが追加されます。
     + **Partition keys** (パーティションキー): 出力でパーティションキーとして使用する列を選択します。さらにパーティションキーを追加するには、[**Add a partition key**] (パーティションキーの追加) を選択します。

### データターゲットにコネクタを使用する
<a name="edit-job-target-connector"></a>

**ノードタイプ**にコネクタを選択する場合、[カスタムコネクタを使用したジョブのオーサリング](job-authoring-custom-connectors.md) の説明に従って、データターゲットのプロパティ設定を完了します。