本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用標準儲存類別讀取封存的 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 Athena、Amazon Redshift Spectrum 和 Amazon 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 文件