エラー「FAILED」のトラブルシューティング方法を教えてください: Athena に SemanticException テーブルはパーティション化されていないが、パーティション仕様は「存在する」のですか?

所要時間1分
0

Amazon Athena で ALTER TABLE ADD PARTITION を実行すると、次のエラーが表示されます: 「失敗: SemanticExceptionテーブルはパーティション化されていないが、パーティション仕様は存在する」。

解像度

このエラーは、CREATE TABLE ステートメントでパーティションを定義しなかった場合に発生します。このエラーを解決するには、次のいずれかの操作を行います:

  • テーブルを再作成し、PARTIONED BY を使用してパーティションキーを定義します。
  • テーブルスキーマを編集します。

テーブルを再作成

テーブルを再作成し、PARTITIONED BY を使用してパーティションキーを定義します。例については、「テーブルの作成」を参照してください。パーティションを定義したら、ALTER TABLE ADD PARTITION を使用してパーティションをさらに追加できます。

たとえば、次のデータ定義言語 (DDL) を使用して、年、月、日の 3 つのパーティションを持つテーブルを作成するとします:

CREATE EXTERNAL TABLE test (
requestBeginTime string,
adId string,
...)
PARTITIONED BY (
year string,
month string,
day string
)
ROW FORMAT serde 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://.../' ;

次に、次のようなパーティションを追加します:

ALTER TABLE impressions ADD
PARTITION (year = '2016', month = '05', day='04') LOCATION 's3://mystorage/path/to/data\_14\_May\_2016/';

テーブルスキーマの編集

AWS Glue でテーブルスキーマを編集するには、次の手順を実行します:

  1. AWS Glue コンソールを開きます
  2. リスト内のテーブル名を選択し、[スキーマの編集] を選択します
  3. [列を追加] を選択します
  4. 列名、タイプ、および番号を入力します。次に、「パーティションキー」 ボックスをチェックします。
  5. [追加] を選択します

詳細については、「テーブルの詳細の表示と編集」を参照してください。

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ