

# クローラーが作成できるテーブルの最大数を指定する
<a name="crawler-maximum-number-of-tables"></a>

(オプション) AWS Glue コンソールまたは AWS CLI を使用して `TableThreshold` を指定することで、クローラーが作成できるテーブルの最大数を指定できます。クローリング中にクローラーによって検出されたテーブルがこの入力値より多い場合、クローリングが失敗し、データカタログにデータが書き込まれません。

このパラメータは、クローラーによって検出および作成されるテーブルが予想よりもはるかに多い場合に役立ちます。これには、以下のような複数の理由が考えられます。
+ AWS Glue ジョブを使用して Amazon S3 ロケーションに入力する場合、フォルダと同じレベルに空のファイルができる可能性があります。このような場合、この Amazon S3 ロケーションでクローラーを実行すると、ファイルとフォルダが同じレベルに存在するため、クローラーは複数のテーブルを作成します。
+ `"TableGroupingPolicy": "CombineCompatibleSchemas"` を設定しない場合、予想よりも多くのテーブルが作成される可能性があります。

`TableThreshold` を 1 以上の整数値として指定します。この値はクローラーごとに設定されます。つまり、クローリングごとに、この値が考慮されます。例えば、あるクローラーでは `TableThreshold` 値を 5 に設定したとします。各クローリングで、AWS Glue は検出されたテーブルの数をこのテーブルのしきい値 (5) と比較します。検出されたテーブルの数が 5 未満の場合、AWS Glue はデータカタログにテーブルを書き込み、そうでない場合、データカタログに書き込むことなくクローリングが失敗します。

------
#### [ AWS マネジメントコンソール ]

**AWS マネジメントコンソール を使用して `TableThreshold` を設定する場合は、次のようになります。**

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

1. クローラーを設定するときに、**[出力とスケジューリング]** で、クローラーが生成できるテーブルの数に**最大テーブルしきい値**を設定します。  
![\[最大テーブルしきい値のパラメータを表示する AWS コンソールの [Output and scheduling] (出力およびスケジューリング) セクション。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/crawler-max-tables.png)

------
#### [ AWS CLI ]

AWS CLI を使用して `TableThreshold` を設定する場合は、次のようになります。

```
aws glue update-crawler \
    --name myCrawler \
    --configuration '{"Version": 1.0, "CrawlerOutput": {"Tables": { "TableThreshold": 5 }}}'
```

------
#### [ API ]

API を使用して `TableThreshold` を設定する場合は、次のようになります。

```
"{"Version":1.0,
"CrawlerOutput":
{"Tables":{"AddOrUpdateBehavior":"MergeNewColumns",
"TableThreshold":5}}}";
```

------

エラーメッセージはログに記録され、テーブルパスを特定してデータをクリーンアップするのに役立ちます。テーブル数が指定したテーブルしきい値を超えているためにクローラーが失敗した場合は、次のようなログの例がアカウントで確認できます。

```
Table Threshold value = 28, Tables detected - 29
```

CloudWatch では、検出されたすべてのテーブルの場所を INFO メッセージとしてログに記録します。失敗の理由としてエラーがログに記録されます。

```
ERROR com.amazonaws.services.glue.customerLogs.CustomerLogService - CustomerLogService received CustomerFacingException with message 
The number of tables detected by crawler: 29 is greater than the table threshold value provided: 28. Failing crawler without writing to Data Catalog.
com.amazonaws.services.glue.exceptions.CustomerFacingInternalException: The number of tables detected by crawler: 29 is greater than the table threshold value provided: 28. 
Failing crawler without writing to Data Catalog.
```