使用 AWS re:Post 即表示您同意 AWS re:Post 使用條款

如何解決在 Amazon Athena 中執行過長時間或逾時的 MSCK REPAIR TABLE 命令?

1 分的閱讀內容
0

我想解決一個在 Amazon Athena 中執行過長時間或逾時的 MSCK REPAIR TABLE 命令。

簡短描述

當您執行 MSCK REPAIR TABLE 命令時,Athena 會列出 Amazon Simple Storage Service (Amazon S3) 中的前綴和物件。如果您的 Amazon S3 前綴或物件太多,則命令需要很長時間才能執行或逾時並出現錯誤。

若要解決此問題,請使用下列其中一種方法:

  • 與 Athena 一起使用分區投影。
  • 使用 AWS Glue 編目程式將分區新增至您的 Athena 資料表。
  • 使用 Athena DDL 陳述式載入分區

解決方法

與 Athena 一起使用分區投影

使用分區投影與 Athena 來生成記憶體內的分區。您不需要將分區新增至 AWS Glue Data Catalog,也不需要從 Data Catalog 中擷取分割。Athena 會計算資料表的值,而不是掃描大量分區清單。此外,分區投影會從組態而不是從儲存庫 (例如 AWS Glue Data Catalog),來計算值和位置。

使用 AWS Glue 編目程式將分區新增至您的 Athena 資料表

若要使用 AWS Glue 編目程式將分區新增至 Athena 資料表,請完成下列步驟:

  1. 開啟 AWS Glue 主控台
  2. 在導覽窗格上,選擇編目程式,然後選擇建立編目程式
  3. 建立編目程式的名稱,然後選擇下一步
  4. 選擇資料來源和分類器下,以及在資料來源組態下,對您的資料是否已映射至 Glue 資料表?選取
  5. Glue 資料表下,選取新增資料表,然後選取所需的資料庫和資料表。選擇下一步
  6. 選取或建立 AWS Glue 的 IAM 角色。選擇下一步
  7. 設定輸出和排程下,展開進階選項,然後選取下列項目:
    忽略變更,且不更新 Data Catalog 中的資料表。
    使用資料表中的中繼資料更新所有新的和現有分區。
    忽略變更,且不更新 Data Catalog 中的資料表。
  8. 選擇下一步,然後選擇建立編目程式以儲存編目程式組態。
  9. 選擇執行編目程式。在執行編目程式時,分區會載入至資料表。

如需詳細資訊,請參閱編目程式如何運作用於在 AWS Glue 中新增分區的增量爬取

使用 Athena DDL 陳述式載入分區

若要使用 Athena DDL 陳述式載入分區,請完成下列步驟:

  1. 開啟 Amazon Athena 主控台
  2. 查詢編輯器標籤上,執行 ALTER TABLE ADD PARTITION 命令以載入分區。

相關資訊

為什麼我執行 Athena 查詢需要很長的時間?

透過 AWS Glue ETL 任務在 Data Catalog 中建立資料表、更新結構描述及新增分區

AWS Glue 定價

AWS 官方
AWS 官方已更新 1 年前