

# AWS Glue Studio でのデータ準備レシピの使用
<a name="glue-studio-data-preparation"></a>

 **[データ準備レシピ]** 変換を使用すると、インタラクティブなグリッドスタイルオーサリングインターフェイスを使用して、データ準備レシピを最初から作成できます。また、既存の AWS Glue DataBrew レシピをインポートし、AWS Glue Studio で編集することもできます。

 **データ準備レシピ**ノードは、リソースパネルから使用できます。**データ準備レシピ**ノードは、データソースノードであるか別の変換ノードであるかに関らず、ビジュアルワークフロー内の別のノードに接続できます。AWS Glue DataBrew レシピとバージョンを選択すると、レシピに適用されたステップがノードのプロパティタブに表示されます。

## 前提条件
<a name="glue-studio-databrew-prerequisites"></a>
+  AWS Glue DataBrew レシピをインポートする場合、「[AWS Glue Studio で AWS Glue DataBrew レシピをインポートする](glue-studio-data-preparation-import-recipe.md)」で説明されているように、必要な IAM アクセス許可があります。
+  データプレビューセッションを作成する必要があります。

## 制限事項
<a name="glue-studio-databrew-limitations"></a>
+  AWS Glue DataBrew レシピは、[商用 DataBrew リージョン](https://docs.aws.amazon.com/general/latest/gr/databrew.html)でのみサポートされています。
+  すべての AWS Glue DataBrew レシピが AWS Glue でサポートされているわけではありません。一部のレシピは AWS Glue Studio では実行できません。
  +  `UNION` および `JOIN` 変換を使用するレシピはサポートされていませんが、AWS Glue Studio には、**データ準備レシピ**ノードの前後で使用できる「Union」および「Join」変換ノードが既に存在します。
+  **データ準備レシピ**ノードは AWS Glue バージョン 4.0 以降のジョブでサポートされています。このバージョンは、**データ準備レシピ**ノードがジョブに追加されると自動選択されます。
+  **データ準備レシピ**ノードには Python が必要です。Python は、**データ準備レシピ**ノードがジョブに追加されると自動設定されます。
+  ビジュアルグラフに新しい**データ準備レシピ**ノードを追加すると、**データ準備レシピ**ノードを使用する正しいライブラリでデータプレビューセッションが自動的に再開されます。
+  **データ準備レシピ**ノードでのインポートまたは編集では、`GROUP_BY`、`PIVOT`、`UNPIVOT`、および `TRANSPOSE` の変換はサポートされていません。

## その他の機能
<a name="glue-studio-data-preparation-recipe-transform-features"></a>

 **[データ準備レシピ]** 変換を選択すると、**[レシピの作成]** を選択した後に追加のアクションを実行できます。
+  ステップの追加 – ステップの追加アイコンを選択するか、[プレビュー] ペインのツールバーを使用してアクションを選択して、必要に応じてレシピにステップを追加できます。  
![\[スクリーンショットはレシピの追加アイコンを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/add-recipe-icon.png)  
![\[スクリーンショットはレシピの追加アイコンを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/author-recipe-toolbar.png)
+  レシピのインポート — **[その他]** を選択し、AWS Glue Studio ジョブで使用する**レシピをインポート**します。  
![\[スクリーンショットは、その他アイコンを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-preparation-recipe-node-more-icon.png)  
![\[スクリーンショットは、その他アイコンを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-preparation-recipe-node-more-features.png)
+  YAML としてダウンロード – **[その他]**、次に **[YAML としてダウンロード]** を選択してレシピをダウンロードし、AWS Glue Studio の外部に保存します。
+  JSON としてダウンロード – **[その他]**、次に **[JSON としてダウンロード]** を選択してレシピをダウンロードし、AWS Glue Studio の外部に保存します。
+  レシピステップの元に戻すとやり直す – グリッドでデータを操作するときに、[プレビュー] ペインでレシピステップを元に戻したりやり直したりすることができます。  
![\[スクリーンショットは、その他アイコンを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/author-recipe-toolbar-undo-redo.png)

# ビジュアル ETL AWS Glue ジョブにおけるデータ準備レシピの作成および実行
<a name="glue-studio-data-preparation-recipe-transform-tutorial"></a>

 このシナリオでは、DataBrew で最初に作成しなくても、データ準備レシピを作成できます。レシピの作成を開始する前に、以下を行う必要があります。
+  アクティブなデータプレビューセッションが実行されている。データプレビューセッションが準備完了になると、**[レシピの作成]** がアクティブになり、レシピの作成または編集を開始できます。  
![\[このスクリーンショットは、データプレビューセッションが完了したことを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-preparation-recipe-data-preview-complete.png)
+  **[Glue ライブラリを自動的にインポート]** のトグルが有効になっていることを確認します。  
![\[このスクリーンショットは、[Glue ライブラリを自動的にインポート] のオプションがオンになっていることを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-preparation-recipe-automatically-import-glue-libraries.png)

   これを行うには、[データプレビュー] ペインで歯車アイコンを選択します。  
![\[このスクリーンショットは、[Glue ライブラリを自動的にインポート] のオプションがオンになっていることを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-preview-preferences.png)

**AWS Glue Studio でデータ準備レシピを作成するには:**

1.  **[データ準備レシピ]** 変換をジョブキャンバスに追加します。変換はデータソースノードの親に接続する必要があります。**[データ準備レシピ]** ノードを追加すると、ノードが適切なライブラリで再起動し、データフレームが準備中であることがわかります。  
![\[このスクリーンショットは、[データ準備レシピ] を追加した後のデータフレームのロードを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-preparation-preparing-dataframe.png)

1.  データプレビューセッションが準備完了になると、以前に適用されたステップを含むデータが画面の下部に表示されます。

1.  **[レシピの作成]** を選択します。これにより、AWS Glue Studio で新しいレシピを開始できます。  
![\[このスクリーンショットは、[名前] と [ノードの親] のフィールドと、レシピを作成するオプションを含む [変換] パネルを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-preparation-recipe-transform-tab-new.png)

1.  ジョブキャンバスの右側にある **[変換]** パネルに、データ準備レシピの名前を入力します。

1.  左側では、キャンバスはデータのグリッドビューに置き換えられます。右側には、**[変換]** パネルが変化し、レシピのステップが表示されます。**[ステップの追加]** を選択して、レシピの最初のステップを追加します。  
![\[このスクリーンショットは、[ステップの追加] を選択した後の [変換] パネルを示しています。列を選択すると、オプションが動的に変わります。ソート、列に対するアクションの実行、および値のフィルタリングを選択できます。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/author-recipe-preview-data-transform-panel.png)

1.  **[変換]** パネルで、ソート、列に対するアクションの実行、値のフィルタリングを選択します。例えば、**[列の名前変更]** を選択します。  
![\[このスクリーンショットは、[ステップの追加] を選択した後の [変換] パネルを示しています。列を選択すると、オプションが動的に変わります。ソート、列に対するアクションの実行、および値のフィルタリングを選択できます。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/author-recipe-add-step.png)

1.  右側の [変換] パネルで、列の名前を変更するオプションを使用して、名前を変更するソース列を選択し、新しい列名を入力できます。完了したら、**[適用]** を選択します。

    各ステップをプレビューしたり、ステップを元に戻したり、ステップを並べ替えたり、フィルター、ソート、分割、マージなどのアクションアイコンを使用できます。データグリッドでアクションを実行すると、[変換] パネルのレシピにステップが追加されます。  
![\[このスクリーンショットは、ツールバーが強調表示されたプレビューデータグリッドを示しています。いずれかのツールを使用してアクションを適用できます。アクションは右側の [変換] パネルのレシピに追加されます。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/author-recipe-preview-data-grid.png)

    変更を加える必要がある場合は、各ステップの結果をプレビューし、ステップを元に戻し、ステップの順序を変更することで、[プレビュー] ペインでこれを行うことができます。例: 
   +  ステップを元に戻す/やり直す – **[元に戻す]** アイコンを選択してステップを元に戻します。**[やり直す]** アイコンを選択すると、ステップを繰り返すことができます。  
![\[スクリーンショットは、その他アイコンを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/author-recipe-toolbar-undo-redo.png)
   +  ステップの順序を変更する – ステップの順序を変更すると、AWS Glue Studio は各ステップを検証し、そのステップが無効かどうかを知らせます。

1.  ステップを適用すると、[変換] パネルにレシピのすべてのステップが表示されます。すべてのステップをクリアして最初からやり直したり、追加アイコンを選択してさらにステップを追加したり、**[レシピの作成を完了]** を選択したりできます。  
![\[このスクリーンショットは、レシピにステップが追加された [変換] パネルを示しています。完了したら、[レシピの作成を完了] を選択するか、追加アイコンを選択してレシピにさらにステップを追加します。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/author-recipe-done-authoring-recipe.png)

1.  画面の右上にある **[保存]** を選択します。レシピステップは、ジョブを保存するまで保存されません。

# AWS Glue Studio で AWS Glue DataBrew レシピをインポートする
<a name="glue-studio-data-preparation-import-recipe"></a>

 AWS Glue DataBrew では、一連のデータ変換ステップをレシピといいます。AWS Glue DataBrew レシピには読み取り済みデータの変換方法は規定されていますが、データを読み取る場所と方法、およびデータを書き込む場所と方法は記載されていません。これは、AWS Glue Studio のソースノードとターゲットノードで設定します。レシピの詳細については、「[Creating and using AWS Glue DataBrew recipes](https://docs.aws.amazon.com/databrew/latest/dg/recipes.html)」を参照してください。

 AWS Glue Studio で AWS Glue DataBrew レシピを使用するには、最初に AWS Glue DataBrew でレシピを作成します 使用するレシピがある場合は、このステップを省略できます。

## AWS Glue DataBrew に対する IAM アクセス許可
<a name="glue-studio-databrew-permissions"></a>

 このトピックでは、IAM 管理者がデータ準備レシピ変換の AWS Identity and Access Management (IAM) ポリシーで使用できるアクションとリソースを理解するための情報について説明します。

 AWS Glue のセキュリティに関する追加情報については、「[Access Management](https://docs.aws.amazon.com/glue/latest/dg/security.html)」を参照してください。

**注記**  
 次の表に、既存の AWS Glue DataBrew レシピをインポートするときにユーザーが必要とするアクセス許可を示します。


**データ準備レシピ変換アクション**  

| アクション | 説明 | 
| --- | --- | 
| databrew:ListRecipes | AWS Glue DataBrew レシピを取得するアクセス許可を付与します。 | 
| databrew:ListRecipeVersions | AWS Glue DataBrew レシピバージョンを取得するアクセス許可を付与します。 | 
| databrew:DescribeRecipe | AWS Glue DataBrew レシピの説明を取得するアクセス許可を付与します。 | 



 この機能へのアクセスに使用するロールには、複数の AWS Glue DataBrew アクションを許可するポリシーが必要です。これを実現するには、必要なアクションを含む `AWSGlueConsoleFullAccess` ポリシーを使用するか、次のインラインポリシーをロールに追加します。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "databrew:ListRecipes",
        "databrew:ListRecipeVersions",
        "databrew:DescribeRecipe"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------



 データ準備レシピ変換を使用するには、アクセス許可ポリシーに `IAM:PassRole` アクションを追加する必要があります。


**追加で必要な許可**  

| アクション | 説明 | 
| --- | --- | 
| iam:PassRole | 承認済みのロールをユーザーが渡すことを許可するアクセス許可を、IAM に付与します。 | 

これらのアクセス許可がないと、次のエラーが発生します。

```
"errorCode": "AccessDenied"
"errorMessage": "User: arn:aws:sts::account_id:assumed-role/AWSGlueServiceRole is not 
authorized to perform: iam:PassRole on resource: arn:aws:iam::account_id:role/service-role/AWSGlueServiceRole 
because no identity-based policy allows the iam:PassRole action"
```



## AWS Glue DataBrew レシピのインポート
<a name="glue-studio-databrew-import-steps"></a>

**AWS Glue DataBrew レシピをインポートして AWS Glue Studio で使用するには:**

 既存の**データ準備レシピ**ノードがあり、AWS Glue Studio でレシピステップを直接編集する場合は、レシピステップを AWS Glue Studio ジョブにインポートする必要があります。

1.  データソースを使用して、AWS Glue Studio で AWS Glue ジョブを開始します。

1.  **[データ準備レシピ]** ノードをジョブキャンバスに追加します。  
![\[スクリーンショットは、選択可能なデータ準備レシピを含むノードモーダルの追加を示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/glue-add-node-data-preparation-recipe.png)

1.  [変換] パネルで、レシピの名前を入力します。

1.  ドロップダウンリストからキャンバスで使用可能なノードを選択して、1 つ以上の親ノードを選択します。

1.  **[レシピの作成]** を選択します。**[作成者レシピ]** が灰色の場合、ノードの親が選択され、データプレビューセッションが完了するまで使用できません。  
![\[Author Data Preparation Recipe form with name field and node parents selection dropdown.\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/glue-author-data-preparation-recipe.png)

1.  データフレームはロードされ、ソースデータに関する詳細情報が表示されます。

    **[その他のアクション]** アイコンを選択し、**[レシピのインポート]** を選択します。  
![\[Data preparation interface showing "Build your Recipe" with an "Add step" button.\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/glue-dataframe-import-recipe.png)

1.  レシピのインポートウィザードを使用して、ステップを完了します。ステップ 1 で、レシピを検索して選択し、**[次へ]** を選択します。  
![\[Import recipe interface showing two recipes, with one selected for import.\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/import-recipe-step-1.png)

1.  ステップ 2 で、インポートオプションを選択します。新しいレシピを既存のレシピに追加するか、既存のレシピを上書きするかを選択できます。[**次へ**] を選択します。  
![\[Import recipe interface showing selected recipe, version, and two imported steps.\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/import-recipe-step-2.png)

1.  ステップ 3 で、レシピステップを検証します。AWS Glue DataBrew レシピをインポートしたら、このレシピを AWS Glue Studio で直接編集できます。  
![\[Recipe import interface showing two steps and a validation progress indicator.\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/import-recipe-step-3.png)  
![\[Import recipe interface showing validated steps for sorting and formatting data.\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/import-recipe-step-3-validated-2.png)

1.  その後、ステップは AWS Glue ジョブの一部としてインポートされます。必要に応じてジョブに名前を付けたり、割り当てられた容量を調整したりして、**[ジョブの詳細]** タブで必要な設定変更を行います。**[保存]** を選択して、ジョブとレシピを保存します。
**注記**  
 JOIN、UNION、GROUP\$1BY、PIVOT、UNPIVOT、TRANSPOSE はレシピのインポートではサポートされず、レシピ作成モードでも使用できません。

1.  必要に応じて、その他の変換ノードを追加してジョブ作成を終了し、データターゲットノードを追加できます。

    レシピをインポートした後にステップの順序を変更すると、AWS Glue はそれらのステップの検証を実行します。例えば、列の名前を変更してから削除し、削除ステップを先頭に移動した場合、名前変更ステップは無効です。その後、ステップを編集して検証エラーを修正できます。

# AWS Glue DataBrew から AWS Glue Studio への移行
<a name="databrew-migration-to-glue-studio"></a>

 AWS Glue DataBrew にレシピがある場合は、次のチェックリストを使用してレシピを AWS Glue Studio に移行します。


| 目的 | こちらを実行してください | 
| --- | --- | 
|  ユーザーに AWS Glue DataBrew レシピ、レシピバージョン、レシピの説明の取得を許可します。 |  ロールが必要なアクションにアクセスできるようにするポリシーに IAM アクセス許可を追加します。「[AWS Glue DataBrew に対する IAM アクセス許可](glue-studio-data-preparation-import-recipe.md#glue-studio-databrew-permissions)」を参照してください。 | 
|  既存の AWS Glue DataBrew レシピを AWS Glue Studio にインポートします。 |  「[AWS Glue DataBrew レシピのインポート](glue-studio-data-preparation-import-recipe.md#glue-studio-databrew-import-steps)」のステップを実行してください。 | 
|  JOIN と UNION を使用してレシピをインポートします。 |  UNION 変換と JOIN 変換を含むレシピはサポートされていません。Data Preparation Recipe ノードの前後に AWS Glue Studio で [結合] 変換と [ユニオン] 変換を使用します。 | 