39 ポイント 投稿者 xguru 2024-11-25 | 1件のコメント | WhatsAppで共有
  • データエンジニアリング分野への就職は、複雑な技術エコシステム(例: Spark、Flink、Iceberg、BigQuery など)のため難しく感じられることがある
  • 単に PythonとSQL を学ぶだけでは十分ではなく、体系的な戦略と実践が必要

データエンジニアリング就職に必要な要素

  1. 技術力:

    • SQL および Python に習熟していること
    • 分散コンピューティング技術(Snowflake、Spark、BigQuery のうち1つ以上)
    • オーケストレーションツール(Airflow、Mage、Databricks Workflows など)の理解
    • データモデリングおよびデータ品質管理の能力
  2. ポートフォリオプロジェクト:

    • 実際の技術力を示せるプロジェクトを作ること
  3. 個人ブランディング:

    • LinkedIn プロフィールの管理や面接準備を通じて専門性を強調

SQLの学習と習熟

  • SQLはデータエンジニアリングの必須言語:
    • 推奨学習リソース:
    • 重要な概念:
      • JOIN の種類: INNER、LEFT、FULL OUTER(RIGHT JOIN はほとんど使わない)
      • GROUP BY による集計と DISTINCT の活用
      • ウィンドウ関数と RANK、DENSE_RANK、ROW_NUMBER の違いを理解する
      • SQL の分散環境におけるキーワードとシャッフル(例: JOIN、GROUP BY、ORDER BY)を理解する
      • CTE(Common Table Expression)、Temp Table、View の活用

PythonおよびScalaの学習

  • 言語の選択:
    • 初心者には Python、経験者には Scala を推奨。
  • 重要な概念:
    • データ構造: リスト、ディクショナリ、スタックなど
    • アルゴリズム: ループ、二分探索、Big O 記法の理解
    • Python の主な用途:
      • Airflow DAG の作成
      • REST API とのやり取り
      • Spark UDF の作成とパフォーマンス最適化

分散コンピューティングの概念

  • 分散コンピューティングの核心:
    • データ処理量を分散させる Hadoop/Spark ベースのアーキテクチャを理解する
    • シャッフルとスキュー(skew)問題の管理:
      • Broadcast JOIN、Bucket JOIN、パーティショニングの活用
      • Spark 3+ における適応的実行の利用
  • 出力データ管理:
    • Parquet ファイルのランレングス圧縮(run length encoding)を活用してファイルサイズを最適化

データ品質と可用性の確保

  1. データ品質:

    • 重複除去、NULL 値の点検、適切な形式およびデータ量の確認
    • データパイプラインに Great Expectations のようなツールで品質検証を追加
  2. 使いやすさ:

    • 適切なドキュメント化と事前の仕様合意
    • データモデリング方式:
      • リレーショナル、Dimensional(Kimball)、One Big Table それぞれの長所と短所を理解
  3. 個人情報コンプライアンス:

    • 個人識別情報(PII)の匿名化とデータ保存期間の最小化

ポートフォリオプロジェクトの作成

  • 効果的なプロジェクトの特徴:
    • 個人的に関心のあるテーマを選ぶ
    • フロントエンドと連携したプロジェクトを作る(例: Tableau、Power BI)
    • 最新技術(Spark、Snowflake、Delta Lake など)を適用
    • 本番環境で動作するパイプラインを実装

個人ブランディングと面接準備

  1. LinkedInの活用:

    • 採用担当者や同僚とのネットワークを構築
    • 学習の過程を共有しながら認知を高める
  2. 面接準備:

    • 面接官と企業の背景を調査
    • 質問に落ち着いて前向きに対応
    • 技術や職務に対する好奇心と情熱を伝える

結論

  • 2024年のデータエンジニアリング就職は、厳しい市場環境の中でも体系的な戦略によって十分にアプローチ可能
  • 上記のロードマップに沿って進めば、目指すデータエンジニアリングの仕事により近づけるだろう

1件のコメント

 
joon14 2024-11-25

Scala は本当に良い言語なのに、だんだん Spark 以外では使い道を失っていくようで残念です