當我在 Amazon Athena 運作 ALTER TABLE ADD 分區時,出現此錯誤: 「失敗: 語義異常表未分區,但存在分區規範「」。
解決方案
如果您未在 CREATE TABLE 陳述式中定義任何分區,就會發生這個錯誤。若要解決此錯誤,請執行下列其中一個動作:
- 重新建立表格並使用 PARABRED BY 來定義分區索引鍵。
- 編輯表格結構定義。
重新建立表格
再次建立表格,然後使用 PARTITION BY 來定義分區索引鍵。如需範例,請參閱建立表格。定義分區之後,您可以使用 ALTER TABLE 新增分區來新增更多分區。
例如,如果您使用下列資料定義語言 (DDL) 來建立包含年、月和日三個分區的表格:
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 中編輯表格結構定義,請完成以下步驟:
- 開啟 AWS Glue 主控台。
- 選擇清單中的表格名稱,然後選取「編輯結構定義」。
- 選取「新增欄」。
- 輸入欄名稱、類型和編號。然後,檢查分區鍵框。
- 選取「新增」。
如需詳細資訊,請參閱檢視和編輯表格詳細資訊。