

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Glue DataBrewレシピジョブの作成と操作
<a name="jobs.recipe"></a>

DataBrew *レシピジョブ*を使用して、DataBrew データセット内のデータをクリーンアップおよび正規化し、選択した出力場所に結果を書き込みます。レシピジョブを実行しても、データセットや基盤となるソースデータには影響しません。ジョブを実行すると、読み取り専用の方法でソースデータに接続します。ジョブ出力は、Amazon S3、、AWS Glue Data Catalogまたはサポートされている JDBC データベースで定義した出力場所に書き込まれます。

DataBrew レシピジョブを作成するには、次の手順に従います。

**レシピジョブを作成するには**

1. にサインインAWS マネジメントコンソールし、[https://console.aws.amazon.com/databrew/](https://console.aws.amazon.com/glue/) で DataBrew コンソールを開きます。

1. ナビゲーションペインから **JOBS** を選択し、**レシピジョブ**タブを選択し、**ジョブの作成**を選択します。

1. ジョブの名前を入力し、**レシピジョブの作成**を選択します。

1. **ジョブ入力**には、作成するジョブの詳細を入力します。処理するデータセットの名前と使用するレシピです。

   レシピジョブは DataBrew レシピを使用してデータセットを変換します。レシピを使用するには、必ず最初に公開してください。

1. ジョブの出力設定を構成します。

   ジョブ出力の送信先を指定します。出力先用に DataBrew 接続を設定していない場合は、「」の説明に従って、最初に **DATASETS** タブで設定します[データソースと出力でサポートされている接続](supported-data-connection-sources.md)。次のいずれかの出力先を選択します。
   + AWS Glue Data Catalogサポートの有無にかかわらず Amazon S3
   + Amazon Redshift、AWS Glue Data Catalogサポートの有無にかかわらず
   + JDBC
   + Snowflake テーブル
   + AWS Glue Data Catalogサポートされる Amazon RDS データベーステーブル。Amazon RDS データベーステーブルは、次のデータベースエンジンをサポートしています。
     + Amazon Aurora
     + MySQL
     + Oracle
     + [PostgreSQL]
     + Microsoft SQL Server
   + AWS Glue Data Catalogサポート付きの Amazon S3。

   に基づくAWS Glue Data Catalog出力の場合AWS Lake Formation、DataBrew は既存のファイルの置き換えのみをサポートします。この方法では、ファイルは置き換えられ、データアクセスロールの既存の Lake Formation アクセス許可がそのまま維持されます。また、DataBrew はテーブルから Amazon S3 の場所を優先しますAWS Glue Data Catalog。したがって、レシピジョブの作成時に Amazon S3 の場所を上書きすることはできません。

   ジョブ出力の Amazon S3 の場所は、Data Catalog テーブルの Amazon S3 の場所とは異なる場合があります。このような場合、DataBrew はカタログテーブルから Amazon S3 の場所を使用してジョブ定義を自動的に更新します。これは、既存のジョブを更新または開始するときに行われます。

1. Amazon S3 出力先のみ、次の選択肢があります。

   1. Amazon S3 で使用可能なデータ出力形式、オプションの圧縮形式、オプションのカスタム区切り文字のいずれかを選択します。出力ファイルでサポートされている区切り文字は、カンマ、コロン、セミコロン、パイプ、タブ、キャレット、バックスラッシュ、スペースの入力と同じです。フォーマットの詳細については、次の表を参照してください。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/databrew/latest/dg/jobs.recipe.html)

   1. <a name="singlefileoutput"></a>1 つのファイルを出力するか、複数のファイルを出力するかを選択します。Amazon S3 でのファイル出力には 3 つのオプションがあります。
      + **ファイルの自動生成 (推奨)** – DataBrew が出力ファイルの最適な数を決定します。
      + **単一ファイルの出力** – 単一の出力ファイルが生成されます。このオプションでは、後処理が必要なため、ジョブの実行時間が長くなる場合があります。
      + **複数ファイル出力** – ジョブ出力のファイル数を指定しますか。有効な値は 2～999 です。列パーティショニングが使用されている場合、または出力の行数が指定したファイル数より少ない場合、指定した数よりも少ないファイルが出力される可能性があります。

   1. <a name="columnpartioning"></a>(オプション) レシピジョブ出力の列パーティショニングを選択します。

      列パーティショニングは、レシピジョブの出力を複数のファイルに分割する別の方法を提供します。列パーティショニングは、新規または既存の Amazon S3 出力、または新しい Data Catalog Amazon S3 出力で使用できます。既存の Data Catalog Amazon S3 テーブルでは使用できません。出力ファイルは、指定した列名の値に基づいています。指定した列名が一意である場合、結果の Amazon S3 フォルダパスは列名の順序に基づきます。

      列パーティショニングの例については、[列パーティショニングの例](#jobs.recipe-column-partition-example)次の「」を参照してください。

1. (オプション) **ジョブ出力の暗号化を有効にする**を選択して、DataBrew が出力場所に書き込むジョブ出力を暗号化し、暗号化方法を選択します。
   + **SSE-S3 暗号化**を使用する – 出力は、Amazon S3 が管理する暗号化キーによるサーバー側の暗号化を使用して暗号化されます。
   + **Use AWS Key Management Service(AWS KMS)** – 出力は を使用して暗号化されますAWS KMS。このオプションを使用するには、使用するAWS KMSキーの Amazon リソースネーム (ARN) を選択します。AWS KMSキーがない場合は、キーの作成 を選択して**AWS KMS作成**できます。

1. **アクセス許可**には、DataBrew が出力場所に書き込むことを許可するAWS Identity and Access Management(IAM) ロールを選択します。アカウントAWSが所有するロケーションでは、`AwsGlueDataBrewDataAccessRole`サービスマネージドロールを選択できます。これにより、DataBrew は所有しているAWSリソースにアクセスできます。

1. **高度なジョブ設定**ペインで、ジョブの実行方法のその他のオプションを選択できます。
   + **最大ユニット数** – DataBrew は複数のコンピューティングノードを使用してジョブを処理し、並行して実行されます。ノードのデフォルト数は 5 です。ノードの最大数は 149 です。
   + **ジョブのタイムアウト – **ジョブの実行にここで設定した分数を超えると、タイムアウトエラーで失敗します。デフォルト値は 2,880 分、つまり 48 時間です。
   + **再試行回数** – 実行中にジョブが失敗した場合、DataBrew は再度実行を試みることができます。デフォルトでは、ジョブは再試行されません。
   + **ジョブの Amazon CloudWatch Logs を有効にする** – DataBrew が CloudWatch Logs に診断情報を公開できるようにします。これらのログは、トラブルシューティングの目的や、ジョブの処理方法の詳細に役立ちます。

1. **スケジュールジョブ**の場合、DataBrew ジョブスケジュールを適用して、ジョブが特定の時間または定期的に実行されるようにできます。詳細については、「[スケジュールによるジョブ実行の自動化](#jobs.scheduling)」を参照してください。

1. 設定が目的どおりになったら、**ジョブの作成**を選択します。または、ジョブをすぐに実行する場合は、**ジョブの作成と実行**を選択します。

ジョブの実行中にジョブのステータスを確認することで、ジョブの進行状況をモニタリングできます。ジョブの実行が完了すると、ステータスは**成功**に変わります。ジョブ出力が、選択した出力場所で利用可能になりました。

DataBrew はジョブ定義を保存するため、後で同じジョブを実行できます。ジョブを再実行するには、ナビゲーションペインから**ジョブ**を選択します。使用するジョブを選択し、**ジョブの実行**を選択します。

## 列パーティショニングの例
<a name="jobs.recipe-column-partition-example"></a>

列のパーティショニングの例として、3 つの列を指定し、各行に 2 つの可能な値のいずれかが含まれているとします。`Dept` 列には `Admin`または の値を指定できます`Eng`。`Staff-type` 列には `Part-time`または の値を指定できます`Full-time`。`Location` 列には `Office1`または の値を指定できます`Office2`。ジョブ出力の Amazon S3 バケットは次のようになります。

```
s3://bucket/output-folder/Dept=Admin/Staff-type=Part-time/Area=Office1/jobId_timestamp_part0001.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Part-time/Location=Office2/jobId_timestamp_part0002.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Full-time/Location=Office1/jobId_timestamp_part0003.csv
s3://bucket/output-folder/Dept=Admin/Staff-type=Full-time/Location=Office2/jobId_timestamp_part0004.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Part-time/Location=Office1/jobId_timestamp_part0005.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Part-time/Location=Office2/jobId_timestamp_part0006.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Full-time/Location=Office1/jobId_timestamp_part0007.csv
s3://bucket/output-folder/Dept=Eng/Staff-type=Full-time/Location=Office2/jobId_timestamp_part0008.csv
```

## スケジュールによるジョブ実行の自動化
<a name="jobs.scheduling"></a>

DataBrew ジョブはいつでも再実行でき、スケジュールに従って DataBrew ジョブの実行を自動化することもできます。

**DataBrew ジョブを再実行するには**

1. にサインインAWS マネジメントコンソールし、[https://console.aws.amazon.com/databrew/](https://console.aws.amazon.com/databrew/) で DataBrew コンソールを開きます。

1. ナビゲーションペインで、**ジョブ**を選択します。実行するジョブを選択し、**ジョブの実行**を選択します。

DataBrew ジョブを特定の時間、または定期的に実行するには、DataBrew ジョブスケジュールを作成します。その後、スケジュールに従って を実行するようにジョブを設定できます。

**DataBrew ジョブスケジュールを作成するには**

1. DataBrew コンソールのナビゲーションペインで、**ジョブ**を選択します。**スケジュール**タブを選択し、**スケジュールの追加**を選択します。

1. スケジュールの名前を入力し、**実行頻度**の値を選択します。
   + **繰り返し** – ジョブを実行する頻度を選択します (12 時間ごとなど）。次に、ジョブを実行する日を選択します。必要に応じて、ジョブが実行される時刻を入力できます。
   + **特定の時刻** – ジョブを実行する時刻を入力します。次に、ジョブを実行する日を選択します。
   + **Enter CRON** – 有効な cron 式を入力してジョブスケジュールを定義します。詳細については、「[レシピジョブの cron 式の使用](#jobs.cron)」を参照してください。

1. すべての設定が正しいことを確認したら、[**保存**] を選択します。

**ジョブをスケジュールに関連付けるには**

1. ナビゲーションペインで、**ジョブ**を選択します。

1. 操作するジョブを選択し、**アクション**で**編集を選択します。**

1. **スケジュールジョブ**ペインで、**スケジュールの関連付け**を選択します。使用するスケジュールの名前を選択します。

1. すべての設定が正しいことを確認したら、[**保存**] を選択します。

## レシピジョブの cron 式の使用
<a name="jobs.cron"></a>

cron 式には 6 つの必須フィールドがあり、それらは空白で区切られます。構文は次のとおりです。

```
{{Minutes}} {{Hours}} {{Day-of-month}} {{Month}} {{Day-of-week}} {{Year}}
```

前述の構文では、指定されたフィールドに次の値とワイルドカードが使用されます。


| **フィールド** | **値** | **ワイルドカード** | 
| --- | --- | --- | 
| 分 | 0～59 | , - \* / | 
| 時間 | 0～23 | , - \* / | 
| 日 | 1～31 | , - \* ? / L W | 
| 月 | 1～12 または JAN～DEC | , - \* / | 
| 曜日 | 1～7 または SUN～SAT | , - \* ? / L | 
| 年 | 1970～2199 | , - \* / | 

これらのワイルドカードは次のように使用します。
+ **,** (カンマ) のワイルドカードには、追加の値が含まれます。`Month` フィールドには、1 月、2 月、3 月`JAN,FEB,MAR`が含まれます。
+ **-** (ダッシュ) ワイルドカードは範囲を指定します。`Day` フィールドの 1～15 には、指定した月の 1～15 日が含まれます。
+ **[\*]** (アスタリスク) のワイルドカードには、フィールドのすべての値が含まれます。`Hours` フィールドでは、**\*** には 1 時間ごとが含まれます。
+ [**/**] (スラッシュ) ワイルドカードで増分を指定します。`Minutes` フィールドで、 と入力**1/10**して、1 時間の最初の 1 分 (11 分、21 分、31 分など) から 10 分ごとに指定できます。
+ **[?]** (疑問符) のワイルドカードは、任意を意味します。たとえば、 `Day-of-month`フィールドに **7** と入力するとします。7 日が何曜日か気にならなかった場合は、「」と入力できます**。** `Day-of-week` フィールドの 。
+ `Day-of-month` または `Day-of-week`フィールドの **L** ワイルドカードは、月または週の最終日を指定します。
+ `Day-of-month` フィールドの、ワイルドカード **W** は、平日を指定します。`Day-of-month` フィールドで、`3W` は月の 3 番目の平日に最も近い日を指定します。

これらのフィールドと値には、次の制限があります。
+ Cron 式の `Day-of-month` フィールドと `Day-of-week` フィールドを同時に指定することはできません。一方のフィールドに値を指定する場合、もう一方のフィールドで **[?]** (疑問符) を使用する必要があります。
+ 5 分を超える速度につながる Cron 式はサポートされていません。

スケジュールを作成するときは、以下のサンプルの cron 文字列を使用できます。


| 分 | 時間 | 日 | 月 | 曜日 | 年 | 意味 | 
| --- | --- | --- | --- | --- | --- | --- | 
| 0 | 10 | \* | \* | ? | \* | 毎日午前 10:00 (UTC) に実行 | 
| 15 | 12 | \* | \* | ? | \* | 毎日午後 12:15 (UTC) に実行 | 
| 0 | 18 | ? | \* | MON-FRI | \* | 毎週月曜日から金曜日まで午後 6:00 (UTC) に実行 | 
| 0 | 8 | 1 | \* | ? | \* | 毎月 1 日午前 8 時 (UTC) に実行 | 
| 0/15 | \* | \* | \* | ? | \* | 15 分ごとに実行 | 
| 0/10 | \* | ? | \* | MON-FRI | \* | 月曜日から金曜日まで 10 分ごとに実行 | 
| 0/5 | 8～17 | ? | \* | MON-FRI | \* | 月曜日から金曜日まで午前 8:00 から午後 5:55 (UTC) まで 5 分ごとに実行 | 

たとえば、次の cron 式を使用して、毎日 12:15 UTC にジョブを実行できます。

```
15 12 * * ? *
```

## ジョブとジョブスケジュールの削除
<a name="jobs.deleting"></a>

ジョブまたはジョブスケジュールが不要になった場合は、削除できます。

**ジョブを削除するには**

1. ナビゲーションペインで、**ジョブ**を選択します。

1. 削除するジョブを選択し、**アクション**で**削除を選択します。**

**ジョブスケジュールを削除するには**

1. ナビゲーションペインで、**ジョブ**を選択し、**スケジュール**タブを選択します。

1. 削除するスケジュールを選択し、**アクション**で**削除を選択します。**