將 Amazon S3 中的檔案用於資料來源 - AWS Glue

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

將 Amazon S3 中的檔案用於資料來源

如果您選擇 Amazon S3 做為資料來源,則可以選擇下列其中一項:

  • Data Catalog 資料庫和資料表。

  • Amazon S3 中的儲存貯體、資料夾或檔案。

如果您使用 Amazon S3 儲存貯體作為資料來源,則 AWS Glue 會從其中一個檔案,或使用您指定為範例檔案的檔案中,偵測位於指定位置之資料的結構描述。結構描述偵測會發生在您使用 Infer schema (推斷結構描述) 按鈕時。如果變更 Amazon S3 位置或範例檔案,則必須選擇 Infer schema (推斷結構描述),以使用新資訊執行結構描述偵測。

設定直接從 Amazon S3 中的檔案讀取的資料來源節點
  1. 前往新任務或已儲存任務的視覺化編輯器。

  2. 在任務圖表中為 Amazon S3 來源選擇資料來源節點。

  3. 選擇 Data source properties (資料來源屬性) 索引標籤,然後輸入下列資訊:

    • S3 source type (S3 來源類型):(僅適用於 Amazon S3 資料來源) 選擇 S3 location (S3 位置) 選項。

    • S3 URL:輸入包含任務資料的 Amazon S3 儲存貯體、資料夾或檔案的路徑。您可以選擇 Browse S3 (瀏覽 S3),從您的帳戶可用位置選取路徑。

    • Recursive (遞迴):如果您想要 AWS Glue 從 S3 位置的子資料夾中的檔案讀取資料,請選擇此選項。

      如果子資料夾包含分割的資料,AWS Glue 不會將資料夾名稱中指定的任何分割區資訊新增至 Data Catalog 。例如,請試想在 Amazon S3 中有以下資料夾:

      S3://sales/year=2019/month=Jan/day=1 S3://sales/year=2019/month=Jan/day=2

      如果選擇 Recursive (遞迴),然後選取 sales 資料夾作為您的 S3 位置,則 AWS Glue 會讀取所有子資料夾中的資料,但不會為年份、月份或日建立分割區。

    • Data format (資料格式):選擇儲存資料的格式。您可以選擇 JSON、CSV 或 Parquet。您選取的值會告訴 AWS Glue 任務如何從來源檔案讀取資料。

      注意

      如果您沒有為資料選取正確的格式,則 AWS Glue 可能會正確推斷結構描述,但任務將無法正確解析來源檔案中的資料。

      根據您選擇的格式,您可以輸入其他組態選項。

      • JSON (JavaScript 物件標記法)

        • JsonPath:輸入指向用來定義資料表結構描述之物件的 JSON 路徑。JSON 路徑表達式一律以將 XPath 表達式與 XML 文件搭配使用的相同方式,來參照 JSON 結構。JSON 路徑中的「根成員物件」一律稱為 $,即使它是物件或陣列。您可以用點標記法或括號標記法來撰寫 JSON 路徑。

          如需 JSON 路徑的詳細資訊,請參閱 GitHub 網站上的 JsonPath

        • Records in source files can span multiple lines (來源檔案中的記錄可以跨越多行):如果單項記錄可以跨越 CSV 檔案中的多行,請選擇此選項。

      • CSV (逗號分隔值)

        • Delimiter (分隔符號):輸入字元來表示用什麼分隔列中的每個欄項目,例如 ;,

        • Escape character (逸出字元):輸入用作逸出字元的字元。此字元表示緊接在逸出字元後面的字元應該依照字面解讀,不應該被解譯為分隔符號。

        • Quote character (引號字元):輸入用來將個別字串群組成單一值的字元。例如,如果在您的 CSV 檔案中有像 "This is a single value" 的值,您可以選擇 Double quote (") (雙引號 ("))

        • Records in source files can span multiple lines (來源檔案中的記錄可以跨越多行):如果單項記錄可以跨越 CSV 檔案中的多行,請選擇此選項。

        • First line of source file contains column headers (來源檔案的第一行包含欄標題):如果 CSV 檔案中的第一列包含欄標頭而非資料,請選擇此選項。

      • Parquet (Apache Parquet 直欄式儲存)

        沒有額外的設定可以為儲存在 Parquet 格式的資料進行設定。

    • Partition predicate (分割區述詞):若要分割從資料來源讀取的資料,請輸入以 Spark SQL 為基礎的布林表達式,其中只包含分割欄,例如:"(year=='2020' and month=='04')"

    • Advanced options (進階選項):如果您需要 AWS Glue 根據特定檔案偵測資料的結構描述,請展開此區段。

      • Schema inference (結構描述推斷):如果您想使用特定的檔案而不是讓 AWS Glue 選擇檔案,請選擇選項 Choose a sample file from S3 (從 S3 選擇範例檔案)。

      • Auto-sampled file (自動取樣檔案):輸入 Amazon S3 中要用於推斷結構描述的檔案路徑。

      如果您要編輯資料來源節點並變更選取的範例檔案,請選擇 Reload schema (重新載入結構描述) 以使用新的範例檔案來偵測結構描述。

  4. 選擇 Infer schema (推斷結構描述) 按鈕,以從 Amazon S3 中的來源檔案偵測結構描述。如果變更 Amazon S3 位置或範例檔案,則必須再次選擇 Infer schema (推斷結構描述) 以使用新資訊推斷結構描述。