ホームページ > バックエンド開発 > 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.データストレージ: データベースとファイルシステム

データ ストレージは、あらゆるデータ エンジニアリング パイプラインの基盤です。 2 つの主なカテゴリを検討します:

  • データベース: 検索、レプリケーション、インデックス作成などの機能を備えた効率的に編成されたデータ ストレージ。例:
    • 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

自動化は、スケジュールと依存関係の定義を使用してワークフロー管理を合理化します。 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート