首頁 > 後端開發 > Python教學 > 資料工程基礎:實踐指南

資料工程基礎:實踐指南

Barbara Streisand
發布: 2025-01-13 22:33:44
原創
384 人瀏覽過

建構資料工程 ETL 管道的實用指南。本指南提供了一種理解和實施資料工程基礎知識的實務方法,涵蓋儲存、處理、自動化和監控。

什麼是資料工程?

資料工程專注於組織、處理和自動化資料工作流程,將原始資料轉化為有價值的見解,以供分析和決策。 本指南涵蓋:

  1. 資料儲存:定義資料的儲存位置和方式。
  2. 資料處理:清理和轉換原始資料的技術。
  3. 工作流程自動化:實現無縫且有效率的工作流程執行。
  4. 系統監控:確保整個資料管道的可靠性和平穩運作。

讓我們來探索每個階段吧!


設定您的開發環境

在我們開始之前,請確保您具備以下條件:

  1. 環境設定:
    • 基於 Unix 的系統 (macOS) 或適用於 Linux 的 Windows 子系統 (WSL)。
    • 已安裝 Python 3.11(或更高版本)。
    • PostgreSQL 資料庫在本地安裝並運行。
  2. 先決條件:
    • 基本的命令列熟練度。
    • 基礎 Python 程式設計知識。
    • 軟體安裝和設定的管理權限。
  3. 架構概述: Data Engineering Foundations: A Hands-On Guide

此圖說明了管道組件之間的交互作用。這種模組化設計充分利用了每種工具的優勢:用於工作流程編排的 Airflow、用於分散式資料處理的 Spark 以及用於結構化資料儲存的 PostgreSQL。

  1. 安裝必要的工具:
    • PostgreSQL:
      <code class="language-bash">brew update
      brew install postgresql</code>
      登入後複製
      登入後複製
      登入後複製
    • PySpark:
      <code class="language-bash">brew install apache-spark</code>
      登入後複製
      登入後複製
      登入後複製
    • 氣流:
      <code class="language-bash">python -m venv airflow_env
      source airflow_env/bin/activate  # macOS/Linux
      pip install "apache-airflow[postgres]==" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.11.txt"
      airflow db migrate</code>
      登入後複製
      登入後複製
      登入後複製

Data Engineering Foundations: A Hands-On Guide

環境準備好了,我們來深入研究各個組件。


1.資料儲存:資料庫與檔案系統

資料儲存是任何資料工程管道的基礎。 我們將考慮兩個主要類別:

  • 資料庫:有效組織的資料存儲,具有搜尋、複製和索引等功能。例如:
    • SQL 資料庫: 用於結構化資料(例如 PostgreSQL、MySQL)。
    • NoSQL 資料庫: 用於無模式資料(例如 MongoDB、Redis)。
  • 檔案系統:適合非結構化數據,提供的功能比資料庫少。

設定 PostgreSQL

  1. 啟動 PostgreSQL 服務:
<code class="language-bash">brew update
brew install postgresql</code>
登入後複製
登入後複製
登入後複製

Data Engineering Foundations: A Hands-On Guide

  1. 建立資料庫、連線並建立表格:
<code class="language-bash">brew install apache-spark</code>
登入後複製
登入後複製
登入後複製
  1. 插入範例資料:
<code class="language-bash">python -m venv airflow_env
source airflow_env/bin/activate  # macOS/Linux
pip install "apache-airflow[postgres]==" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.11.txt"
airflow db migrate</code>
登入後複製
登入後複製
登入後複製

Data Engineering Foundations: A Hands-On Guide

您的資料現在已安全地儲存在 PostgreSQL 中。


2.資料處理:PySpark 與分散式計算

資料處理框架將原始資料轉化為可操作的見解。 Apache Spark 以其分散式運算能力成為熱門選擇。

  • 處理模式:
    • 批次:以固定大小的批次處理資料。
    • 流處理:即時處理資料。
  • 常用工具: Apache Spark、Flink、Kafka、Hive。

使用 PySpark 處理資料

  1. 安裝 Java 和 PySpark:
<code class="language-bash">brew services start postgresql</code>
登入後複製
  1. 從 CSV 檔案載入資料:

使用以下資料建立 sales.csv 檔案:

<code class="language-sql">CREATE DATABASE sales_data;
\c sales_data
CREATE TABLE sales (
    id SERIAL PRIMARY KEY,
    item_name TEXT,
    amount NUMERIC,
    sale_date DATE
);</code>
登入後複製

使用以下Python腳本載入和處理資料:

<code class="language-sql">INSERT INTO sales (item_name, amount, sale_date)
VALUES ('Laptop', 1200, '2024-01-10'),
       ('Phone', 800, '2024-01-12');</code>
登入後複製

Data Engineering Foundations: A Hands-On Guide Data Engineering Foundations: A Hands-On Guide

  1. 過濾高價值銷售:
<code class="language-bash">brew install openjdk@11 && brew install apache-spark</code>
登入後複製

Data Engineering Foundations: A Hands-On Guide Spark UI - High-Value Sales

  1. 設定 Postgres DB 驅動程式: 如果需要,請下載 PostgreSQL JDBC 驅動程式並更新下方腳本中的路徑。

  2. 將處理後的資料儲存到 PostgreSQL:

<code class="language-bash">brew update
brew install postgresql</code>
登入後複製
登入後複製
登入後複製

Data Engineering Foundations: A Hands-On Guide Data Engineering Foundations: A Hands-On Guide Data Engineering Foundations: A Hands-On Guide

Spark資料處理完成。


3.工作流程自動化:氣流

自動化使用調度和依賴關係定義簡化工作流程管理。 Airflow、Oozie 和 Luigi 等工具有助於實現這一點。

使用 Airflow 自動化 ETL

  1. 初始化氣流:
<code class="language-bash">brew install apache-spark</code>
登入後複製
登入後複製
登入後複製

Data Engineering Foundations: A Hands-On Guide Create Airflow User

  1. 建立工作流程 (DAG):
<code class="language-bash">python -m venv airflow_env
source airflow_env/bin/activate  # macOS/Linux
pip install "apache-airflow[postgres]==" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.11.txt"
airflow db migrate</code>
登入後複製
登入後複製
登入後複製

此 DAG 每天運行,執行 PySpark 腳本,並包含驗證步驟。 失敗時會發送電子郵件警報。

  1. 監控工作流程:將 DAG 檔案放入 Airflow 的 dags/ 目錄中,重新啟動 Airflow 服務,並透過 http://localhost:8080 處的 Airflow UI 進行監控。

Data Engineering Foundations: A Hands-On Guide


4.系統監控

監控確保管道可靠性。 Airflow 的警報或與 Grafana 和 Prometheus 等工具的整合是有效的監控策略。 使用 Airflow UI 檢查任務狀態和日誌。

Data Engineering Foundations: A Hands-On Guide


結論

您已經學會了設定資料儲存、使用 PySpark 處理資料、使用 Airflow 自動化工作流程以及監控系統。 資料工程是一個關鍵領域,本指南為進一步探索奠定了堅實的基礎。 請記住查閱提供的參考資料以獲取更深入的資訊。

以上是資料工程基礎:實踐指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板