

# Amazon S3 テーブルバケット、テーブル、および名前空間の命名規則
<a name="s3-tables-buckets-naming"></a>

テーブルバケットを作成するときは、バケット名と AWS リージョンを選択します。名前は、選択したリージョン内のアカウントに対して一意である必要があります。テーブルバケットを作成した後、バケット名やリージョンを変更することはできません。テーブルバケット名は、特定の命名規則に従う必要があります。テーブルバケットとその中のテーブルと名前空間の命名規則の詳細については、次のトピックを参照してください。

**Topics**
+ [テーブルバケットの命名規則](#table-buckets-naming-rules)
+ [テーブルと名前空間の命名規則](#naming-rules-table)

## テーブルバケットの命名規則
<a name="table-buckets-naming-rules"></a>

Amazon S3 テーブルバケットを作成するときは、テーブルバケット名を指定します。他のバケットタイプと同様に、テーブルバケットの名前を変更することはできません。他のバケットタイプとは異なり、テーブルバケットはグローバル名前空間にないため、アカウント内の各バケット名は現在の AWS リージョン内でのみ一意である必要があります。

汎用バケットの命名規則の詳細については、「[汎用バケットの命名規則](bucketnamingrules.md)」を参照してください。ディレクトリバケットの命名規則については、「[ディレクトリバケットの命名規則](directory-bucket-naming-rules.md)」を参照してください。

テーブルバケットには、次の命名規則が適用されます。
+ バケット名は 3～63 文字の長さにする必要があります。
+ バケット名は、小文字、数字、およびハイフン (`-`) のみで構成できます。
+ バケット名は、文字または数字で開始および終了する必要があります。
+ バケット名にアンダースコア (`_`) またはピリオド (`.`) を含めることはできません。
+ バケット名は、以下の予約済みプレフィックスで始めることはできません。
  + `xn--`
  + `sthree-`
  + `amzn-s3-demo-`
  + `aws`
+ バケット名は、以下の予約済みサフィックスで終わることはできません。
  + `-s3alias`
  + `--ol-s3`
  + `--x-s3`
  + `--table-s3`

## テーブルと名前空間の命名規則
<a name="naming-rules-table"></a>

次の命名規則は、テーブルバケット内のテーブルと名前空間に適用されます。
+ 名前の長さは 1〜255 文字にする必要があります。
+ 名前には小文字、数字、下線 (`_`) のみを含めることができます。
+ 名前は、文字または数字で始まる必要があります。
+ 名前にハイフン (`-`) またはピリオド (`.`) を含めることはできません。
+ テーブル名は、名前空間内で一意である必要があります。
+ 名前空間は、テーブルバケット内で一意である必要があります。
+ 名前空間名は、予約済みプレフィックスの `aws` で始めることはできません。

**重要**  
テーブルを作成するときは、テーブル名とテーブル定義にすべて小文字を使用してください。例えば、列名がすべて小文字であることを確認します。テーブル名またはテーブル定義に大文字が含まれている場合、テーブルは AWS Lake Formation または AWS Glue Data Catalog ではサポートされていません。この場合、テーブルバケットが AWS 分析サービスと統合されていても、テーブルは Amazon Athena などの AWS 分析サービスに表示されません。  
テーブル定義に大文字が含まれている場合、Athena で `SELECT` クエリを実行すると、次のエラーメッセージが表示されます。「GENERIC\$1INTERNAL\$1ERROR: Get table request failed: com.amazonaws.services.glue.model.ValidationException: Unsupported Federation Resource - Invalid table or column names.」