選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

定義和管理分類器

焦點模式
定義和管理分類器 - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

分類器讀取資料存放區中的資料。如果它能辨識資料的格式,將會產生結構描述。分類器也會傳回一個確定數字以表示所識別格式的確定程度。

AWS Glue 提供一組內建分類器,但您也可以建立自訂分類器。AWS Glue 會先依照您在爬蟲程式定義中指定的順序叫用自訂分類器。根據從自訂分類器傳回的結果,AWS Glue 也可能叫用內建分類器。如果分類器在處理期間傳回 certainty=1.0,表示它 100% 確定可以建立正確的結構描述。然後,AWS Glue 將使用此分類器的輸出。

如果沒有分類器傳回 certainty=1.0,AWS Glue 將使用確定程度最高的分類器的輸出。如果沒有分類器傳回大於 0.0 的確定程度,AWS Glue 將傳回預設的分類字串 UNKNOWN

我應該在何時使用分類器?

當您在 AWS Glue Data Catalog中探索資料存放區以定義中繼資料資料表時,可使用分類器。您可以用一組已排序的分類器來設定您的爬蟲程式。當爬蟲程式叫用分類器時,分類器會判斷資料是否能夠辨識。如果分類器無法識別資料或無法 100% 確定,爬蟲程式將叫用清單中的下一個分類器,以判斷它是否能夠識別資料。

如需使用 AWS Glue 主控台建立分類器的詳細資訊,請參閱使用AWS Glue主控台建立分類器

自訂分類器

分類器的輸出包含一個字串,它會指出檔案的分類或格式 (例如,json) 以及檔案結構描述。對於自訂分類器,您可以根據分類器的類型,定義建立結構描述的邏輯。分類器類型包括根據 grok 模式、XML 標籤以及 JSON 路徑定義結構描述。

如果您變更分類器定義,之前使用分類器探索的任何資料將不會重新分類。爬蟲程式會持續追蹤之前探索的資料。會使用更新分類器來分類新資料,這可能會更新結構描述。如果資料的結構描述擴張,則於爬蟲程式執行時將分類器更新到任何結構描述變更的帳戶。若要重新分類資料以更正不正確的分類器,請使用更新的分類器建立新爬蟲程式。

如需在 AWS Glue 中建立自訂分類器的詳細資訊,請參閱為各種資料格式撰寫自訂分類器

注意

如果您的資料格式能夠由內建分類器之一加以辨識,您將無需建立自訂分類器。

內建分類器

AWS Glue 提供各種格式的內建分類器,包括 JSON、CSV、Web 日誌,以及許多資料庫系統。

如果 AWS Glue 找不到能 100% 確定符合輸入資料格式的自訂分類器,將會依照下表所列順序叫用內建分類器。內建分類器傳回結果,指出格式是否符合 (certainty=1.0) 或不符合 (certainty=0.0)。第一個具有 certainty=1.0 的分類器將為 Data Catalog 的中繼資料資料表提供分類字串和結構描述。

分類器類型 分類字串 備註
Apache Avro avro 讀取檔案開頭的結構描述以判斷格式。
Apache ORC orc 讀取檔案中繼資料以判斷格式。
Apache Parquet parquet 讀取檔案結尾的結構描述以判斷格式。
JSON json 讀取檔案的開頭以判斷格式。
Binary JSON bson 讀取檔案的開頭以判斷格式。
XML xml 讀取檔案的開頭以判斷格式。AWS Glue 根據文件中的 XML 標籤來判斷資料表結構描述。

如需建立自訂 XML 分類器以指定文件中的列的詳細資訊,請參閱 撰寫 XML 自訂分類器

Amazon Ion ion 讀取檔案的開頭以判斷格式。
結合的 Apache 日誌 combined_apache 透過 grok 模式決定日誌格式。
Apache 日誌 apache 透過 grok 模式決定日誌格式。
Linux 核心日誌 linux_kernel 透過 grok 模式決定日誌格式。
Microsoft 日誌 microsoft_log 透過 grok 模式決定日誌格式。
Ruby 日誌 ruby_logger 讀取檔案的開頭以判斷格式。
Squid 3.x 日誌 squid 讀取檔案的開頭以判斷格式。
Redis 監控日誌 redismonlog 讀取檔案的開頭以判斷格式。
Redis 日誌 redislog 讀取檔案的開頭以判斷格式。
CSV csv 檢查以下分隔符號:逗號 (,)、直立線符號 (|)、Tab (\t)、分號 (;) 和 Ctrl-A (\u0001)。Ctrl-A 為 Start Of Heading 的 Unicode 控制字元。
Amazon Redshift redshift 使用 JDBC 連線來匯入中繼資料。
MySQL mysql 使用 JDBC 連線來匯入中繼資料。
PostgreSQL postgresql 使用 JDBC 連線來匯入中繼資料。
Oracle 資料庫 oracle 使用 JDBC 連線來匯入中繼資料。
Microsoft SQL Server sqlserver 使用 JDBC 連線來匯入中繼資料。
Amazon DynamoDB dynamodb 從 DynamoDB 資料表讀取資料。

可分類以下壓縮格式的檔案:

  • ZIP (僅包含單一檔案的封存可支援)。請注意,Zip 在其他服務中並未完整支援 (因為封存的關係)。

  • BZIP

  • GZIP

  • LZ4

  • Snappy (支援標準和 Hadoop 原生 Snappy 格式)

內建 CSV 分類器

內建 CSV 分類器會剖析 CSV 檔案內容,以判斷 AWS Glue 資料表的結構描述。此分類器會檢查以下分隔符號:

  • 逗號 (,)

  • 管道 (|)

  • Tab (\t)

  • 分號 (;)

  • Ctrl-A (\u0001)

    Ctrl-A 為 Start Of Heading 的 Unicode 控制字元。

若要被歸類為 CSV,資料表結構描述必須至少有兩個資料欄和兩個資料列。CSV 分類器使用多種啟發,以判斷在特定檔案中標頭是否存在。如果分類器無法判斷第一列資料的標頭,欄標頭會顯示為 col1col2col3,以此類推。內建 CSV 分類器會透過評估檔案的以下特點判斷是否要推斷標頭:

  • 在潛在標頭中的每個欄位剖析為 STRING 資料類型。

  • 除了最後一個欄位,每個在潛在標頭中內容少於 150 個字元的欄位。若要允許結尾為分隔符號,整個檔案的最後一個欄位可以是空的。

  • 在潛在標頭中的每個欄必須符合欄位名稱的 AWS Glue regex 要求。

  • 標頭資料列必須與資料列有足夠的差異。若要判斷此項目,一或多個資料列必須剖析為其他 STRING 類型。如果所有欄位的類型為 STRING,則第一列資料與用做為標頭的後續資料列的差異不足夠。

注意

如果內建的 CSV 分類器無法如您想要地建立 AWS Glue 資料表,您可以使用以下其中一個替代選項:

  • 變更在 Data Catalog 中的欄名稱,將 SchemaChangePolicy 設定為 LOG,並將分區輸出配置設定為 InheritFromTable 以供未來爬蟲程式執行使用。

  • 建立自訂 grok 分類器來剖析資料並指派您想要的欄。

  • 內建 CSV 分類器會建立資料表,參考 LazySimpleSerDe 做為序列化的程式庫,這是類型推導的最佳選擇。不過,如果 CSV 資料包含引用字串,編輯資料表定義並將 SerDe 程式庫變更為 OpenCSVSerDe。將任何推導類型調整為 STRING,將 SchemaChangePolicy 設定為 LOG,並將分區輸出配置設定為 InheritFromTable 以供未來爬蟲程式執行使用。如需 SerDe 程式庫的更多資訊,請參閱《Amazon Athena 使用者指南》中的 SerDe 參考

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。