

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

# 資料準備和清理
<a name="data-preparation-cleaning"></a>

資料準備和清理是資料生命週期中最重要且最耗時的階段之一。下圖顯示資料準備和清理階段如何符合資料工程自動化和存取控制生命週期。

![資料準備和清理圖表](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/modern-data-centric-use-cases/images/data_prep_cleaning.png)


以下是一些資料準備或清理的範例：
+ 將文字資料欄映射至程式碼
+ 忽略空白資料欄
+ 使用 `0`、 `None`或 填入空白資料欄位 `''`
+ 匿名化或遮罩個人身分識別資訊 (PII)

如果您有具有各種資料的大型工作負載，建議您使用 [Amazon EMR](https://aws.amazon.com/emr/) 或 [AWS Glue](https://aws.amazon.com/glue/) 進行資料準備和清理任務。Amazon EMR 和 AWS Glue 都使用非結構化、半結構化和關聯式資料，而且兩者都可以使用 Apache Spark 建立 `DataFrame`或 `DynamicFrame` 來處理水平處理。此外，您可以使用 [AWS Glue DataBrew](https://aws.amazon.com/glue/features/databrew/) 以無程式碼方法清理和處理資料。此外，DataBrew 可以使用資料欄統計資料來分析資料集、提供資料歷程，以及包含所有或指定資料欄的資料品質規則。

對於不需要分散式處理且可在 15 分鐘內完成的較小工作負載，我們建議您使用 [AWS Lambda](https://aws.amazon.com/lambda/) 進行資料準備和清理。Lambda 是小型工作負載經濟實惠且輕量型的選項。對於無法進入雲端的高度安全資料，我們建議您使用 [AWS Outposts](https://aws.amazon.com/outposts/) 伺服器在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上執行資料匿名化。

為資料準備和清理選擇正確的 AWS 服務，以及了解與您選擇相關的權衡至關重要。例如，假設您是從 AWS Glue、DataBrew 和 Amazon EMR 中選擇的案例。如果 ETL 任務不常執行，則 AWS Glue 是理想的選擇。不常發生的任務每天執行一次、每週執行一次，或每月執行一次。您可以進一步假設資料工程師熟練撰寫 Spark 程式碼 （適用於大數據使用案例） 或一般編寫指令碼。如果任務更頻繁，持續執行 AWS Glue 可能會變得昂貴。在這種情況下，Amazon EMR 提供分散式處理功能，並提供無伺服器和伺服器型版本。如果您的資料工程師沒有適當的技能或您必須快速交付結果，則 DataBrew 是不錯的選擇。DataBrew 可以減少開發程式碼的工作量，並加速資料準備和清理程序。

處理完成後，ETL 程序的資料會存放在 AWS 上。儲存體的選擇取決於您正在處理的資料類型。例如，您可以處理非關聯式資料，例如圖形資料、鍵值對資料、影像、文字檔案或關聯式結構化資料。

如下圖所示，您可以使用下列 AWS 服務進行資料儲存：
+ [Amazon S3](https://aws.amazon.com/s3/) 存放非結構化資料或半結構化資料 （例如 Apache Parquet 檔案、映像和影片）。
+ [Amazon Neptune](https://aws.amazon.com/neptune/) 存放圖形資料集，您可以使用 SPARQL 或 GREMLIN 查詢。
+ [Amazon Keyspaces （適用於 Apache Cassandra)](https://aws.amazon.com/keyspaces/) 存放與 Apache Cassandra 相容的資料集。
+ [Amazon Aurora](https://aws.amazon.com/rds/aurora/) 會存放關聯式資料集。
+ [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) 會將索引鍵值或文件資料存放在 NoSQL 資料庫中。
+ [Amazon Redshift](https://aws.amazon.com/redshift/) 會將結構化資料的工作負載存放在資料倉儲中。



![資料儲存服務。](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/modern-data-centric-use-cases/images/data_prep_cleaning_storage_1.png)


透過使用正確的服務搭配正確的組態，您可以以最有效率且最有效的方式存放資料。這可將資料擷取所涉及的工作量降至最低。