

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

# 資料工程
<a name="data-eng"></a>

**自動化和協調整個組織的資料流程。**

使用中繼資料來自動化處理原始資料的[管道](https://aws.amazon.com/glue/)，並產生最佳化輸出。利用 AWS CAF 平台架構和平台工程功能以及營運觀點中定義的現有架構防護機制和安全控制。與平台工程支援團隊合作，為簡化管道部署的常見模式開發可重複使用[的藍圖](https://aws.amazon.com/blogs/big-data/simplify-data-integration-pipeline-development-using-aws-glue-custom-blueprints/)。 

## Start
<a name="data-eng-start"></a>

### 部署資料湖
<a name="data-eng-datalake"></a>

為結構化和非結構化資料使用適當的儲存解決方案，以建立基礎資料儲存功能。這可讓您從各種來源收集和存放資料，並讓資料可供進一步處理和分析。資料儲存是資料工程策略的關鍵元件。精心設計的資料儲存架構可讓組織以有效且符合成本效益的方式存放、管理和存取其資料。 AWS 提供各種資料儲存服務，以滿足特定業務需求。

例如，您可以將 [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 用於物件儲存、將 [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) 用於關聯式資料庫，以及將 [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/welcome.html) 用於資料倉儲，以建立基礎資料儲存功能。這些服務可協助您以安全且符合成本效益的方式存放資料，並可輕鬆存取資料以進行進一步處理和分析。我們建議您也實作資料儲存最佳實務，例如資料分割和壓縮，以改善效能並降低成本。

### 開發資料擷取模式
<a name="data-eng-ingestion"></a>

若要自動化和協調資料流程，請建立資料擷取程序，以從各種來源收集資料，包括資料庫、檔案和 APIs。您的資料擷取程序應支援業務敏捷性，並考量控管控制。

協調器應該能夠執行以雲端為基礎的服務，並提供自動化排程機制。它應該提供任務之間的條件式連結和相依性選項，以及輪詢和錯誤處理功能。此外，它應該與提醒和監控系統無縫整合，以確保管道順利執行。

一些熱門的協同運作機制包括：
+ *時間型協同運作*會以遞迴間隔和定義的頻率啟動工作流程。
+ *事件型協同運作*會根據事件的發生啟動工作流程，例如建立檔案或 API 請求。
+ *輪詢*會實作一種機制，其中任務或工作流程會呼叫服務 （例如，透過 API)，並等待定義的回應，然後再繼續進行下一個步驟。

現代架構設計強調利用可簡化雲端基礎設施管理的受管服務，並減少開發人員和基礎設施團隊的負擔。此方法也適用於資料工程。我們建議您在適用的情況下使用 受管服務來建置資料擷取管道，以加速資料工程程序。這些服務類型的兩個範例是 Amazon Managed Workflows for Apache Airflow (Amazon MWAA) 和 AWS Step Functions：
+ **Apache Airflow** 是編寫、排程和監控工作流程的熱門協同運作工具。 AWS 提供 [Amazon Managed Workflows for Apache Airflow (Amazon MWAA)](https://docs.aws.amazon.com/mwaa/latest/userguide/what-is-mwaa.html) 作為受管服務，可讓開發人員專注於建置，而不是管理協同運作工具的基礎設施。Amazon MWAA 可讓您使用 Python 指令碼輕鬆撰寫工作流程。有向無環圖 (DAG) 代表工作流程做為任務的集合，其方式會顯示每個任務的關係和相依性。您可以擁有任意數量DAGs，Apache Airflow 會根據每個任務的關係和相依性來執行這些 DAG。
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 協助開發人員建置低程式碼視覺化工作流程，以自動化 IT 和業務流程。您使用 Step Functions 建置的工作流程稱為*狀態機器*，而工作流程的每個步驟都稱為*狀態*。您可以使用 Step Functions 建立工作流程，以進行內建錯誤處理、參數傳遞、建議的安全性設定和狀態管理。這些可減少您必須撰寫和維護的程式碼數量。任務會透過與另一個 AWS 服務或您在內部部署或雲端環境中託管的應用程式進行協調來執行工作。

### 加速資料處理
<a name="data-eng--processing"></a>

資料處理是了解現代組織所收集的大量資料的重要步驟。若要開始使用資料處理， AWS 提供 等受管服務[AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)，可提供強大的擷取、轉換和載入 (ETL) 功能。組織可以使用這些服務開始處理和轉換原始資料，包括清理、標準化和彙總資料，以準備進行分析。

資料處理從簡單的技術開始，例如彙總和篩選，以執行初始資料轉換。隨著資料處理需求的演進，您可以實作更進階的 ETL 程序，讓您從各種來源擷取資料、轉換資料以符合您的特定需求，並將其載入集中式資料倉儲或資料庫以進行統一分析。此方法可確保資料準確、完整，並可及時進行分析。

透過使用 AWS 受管服務進行資料處理，組織可以從更高層級的自動化、可擴展性和成本效益中受益。這些服務可自動化許多例行資料處理任務，例如結構描述探索、資料分析和資料轉換，並為更具策略性的活動釋放寶貴的資源。此外，這些服務會自動擴展，以支援不斷增長的資料磁碟區。

### 提供資料視覺化服務
<a name="data-eng-visualization"></a>

尋找方法，讓使用資料視覺化以有意義的方式快速解譯資料的決策者可以使用資料。透過視覺化，您可以解譯模式並提高各種利益相關者的參與度，無論他們的技術技能如何。良好的平台可讓資料工程團隊佈建資源，以快速且低成本的方式提供資料視覺化。您也可以使用工具輕鬆查詢資料存放區，而不需要工程專業知識，以提供自助服務功能。請考慮使用內建工具，透過資料視覺效果和互動式儀表板提供無伺服器商業智慧，並使用自然語言查詢後端資料。 

## 進階
<a name="data-eng-advance"></a>

### 實作近乎即時的資料處理
<a name="data-eng-realtime"></a>

資料處理是任何資料工程管道的重要元件，可讓組織將原始資料轉換為有意義的洞見。除了傳統的批次處理之外，即時資料處理在現今快節奏的商業環境中變得越來越重要。即時資料處理可讓組織在事件發生時回應事件，並改善決策和營運效率。

### 驗證資料品質
<a name="data-eng-quality"></a>

資料品質會直接影響衍生自資料的洞見和決策的準確性和可靠性。實作資料驗證和清理程序對於確保您使用高品質且值得信賴的資料進行分析至關重要。

資料驗證涉及透過比對預先定義的規則和條件來驗證資料的準確性、完整性和一致性。這有助於識別資料中的任何差異或錯誤，並確保其符合用途。資料清理涉及識別和更正資料中的任何不準確、不一致或重複。

透過實作資料品質程序和工具，組織可以改善從資料衍生之洞見的準確性和可靠性，進而獲得更好的決策和營運效率。這不僅可以增強組織的效能，還可以提高利益相關者對產生的資料和分析的信心和信任。

### 證明資料轉換服務
<a name="data-eng-transform"></a>

資料轉換會準備進階分析和機器學習模型的資料。它涉及使用資料正規化、擴充和重複資料刪除等技術，以確保資料乾淨、一致且已準備好進行分析。
+ *資料標準化*涉及將資料組織成標準格式、消除冗餘，以及確保資料在不同來源之間保持一致。這可讓您更輕鬆地分析和比較來自多個來源的資料，並讓組織更全面地了解其操作。
+ *資料擴充*涉及使用來自外部來源的其他資訊增強現有資料，例如人口統計資料或市場趨勢。這可提供有關客戶行為或產業趨勢的寶貴洞見，這些趨勢可能不單從內部資料來源看出。
+ *重複資料刪除*涉及識別和移除重複的資料項目，並確保資料準確且無錯誤。這在處理大型資料集時特別重要，其中即使只有一小部分的重複項目可能會扭曲分析結果。

透過使用進階資料轉換技術，組織可以確保其資料具有高品質、準確且已準備好進行更複雜的分析。這有助於做出更好的決策、提高營運效率，並在市場中獲得競爭優勢。

### 啟用資料民主化
<a name="data-eng-democratization"></a>

透過讓資料可供所有員工存取、理解和使用，促進資料普及文化。資料普及化可協助員工做出資料驅動型決策，並有助於組織的資料驅動型文化。這表示打破孤島並建立一種文化，讓所有員工共用和使用資料來推動決策。

整體而言，資料民主化是關於建立一種文化，讓組織中的每個人都能重視、存取和理解資料。透過啟用資料民主化，組織可培養資料驅動型文化，以推動創新、改善決策，並最終帶來業務成功。

## Excel
<a name="data-eng-excel"></a>

### 提供以 UI 為基礎的協同運作
<a name="data-eng-ui"></a>

若要建置敏捷且使用有效方法的組織，請務必規劃現代協同運作平台，供跨業務單位的開發和營運資源使用。目標是開發、部署和共用資料管道和工作流程，而不依賴單一團隊、技術或支援模型。這可透過 UI 型協同運作等功能實現。drag-and-drop互動等功能，可讓技術知識不多的使用者建構 DAGs 和狀態機器資料流程。然後，這些元件可以產生可協調資料管道的可執行程式碼。 

DataOps 有助於克服資料管理的複雜性，並確保跨組織的無縫資料流程。中繼資料驅動型方法可確保資料品質和合規符合組織的要求。投資微服務、容器化和無伺服器函數等工具集可改善可擴展性和敏捷性。

仰賴資料工程團隊從資料中產生價值，並將day-to-day基礎設施任務留給自動化，讓組織在自動化和協同運作方面取得卓越成果。資料流程管理任務近乎即時的監控和記錄支援立即的修補動作，並改善資料流程管道的效能和安全性。這些原則有助於實現可擴展性和效能，同時確保安全的資料共用模型，並使組織在未來取得成功。

### 整合 DataOps
<a name="data-eng-dataops"></a>

DataOps 是一種現代化的資料工程方法，強調開發和操作程序的整合，以簡化資料管道的建立、測試和部署。為了實作 DataOps 最佳實務，組織會使用基礎設施做為程式碼 (IaC) 和持續整合和持續交付 (CI/CD) 工具。這些工具支援自動化管道建立、測試和部署，可大幅提升效率並減少錯誤。DataOps 團隊會與平台工程支援團隊合作來建置這些自動化，因此每個團隊都可以專注於他們最擅長的工作。 

實作 DataOps 方法有助於促進資料工程師、資料科學家和商業使用者的協作環境，並快速開發、部署和監控資料管道和分析解決方案。這種方法提供跨團隊更順暢的溝通和協作，進而加快創新速度並取得更好的成果。

若要充分利用 DataOps 的優勢，請務必簡化資料工程程序。這是透過使用平台工程團隊的最佳實務來實現的，包括程式碼檢閱、持續整合和自動化測試。透過實作這些實務，組織可以確保資料管道可靠、可擴展且安全，並且同時符合業務和技術利益相關者的需求。