跳至內容

為什麼我的 AWS Glue 編目程式沒有在資料表中新增分割區?

1 分的閱讀內容
0

我的 AWS Glue 編目程式沒有在資料表中新增分割區。

簡短描述

AWS Glue 將 Amazon Simple Storage Service (Amazon S3) 路徑中分割區的名稱、順序或數量的差異視為分割區結構描述或結構的變化。編目程式會掃描新分割區下的來源資料檔案,並將來源檔案的以下屬性與現有資料表的屬性進行比較:

  • 檔案格式
  • 壓縮類型
  • 結構描述
  • Amazon S3 分割區的結構

如果任何分割區屬性與資料表屬性不同,則 AWS Glue 會跳過該分割區並且不會更新中繼資料。

解決方法

對問題進行疑難排解

若要檢查編目程式日誌以識別問題,請完成以下步驟:

  1. 開啟 AWS Glue console (AWS Glue 主控台)。
  2. 在瀏覽窗格中,選擇 Crawlers (編目程式)。
  3. 選取編目程式,然後選擇 Logs (日誌) 以檢視 Amazon CloudWatch 主控台上的記錄。
  4. 查看日誌以檢查編目程式是否跳過了新分割區。

例如,假設記錄包含的項目看起來類似下列內容:

Folder partition keys do not match table partition keys, skipped folder: doc-example-bucket/doc-example-path/doc-example-table/year=2021/month=01/sday=05/

此項目表示 Amazon S3 位置的分割區結構與資料表定義的分割區索引鍵不符。當分割區結構在資料表來源位置不一致時,就可能會出現此差異。

如果 AWS Glue 編目程式建立多個資料表,則日誌項目看起來會類似以下內容:

INFO : Created table doc-example-table in database doxtest_db

如果您看到類似的日誌,請比較這些表格位置的架構和分割結構與原始表格架構和分割結構。

解決問題

更新分割區結構

如果問題是由分割區結構不一致引起的,請手動或以程式設計方式重新命名結構,以使其一致。

排除特定檔案

AWS Glue 可能會因為下列原因之一而跳過某個分割區:

  • 檔案格式不符
  • 壓縮格式
  • 結構描述問題

如果 AWS Glue 由於這些原因之一跳過某個分割區且資料表中不需要該資料,請完成以下其中一項動作:

  • 使用排除模式跳過任何不需要的檔案。如需詳細資訊,請參閱選擇資料來源和分類器
  • 將不需要的檔案移動到其他位置。

合併相容的結構描述

如果您的資料在不同的輸入檔案中具有相似的結構描述,則在建立編目程式時會組合相容的結構描述。在 Configure the crawler's output (設定編目程式的輸出) 頁面中的 Grouping behavior for S3 data (optional) (S3 資料的分組行為 (選用)) 下,選取 Create a single schema for each S3 path (為每個 S3 路徑建立單一結構描述)。當您開啟此設定且資料相容時,編目程式會忽略指定路徑中 S3 物件的特定結構描述相似性。如需詳細資訊,請參閱為每個 Amazon S3 包含路徑建立單一結構描述

防止多個資料表

如果編目程式正在建立多個資料表,請參閱如何防止在 AWS Glue 編目程式執行期間建立多個資料表?

AWS 官方已更新 8 個月前