View a markdown version of this page

使用標準儲存類別讀取封存的 S3 物件 - AWS 方案指引

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

使用標準儲存類別讀取封存的 S3 物件

使用 AWS Glue

從 MySQL 卸載至 Amazon S3 的資料會保留與關聯式資料庫管理系統 (RDBMS) 相同的結構剛性和一致性。

AWS Glue 爬蟲程式會爬取 S3 物件,推斷資料類型,並將資料表中繼資料建立為外部資料表 DDL。當您設定爬蟲程式工作時,請使用 Amazon S3 做為來源,並指定建立所有資料檔案的 S3 字首位置。在組態中,包含下列項目:

  • 爬蟲程式執行選項

  • 選用資料表字首偏好設定

  • 建立資料表的目標資料庫

  • 具有必要許可的 IAM 角色

叫用任務之後,它會掃描資料以推斷結構描述,並將其保留在 AWS Glue Data Catalog 中做為 AWS Glue 資料表。AWS Glue 資料表基本上是外部資料表,可使用 SQL 陳述式進行查詢,例如使用分析服務的正常資料庫資料表,例如 Amazon AthenaAmazon Redshift SpectrumAmazon EMR 上的 Apache Hive。如需爬蟲程式的詳細資訊,請參閱 AWS Glue 文件

對於具有指定資料欄標頭的 .csv 檔案,產生的資料表資料欄名稱將反映相同的欄位名稱。根據資料物件中的值推斷資料類型。

對於 Parquet 檔案,結構描述會保留在資料本身中,而產生的資料表會反映相同的欄位名稱和資料類型。

或者,您可以在 Athena 內手動執行 DDL,以使用所需的資料欄名稱和資料類型建立資料表定義。這會在 Data Catalog 中建立資料表定義。如需建立 Athena 資料表的詳細資訊,請參閱 Amazon Athena 文件

注意:如果 CSV 檔案缺少標頭列,爬蟲程式會將欄位名稱建立為一般 c_0、c_1、c_2...

使用 Amazon S3 Select

您可以使用 Amazon S3 Select,透過 SQL 表達式以程式設計方式讀取 S3 物件。您可以使用 AWS CLI 命令select-object-content或使用 開發套件,例如 Boto3,以及select_object_content從 Python 叫用 操作,來叫用 API 操作。

API 操作支援 SQL 陳述式做為參數,並且只能讀取 JSON 和 Parquet 類型的檔案。輸出可以重新導向為輸出檔案。

系統會針對每個 S3 物件叫用這些操作。對於多個檔案,以遞迴方式執行操作。

如需使用 AWS CLI 執行操作的詳細資訊,請參閱 AWS CLI 文件。如需使用 Python SDK Boto3 執行 S3 Select 的詳細資訊,請參閱 Boto3 文件