kaeken(嘉永島健司)のTech探究ブログ

主に情報科学/情報技術全般に関する知見をポストします。(最近は、特にData Science、機械学習、深層学習、統計学、Python、数学、ビッグデータ)

1章: Fundamentals of Data Engineering まとめ

Fundamentals of Data Engineering まとめ

Link

Fundamentals of Data Engineering [Book]

目次en

I. Foundation and Building Blocks
1. Data Engineering Described
2. The Data Engineering Lifecycle
3. Designing Good Data Architecture
4. Choosing Technologies Across the Data Engineering Lifecycle
II. The Data Engineering Lifecycle in Depth
5. Data Generation in Source Systems
6. Storage
7. Ingestion
8. Queries, Modeling, and Transformation
9. Serving Data for Analytics, Machine Learning, and Reverse ETL
III. Security, Privacy, and the Future of Data Engineering
10. Security and Privacy
11. The Future of Data Engineering

1章まとめ

What Is Data Engineering?

  • Definition and Purpose: Despite its popularity, there's confusion about data engineering's meaning and the role of data engineers. Data engineering has evolved with data analytics and the rise of data science in the 2010s. It's crucial to define what data engineering and data engineers entail.

  • Diverse Definitions: Over 91,000 unique definitions highlight the field's complexity. Some key expert definitions include:

    • Data engineering involves creating interfaces and mechanisms for data flow and access, maintained by specialists (data engineers) to keep data available and usable. Data engineers set up and operate data infrastructure for analysis by analysts and scientists.
    • Two primary types of data engineering:
      1. SQL-focused: Uses relational databases for data storage and processing with SQL or SQL-based languages, sometimes utilizing ETL tools.
      2. Big Data–focused: Relies on Big Data technologies (Hadoop, Cassandra, HBase) and frameworks (MapReduce, Spark, Flink) for data processing, with programming languages like Java, Scala, and Python for primary processing.
    • Data engineering is seen as a superset of business intelligence and data warehousing, incorporating software engineering elements and specializing in big data systems, the Hadoop ecosystem, stream processing, and large-scale computation.
    • It emphasizes the movement, manipulation, and management of data, offering a broad spectrum of interpretations about its essence.

データエンジニアリングとは何か?

  • 定義と目的: データエンジニアリングの意味やデータエンジニアの役割についての混乱があります。データエンジニアリングはデータ分析と2010年代のデータサイエンスの台頭とともに進化してきました。データエンジニアリングとデータエンジニアの定義を明確にすることが重要です。

  • 多様な定義: 91,000以上のユニークな定義がこの分野の複雑さを示しています。いくつかの重要な専門家の定義を挙げます:

    • データエンジニアリングは、データの流れとアクセスのためのインターフェースとメカニズムを作成する一連の操作を含みます。専門家(データエンジニア)によってデータが利用可能かつ使用可能な状態に保たれます。データエンジニアは、分析者や科学者による分析のためのデータインフラを設定し、運用します。
    • データエンジニアリングの2つの主要なタイプ:
      1. SQLに焦点を当てた: リレーショナルデータベースをデータの保存および処理に使用し、SQLSQLベースの言語で処理を行います。時にはETLツールを使用します。
      2. ビッグデータに焦点を当てた: ビッグデータ技術(Hadoop、Cassandra、HBase)およびフレームワークMapReduce、Spark、Flink)を使用し、JavaScalaPythonなどのプログラミング言語で主に処理を行います。
    • データエンジニアリングは、ビジネスインテリジェンスやデータウェアハウジングの上位集合と見なされ、ソフトウェアエンジニアリングの要素やビッグデータシステム、Hadoopエコシステム、ストリーム処理、大規模計算の概念を統合しています。
    • データの移動、操作、および管理について強調し、データエンジニアリングの本質について幅広い意見が含まれています。

Data Engineering Defined

  • Core Activities: A data engineer is responsible for acquiring data, storing it, and preparing it for use by data scientists, analysts, and others.
  • Definition: Data engineering involves the development, implementation, and maintenance of systems and processes for transforming raw data into high-quality, consistent information useful for downstream applications like analysis and machine learning.
  • Intersections: It intersects with security, data management, DataOps, data architecture, orchestration, and software engineering.
  • Lifecycle Management: Data engineers manage the entire data engineering lifecycle, from sourcing data to making it available for analytical or machine learning purposes.

データエンジニアリングの定義

  • 主要活動: データエンジニアは、データの取得、保存、およびデータサイエンティスト、アナリストなどが使用できるように準備する責任があります。
  • 定義: データエンジニアリングは、生データを分析や機械学習などの下流アプリケーションに有用な高品質で一貫性のある情報に変換するためのシステムとプロセスの開発、実装、および維持管理を含みます。
  • 交差点: セキュリティ、データ管理、DataOps、データアーキテクチャオーケストレーション、およびソフトウェアエンジニアリングと交差します。
  • ライフサイクル管理: データエンジニアは、データのソースから取得して分析目的や機械学習目的で利用可能にするまで、データエンジニアリングのライフサイクル全体を管理します。

The Data Engineering Lifecycle

  • Holistic Context: Emphasizes viewing data engineering roles within the holistic context of the data engineering lifecycle.
  • Lifecycle Stages:
    • Generation: The origin of data.
    • Storage: Where data is kept.
    • Ingestion: The process of bringing data into the system.
    • Transformation: Modifying data to a usable format.
    • Serving: Making data available for use.
  • Undercurrents: Highlights critical ideas spanning the entire lifecycle, including security, data management, DataOps, data architecture, orchestration, and software engineering.

データエンジニアリングのライフサイクル

  • 包括的なコンテキスト: データエンジニアリングの役割を、データエンジニアリングのライフサイクルの包括的なコンテキスト内で見ることを強調します。
  • ライフサイクルの段階:
    • 生成: データの起源。
    • 保管: データが保持される場所。
    • 取り込み: システムにデータを取り込むプロセス。
    • 変換: 使用可能な形式にデータを変更すること。
    • 提供: 使用のためにデータを利用可能にすること。
  • 基本概念: セキュリティ、データ管理、DataOps、データアーキテクチャオーケストレーション、およびソフトウェアエンジニアリングを含む、ライフサイクル全体にわたる重要な概念を強調します。

Evolution of the Data Engineer

  • Early Days (1980 to 2000): From data warehousing beginnings in the 1970s, with significant developments in the 1980s, including the official coining of "data warehouse" by Bill Inmon in 1989. The era saw the rise of relational databases and SQL, popularized by Oracle, and the need for dedicated data warehousing and BI tools.
  • Data Modeling Techniques: Ralph Kimball and Bill Inmon developed foundational data-modeling techniques for business logic representation in data warehouses, still in use today.
  • Scalable Analytics: Introduction of MPP databases for scalable analytics, supporting large data volumes, and the emergence of roles like BI engineer, ETL developer, and data warehouse engineer.
  • Internet Era: Mid-1990s mainstream internet adoption led to the rise of web-first companies (e.g., AOL, Yahoo, Amazon) and the dot-com boom, driving advancements in web applications and backend systems.

データエンジニアの進化

  • 初期(1980年から2000年): 1970年代のデータウェアハウジングの始まりから、1980年代の重要な発展、1989年にビル・インモンによって「データウェアハウス」という用語が公式に造られた時代まで。この時代は、リレーショナルデータベースとSQLの台頭、オラクルによる技術の普及、専用のデータウェアハウジングおよびBIツールの必要性を見ました。
  • データモデリング技術: ラルフ・キンボールとビル・インモンは、データウェアハウス内のビジネスロジックを表現するための基礎的なデータモデリング技術を開発し、これらは今日でも広く使用されています。
  • スケーラブルな分析: 大量のデータを処理するための複数のプロセッサを使用するMPPデータベースの導入、大量のデータをサポートするスケーラブルな分析の第一時代の幕開け、BIエンジニア、ETL開発者、データウェアハウスエンジニアなどの役割の出現。
  • インターネット時代: 1990年代半ばにインターネットが主流になり、AOL、Yahoo、Amazonなどのウェブファースト企業の台頭とドットコム・ブームが始まり、ウェブアプリケーションとそれを支えるバックエンドシステム(サーバー、データベース、ストレージ)の進歩を促進しました。

  • Early 2000s Data Engineering Evolution: Post-dot-com bust, companies like Yahoo, Google, and Amazon emerged as tech giants, initially relying on traditional databases but quickly outgrowing them due to the need for more scalable, cost-effective solutions.

  • Rise of Commodity Hardware and Big Data: The affordability of hardware and innovations in distributed computing led to the decentralization of services and the start of the big data era, characterized by the ability to analyze vast datasets to uncover patterns and trends.
  • Google's Influence and Apache Hadoop: Google's publications on the Google File System and MapReduce in 2003 and 2004 respectively, marked a pivotal moment for data technologies, inspiring the development of Apache Hadoop by Yahoo engineers, which significantly impacted the field of data engineering.
  • Amazon's Contributions: Amazon developed solutions like EC2, S3, and DynamoDB to meet its data needs, offering these services through AWS. This marked the beginning of the public cloud era, revolutionizing software and data application development.
  • Impact on Modern Data Engineering: These developments laid the groundwork for the current data ecosystem, shaping the field of data engineering as we know it today.

Unordered List in English

  • Post-dot-com bust, companies like Yahoo, Google, and Amazon emerged as tech giants, initially relying on traditional databases but quickly outgrowing them due to the need for more scalable, cost-effective solutions.
  • The affordability of hardware and innovations in distributed computing led to the decentralization of services and the start of the big data era, characterized by the ability to analyze vast datasets to uncover patterns and trends.
  • Google's publications on the Google File System and MapReduce in 2003 and 2004 respectively, marked a pivotal moment for data technologies, inspiring the development of Apache Hadoop by Yahoo engineers, which significantly impacted the field of data engineering.
  • Amazon developed solutions like EC2, S3, and DynamoDB to meet its data needs, offering these services through AWS. This marked the beginning of the public cloud era, revolutionizing software and data application development.
  • These developments laid the groundwork for the current data ecosystem, shaping the field of data engineering as we know it today.

Japanese Translation

  • ドットコムバブル崩壊後、Yahoo、GoogleAmazonなどの企業が技術大手として台頭し、当初は従来のデータベースに依存していましたが、よりスケーラブルでコスト効率の高いソリューションが必要になるにつれてすぐにそれらを超えました。
  • ハードウェアの手頃な価格と分散コンピューティングのイノベーションにより、サービスの分散化が始まり、大量のデータセットを分析してパターンや傾向を明らかにすることが特徴のビッグデータ時代が始まりました。
  • GoogleGoogleファイルシステムおよびMapReduceに関する2003年および2004年の出版物は、それぞれデータ技術にとって画期的な瞬間をマークし、YahooのエンジニアによるApache Hadoopの開発を触発し、データエンジニアリングの分野に大きな影響を与えました。
  • Amazonは、EC2、S3、DynamoDBなどのソリューションを開発してデータニーズに対応し、これらのサービスをAWSを通じて提供しました。これはパブリッククラウド時代の始まりをマークし、ソフトウェアおよびデータアプリケーションの開発を革命しました。
  • これらの開発は、現在のデータエコシステムの基盤を築き、今日我々が知るデータエンジニアリングの分野を形作りました。

The 2000s and 2010s: Big Data Engineering

  • Hadoop Ecosystem: Open source big data tools within the Hadoop ecosystem matured and became widely accessible, allowing businesses worldwide to use advanced data tools.
  • Transition to Real-Time Data: A significant shift from batch computing to event streaming, introducing the era of big "real-time" data.
  • Emergence of New Technologies: Tools like Hadoop, Apache Pig, Hive, Dremel, HBase, Storm, Cassandra, Spark, and Presto revolutionized data engineering, moving away from traditional GUI-based tools to code-first engineering.
  • Big Data Engineer Role: Required proficiency in software development and infrastructure with a focus on managing large data clusters and delivering data at scale.
  • Big Data's Popularity and Challenges: Became a buzzword, leading to misuse for small data problems and significant administrative overhead for maintaining big data tools.
  • Simplification and Accessibility: Efforts to abstract, simplify, and make big data more accessible reduced the need for extensive administrative tasks, leading to the integration of big data engineering into general data engineering practices.

2000年代および2010年代:ビッグデータエンジニアリング

  • Hadoopエコシステム: Hadoopエコシステム内のオープンソースビッグデータツールが成熟し、世界中のビジネスが先進的なデータツールを利用できるようになりました。
  • リアルタイムデータへの移行: バッチ処理からイベントストリーミングへの大きなシフトがあり、ビッグ"リアルタイム"データの時代が紹介されました。
  • 新技術の出現: HadoopApache Pig、Hive、Dremel、HBase、Storm、Cassandra、Spark、Prestoなどのツールがデータエンジニアリングを革命し、従来のGUIベースのツールからコードファーストのエンジニアリングへと移行しました。
  • ビッグデータエンジニアの役割: ソフトウェア開発とインフラストラクチャに熟練し、大規模なデータクラスターの管理とスケールでのデータ提供に焦点を当てる必要がありました。
  • ビッグデータの人気と課題: バズワードとなり、小規模なデータ問題にビッグデータツールを誤用することが一般的になり、ビッグデータツールの維持管理に膨大な管理作業が必要になりました。
  • 簡素化とアクセシビリティ: ビッグデータをより簡単に、そして高い管理負担やコストなしで利用できるようにするための抽象化、簡素化の取り組みにより、広範な管理作業の必要性が減少し、ビッグデータエンジニアリングが一般的なデータエンジニアリングの実践に統合されました。

  • Evolving Role of Data Engineers: The data engineering role is rapidly evolving from focusing on monolithic frameworks like Hadoop, Spark, or Informatica to decentralized, modularized, and highly abstracted tools.

  • Growth in Data Tools: An astonishing proliferation of data tools has occurred, including the modern data stack, which simplifies analysts' work through a collection of open-source and third-party products.
  • Shift to Data Lifecycle Engineering: Data engineers are transitioning to data lifecycle engineers, focusing on higher-level tasks such as security, data management, DataOps, data architecture, orchestration, and overall lifecycle management.
  • Changing Attitudes Towards Data Management: There's a noticeable shift towards managing and governing data, with an emphasis on privacy, compliance (e.g., CCPA, GDPR), and improving data quality, rather than simply handling large volumes of data.
  • Return to "Enterprisey" Focus: With many challenges of previous data systems resolved, there's a renewed focus on data management, quality, and governance, emphasizing decentralization and agility over traditional command-and-control approaches.
  • Golden Age of Data Lifecycle Management: This era is considered a golden age for data lifecycle management, with better tools and techniques available for data engineers than ever before.

Unordered List in English

  • Data engineering role evolving from monolithic frameworks to decentralized, modular, and abstract tools.
  • Significant proliferation of data tools, including modern data stacks for easier analysis.
  • Transition of data engineers to lifecycle engineers focusing on higher-level tasks.
  • Shift in focus towards data management, governance, privacy, and quality improvement.
  • Renewed emphasis on "enterprisey" data management with a focus on decentralization and agility.
  • Considered a golden age for data lifecycle management with advanced tools and techniques.

Japanese Translation

  • データエンジニアリングの役割は、Hadoop、Spark、Informaticaのようなモノリシックフレームワークから、分散型、モジュール式、抽象化されたツールへと急速に進化しています。
  • データツールの顕著な増加があり、アナリストの作業を簡素化するオープンソースおよびサードパーティ製品のコレクションである現代のデータスタックを含みます。
  • データエンジニアは、セキュリティ、データ管理、DataOps、データアーキテクチャオーケストレーション、および全体的なライフサイクル管理など、より高レベルのタスクに焦点を当てるデータライフサイクルエンジニアへと移行しています。
  • データ管理、ガバナンス、プライバシー、品質改善に重点を置く方向への明確なシフトがあります。
  • 多くのデータシステムの課題が解決された今、データ管理、品質、ガバナンスに再び焦点を当て、従来のコマンドアンドコントロールアプローチに代わる分散化とアジリティに重点を置いています。
  • これはデータライフサイクル管理の黄金時代と見なされ、データエンジニアにとってこれまでにない優れたツールと技術が利用可能です。

Data Engineering and Data Science

  • Distinct Disciplines: Data engineering and data science are separate but complementary fields. Data engineering provides the necessary input for data science activities.
  • Position in Workflow: Data engineering is upstream, preparing and supplying data for data scientists who then apply analysis and machine learning downstream.
  • Data Science Hierarchy of Needs: Introduced by Monica Rogati in 2017, it emphasizes the foundational importance of data collection, movement/storage, and processing before advancing to analytics and machine learning.
  • Reality of Data Science Work: Data scientists spend an estimated 70% to 80% of their time on data preparation tasks, with only a small portion dedicated to actual analysis and machine learning.
  • Need for Solid Data Foundation: Before focusing on AI and ML, a robust data foundation is crucial, which is often built by data engineers.
  • Role of Data Engineers: They ensure the reliability and availability of data, enabling data scientists to focus more on analytics, experimentation, and ML.
  • Importance and Visibility: Data engineering is equally important as data science, playing a critical role in the success of data science in production environments.

データエンジニアリングとデータサイエンス

  • 異なる分野: データエンジニアリングとデータサイエンスは別々だが、相補的な分野です。データエンジニアリングはデータサイエンスの活動に必要な入力を提供します。
  • ワークフロー内の位置: データエンジニアリングは上流に位置し、データサイエンティストが下流で分析や機械学習を適用するためのデータを準備して提供します。
  • データサイエンスの階層構造の必要性: 2017年にモニカ・ロガティによって紹介され、分析と機械学習に進む前にデータ収集、移動/ストレージ、および処理の基礎的な重要性を強調しています。
  • データサイエンス作業の現実: データサイエンティストは、データ準備タスクに推定で70%から80%の時間を費やし、実際の分析と機械学習にはごくわずかな時間しか割かれません。
  • 堅固なデータ基盤の必要性: AIとMLに焦点を当てる前に、しっかりとしたデータ基盤が重要であり、これはしばしばデータエンジニアによって構築されます。
  • データエンジニアの役割: データの信頼性と可用性を確保し、データサイエンティストが分析、実験、およびMLにより多くの時間を集中できるようにします。
  • 重要性と可視性: データエンジニアリングはデータサイエンスと同じくらい重要であり、本番環境でのデータサイエンスの成功において重要な役割を果たします。

Data Engineering Skills and Activities

  • Core Skill Set: Involves security, data management, DataOps, data architecture, and software engineering, covering the "undercurrents" of data engineering.
  • Tool Evaluation and Integration: Understanding how to evaluate data tools and integrate them across the data engineering lifecycle.
  • Data Flow Knowledge: Knowing how data is produced in source systems and how it's consumed and valued by analysts and data scientists after processing and curating.
  • Optimization Responsibilities: Balancing cost, agility, scalability, simplicity, reuse, and interoperability while managing complex systems.
  • Evolution of Tools: Transition from using a few powerful technologies to modern, less complicated tools that abstract and simplify workflows.
  • Focus Shift: Now emphasizing the use of simple, cost-effective, best-of-breed services and creating agile data architectures that adapt to new trends.
  • Non-Responsibilities: Data engineers typically do not build ML models, create reports/dashboards, perform data analysis, build KPIs, or develop software applications but should understand these areas.

データエンジニアリングのスキルと活動

  • コアスキルセット: セキュリティ、データ管理、DataOps、データアーキテクチャ、ソフトウェアエンジニアリングを含み、データエンジニアリングの「基本概念」をカバーします。
  • ツールの評価と統合: データツールを評価し、それらをデータエンジニアリングのライフサイクル全体で統合する方法を理解します。
  • データフローの知識: ソースシステムでデータがどのように生成され、処理およびキュレーション後にアナリストやデータサイエンティストによってどのように消費され、価値を生み出されるかを知ること。
  • 最適化の責任: 複雑なシステムを管理しながら、コスト、俊敏性、スケーラビリティ、シンプルさ、再利用、相互運用性のバランスを取ります。
  • ツールの進化: 数少ない強力な技術の使用から、ワークフローを抽象化し簡素化する現代のより単純なツールへの移行。
  • 焦点のシフト: シンプルでコスト効率の良い、最良のサービスの利用と、新しいトレンドに適応するアジャイルなデータアーキテクチャの作成に注力。
  • 非責任範囲: データエンジニアは通常、MLモデルを直接構築したり、レポートやダッシュボードを作成したり、データ分析を行ったり、KPIを構築したり、ソフトウェアアプリケーションを開発したりしませんが、これらの領域を理解するべきです。

English Summary

  • Data Maturity Concept: Data maturity refers to the progression of an organization towards higher data utilization, capabilities, and integration. It's not determined by the company's age or revenue but by how data is used as a competitive advantage.
  • Importance for Data Engineers: The level of data maturity within a company significantly affects a data engineer's responsibilities and career progression.
  • Simplified Data Maturity Model: A proposed model has three stages: starting with data, scaling with data, and leading with data. These stages outline the evolution of data usage within a company and the role of a data engineer at each stage.

Unordered List in English

  • Data maturity is the advancement towards better data utilization and integration in an organization.
  • It impacts a data engineer's job responsibilities and career growth.
  • The simplified data maturity model includes three stages: starting with data, scaling with data, and leading with data.

Japanese Translation

  • データ成熟度は、組織がより高いデータ利用、能力、および統合に向かって進むことを指します。
  • これはデータエンジニアの職務責任とキャリアの進歩に大きな影響を与えます。
  • 簡素化されたデータ成熟度モデルには、データを使い始める、データでスケールする、データでリードするの3つの段階が含まれます。

Stage 1: Starting with Data

  • Early Data Maturity: Companies at this stage often have undefined goals, with data architecture and infrastructure still in planning.
  • Small Data Team: Typically consists of a few individuals, with data engineers acting as generalists and possibly fulfilling roles in data science or software engineering.
  • Initial Goals: Aim to move quickly, gain traction, and deliver value, avoiding premature deep dives into machine learning due to the lack of a solid data foundation.
  • Key Activities for Data Engineers:
    • Secure buy-in from key stakeholders and executive management.
    • Define the data architecture, often solo, to support business goals.
    • Audit and identify data that supports key initiatives within the designed architecture.
    • Establish a solid data foundation for future analytics and model generation.

Tips for Stage 1:

  • Seek Quick Wins: To demonstrate the value of data initiatives, be mindful of the technical debt these may incur.
  • Engage with Stakeholders: Avoid working in silos by communicating with people outside the data team to gain insights and feedback.
  • Simplify: Use off-the-shelf solutions to avoid unnecessary technical complexity.
  • Custom Solutions: Develop bespoke systems only when it provides a competitive edge.

ステージ1: データを始める

  • 初期のデータ成熟度: この段階の企業はしばしば未定義の目標を持ち、データアーキテクチャとインフラは計画中です。
  • 小規模なデータチーム: 数人からなることが多く、データエンジニアは一般的にジェネラリストとして活動し、データサイエンスやソフトウェアエンジニアリングの役割も担うことがあります。
  • 初期目標: 素早く動き、足場を固め、価値を提供することを目指します。確固たるデータ基盤がない状態での機械学習への早急な深入りは避けるべきです。
  • データエンジニアの主な活動:
    • 主要なステークホルダーや経営陣からの支持を確保する。
    • ビジネス目標を支援するデータアーキテクチャを定義する(通常は単独で行う)。
    • 設計したアーキテクチャ内で主要なイニシアティブをサポートするデータを監査・特定する。
    • 将来の分析とモデル生成のための確かなデータ基盤を構築する。

ステージ1のヒント:

  • クイックウィンを求める: データイニシアティブの価値を示すためには、これによって発生する可能性のある技術的負債を念頭に置く。
  • ステークホルダーとの対話: データチーム外の人々とのコミュニケーションを通じて洞察とフィードバックを得ることで、孤立した作業を避ける。
  • 簡素化する: 不必要な技術的複雑さを避けるため、可能な限り既製のターンキーソリューションを使用する。
  • カスタムソリューション: 競争上の優位性を提供する場合のみ、特注のシステムやコードを開発する。

English Summary

  • Stage 2: Scaling with Data: Companies at this stage have evolved from ad hoc data requests to formal data practices, focusing on creating scalable and robust data architectures. The role of data engineers shifts from generalists to specialists, with a focus on specific areas of the data engineering lifecycle. Key goals include establishing formal data practices, creating scalable architectures, adopting DevOps and DataOps, building ML-supportive systems, and focusing on customization for competitive advantage. Challenges include resisting the temptation to adopt new technologies for the sake of trendiness, focusing on solutions that simplify deployment and management, and transitioning from a technologist mindset to pragmatic leadership.

Unordered List in English

  • Transition from ad hoc data requests to formal data practices.
  • Focus on creating scalable and robust data architectures.
  • Shift from generalist to specialist roles in data engineering.
  • Adopt DevOps and DataOps practices.
  • Build systems that support machine learning.
  • Customize only for competitive advantage.
  • Challenges include avoiding trendy technologies without clear value, focusing on simple-to-manage solutions, and shifting towards pragmatic leadership.

Japanese Translation

  • アドホックなデータ要求から正式なデータプラクティスへの移行。
  • スケーラブルで堅牢なデータアーキテクチャの作成に焦点を当てる。
  • データエンジニアリングの役割を、一般的なものから特定の分野に特化した専門家へとシフト。
  • DevOpsおよびDataOpsプラクティスを採用。
  • 機械学習をサポートするシステムの構築。
  • 競争上の利点がある場合のみカスタマイズに焦点を当てる。
  • 課題には、トレンドのためだけに新技術を採用する誘惑を避ける、デプロイと管理を簡素化するソリューションに焦点を当てる、技術者としてではなく実用的なリーダーシップへのシフトが含まれる。

Stage 3: Leading with Data

  • Data-Driven Company: The organization operates on automated pipelines and systems for self-service analytics and ML, introduced by data engineers.
  • Seamless Integration: New data sources are easily integrated, ensuring tangible value from data utilization.
  • Specialization of Roles: Data engineering roles become more specialized, focusing on advanced aspects of data management and operations.
  • Key Activities for Data Engineers:
    • Develop automation for easy integration and use of new data sources.
    • Build custom tools and systems that use data to create a competitive edge.
    • Concentrate on enterprise aspects of data, including governance, quality, and DataOps.
    • Implement tools for broad data access within the company, such as data catalogs, lineage tools, and metadata management systems.
    • Foster collaboration with software engineers, ML engineers, analysts, and other stakeholders.
    • Establish a community for open collaboration across roles and positions.

Challenges at Stage 3:

  • Avoiding Complacency: Continuous focus on maintenance and improvement is vital to prevent regression.
  • Managing Technology Distractions: The risk of engaging in expensive, non-value-adding technology projects is higher. Focus on technology that delivers a competitive advantage.

ステージ3: データをリードする

  • データ駆動型企業: 自動化されたパイプラインとシステムを通じて、企業内の人々がセルフサービス型の分析とMLを行えるようになります。
  • シームレスな統合: 新しいデータソースの導入が容易で、データ利用からの具体的な価値を確保します。
  • 役割の専門化: データエンジニアリングの役割はより深く専門化し、データ管理と運用の高度な側面に焦点を当てます。
  • データエンジニアの主な活動:
    • 新しいデータソースの簡単な統合と使用のための自動化を開発する。
    • データを活用して競争上の優位性を生み出すカスタムツールとシステムを構築する。
    • データガバナンス、品質、DataOpsを含むデータのエンタープライズ側面に集中する。
    • データカタログ、データ系譜ツール、メタデータ管理システムなど、企業内での広範なデータアクセスを可能にするツールを実装する。
    • ソフトウェアエンジニア、MLエンジニア、アナリストなどのステークホルダーと効率的に協力する。
    • 役割や地位に関係なく、人々が協力し、オープンに話し合えるコミュニティと環境を作る。

ステージ3の課題:

  • 満足感の回避: 維持と改善に継続的に焦点を当てることが、後退を防ぐために重要です。
  • 技術的な誘惑の管理: 高価でビジネスに価値をもたらさないプロジェクトに関わるリスクが高まります。競争上の優位性をもたらす技術に焦点を当てることが重要です。

Business Responsibilities

  • Effective Communication: Essential for establishing rapport and trust with both technical and nontechnical people across the organization. Paying attention to organizational dynamics and silos is critical for success.
  • Scoping and Requirements Gathering: Understand what needs to be built and ensure alignment with stakeholders. Assess how data and technology decisions impact the business.
  • Cultural Foundations of Agile, DevOps, and DataOps: Recognize these as fundamentally cultural practices requiring organizational buy-in, not just technological solutions.
  • Cost Control: Success involves keeping costs low while delivering significant value. Optimize for time to value, total cost of ownership, and opportunity cost, and monitor costs to prevent surprises.
  • Continuous Learning: Stay updated with rapid changes in the data field, discern relevant developments, and continuously enhance both new and fundamental knowledge.

ビジネス責任

  • 効果的なコミュニケーション: 組織内の技術的および非技術的な人々との信頼関係と良好な関係を確立することが不可欠です。組織のダイナミクスとサイロに注意を払うことが成功には重要です。
  • スコープと要件収集: 何を構築する必要があるかを理解し、ステークホルダーとの合意を確保すること。データと技術の決定がビジネスにどのような影響を与えるかを評価すること。
  • アジャイル、DevOps、DataOpsの文化的基盤: これらを技術的な解決策ではなく、組織全体の賛同が必要な根本的に文化的な実践として認識すること。
  • コスト管理: コストを低く抑えながら大きな価値を提供することが成功につながります。価値到達時間、総所有コスト、機会コストを最適化し、予期せぬコストを避けるためにコストを監視すること。
  • 継続的な学習: データ分野の急速な変化に対応し、関連する開発を識別し、新しい知識と基本的な知識を継続的に強化すること。フィールドの最新情報を得て、どのように学習するかを学ぶこと。

成功するデータエンジニアは常に大局を理解し、ビジネスに対して大きな価値をもたらす方法を考えます。コミュニケーションは、技術的および非技術的な人々の両方にとって重要です。データチームの成功は、他のステークホルダーとのコミュニケーションに基づくことが多く、成功または失敗は技術の問題では稀です。組織をナビゲートする方法を知り、要件を収集し、コストを管理し、継続的に学習することは、技術能力のみに依存するデータエンジニアとは一線を画すでしょう。

Technical Responsibilities

  • Optimize Architectures: Understand how to build architectures that balance performance and cost, using both prepackaged and custom components.
  • Data Engineering Lifecycle Stages: Familiarity with generation, storage, ingestion, transformation, and serving stages.
  • Lifecycle Undercurrents: Knowledge of security, data management, DataOps, data architecture, orchestration, and software engineering.
  • Coding Skills: Production-grade software engineering skills are essential for data engineers, who should be adept at coding in SQL, Python, a JVM language (Java or Scala), and bash.
  • Managed Services: Leverage fully managed services and SaaS offerings to reduce low-level programming efforts, focusing instead on high-level abstractions and pipeline coding within orchestration frameworks.
  • Software Engineering Best Practices: Maintain a competitive edge by understanding deep architectural codebase details, particularly for specific technical needs.

Essential Programming Languages:

  • SQL: Fundamental for data manipulation and querying.
  • Python: Serves as a bridge between data engineering and data science, underpinning popular data tools and serving as a flexible API language.
  • JVM Languages (Java/Scala): Important for working with Apache open source projects and accessing lower-level features.
  • bash: Crucial for scripting, performing OS operations, and improving workflow efficiency through command-line interface expertise.

テクニカル責任

  • アーキテクチャの最適化: パフォーマンスとコストのバランスを取りながら、パッケージ化されたコンポーネントやカスタムコンポーネントを使用してアーキテクチャを構築する方法を理解する。
  • データエンジニアリングライフサイクルの段階: 生成、保存、取り込み、変換、提供の各段階に精通していること。
  • ライフサイクルの基本概念: セキュリティ、データ管理、DataOps、データアーキテクチャオーケストレーション、ソフトウェアエンジニアリングの知識。
  • コーディングスキル: データエンジニアには、SQLPythonJVM言語(JavaまたはScala)、bashでのコーディングが得意であることが不可欠。
  • マネージドサービス: 低レベルのプログラミング労力を削減するために、完全にマネージドされたサービスとSaaSオファリングを活用し、代わりにオーケストレーションフレームワーク内での高レベルの抽象化とパイプラインコーディングに焦点を当てる。
  • ソフトウェアエンジニアリングのベストプラクティス: 特定の技術的ニーズに対して、コードベースの深いアーキテクチャの詳細を理解することで競争上の優位性を維持する。

必須プログラミング言語:

The Unreasonable Effectiveness of SQL

  • Revival of SQL: Despite being considered outdated with the advent of MapReduce and big data, SQL has regained its importance in data engineering, thanks to tools like Spark SQL, Google BigQuery, Snowflake, Hive, and support in streaming frameworks like Apache Flink, Beam, and Kafka.
  • SQL Proficiency: Competent data engineers should have high proficiency in SQL to solve complex analytics and data transformation problems efficiently.
  • SQL and Productivity: Embrace tools that offer simplicity and enhance productivity. Expertise in SQL, including modern semantics for JSON parsing and nested data, is crucial.
  • Beyond SQL: Recognize when SQL is not the best tool and be able to choose and use suitable alternatives, like native Spark for specific tasks.
  • Secondary Languages: Develop skills in secondary programming languages (R, JavaScript, Go, Rust, C/C++, C#, Julia) as necessary for company-specific tools or domains.
  • Staying Current: Focus on fundamentals while paying attention to new developments. Understand how new technologies fit into the data engineering lifecycle.

SQLの非合理的な有効性

  • SQLの復活: MapReduceビッグデータの登場で時代遅れと見なされていたSQLは、Spark SQLGoogle BigQuery、Snowflake、Hiveのようなツールや、Apache Flink、Beam、Kafkaなどのストリーミングフレームワークのサポートにより、データエンジニアリングでの重要性を取り戻しました。
  • SQLの習熟度: 複雑な分析とデータ変換問題を効率的に解決するため、有能なデータエンジニアはSQLに高い習熟度を持つべきです。
  • SQLと生産性: 単純さと生産性を高めるツールを積極的に活用すること。JSONの解析やネストされたデータのための現代的なSQLセマンティクスに精通することが重要です。
  • SQLを超えて: SQLが最適なツールでない場合を認識し、適切な代替手段を選択し使用できるようになることが重要です。特定のタスクにはネイティブSparkのような選択肢が適している場合があります。
  • 補助言語: 会社固有のツールやドメインに必要な場合、R、JavaScript、Go、Rust、C/C++C#、Juliaなどの補助プログラミング言語のスキルを開発すること。
  • 最新の動向に追いつく: 基本に焦点を当てつつ、新しい開発に注意を払うこと。新しい技術がデータエンジニアリングライフサイクルにどのように役立つかを理解すること。

The Continuum of Data Engineering Roles, from A to B

  • Variety in Roles and Skills: Data engineers possess diverse skill sets and engage in different types of work, influenced by a company's data maturity.
  • Type A Data Engineers:
    • Abstraction Focus: Aim to keep data architecture simple and abstract, leveraging off-the-shelf products, managed services, and tools to manage the data engineering lifecycle.
    • Industry-Wide Application: Found across various industries and at all levels of data maturity.
  • Type B Data Engineers:
    • Build Focus: Specialize in creating scalable data tools and systems that enhance a company’s core competencies and competitive edge.
    • Associated with Higher Data Maturity: More common in companies at stage 2 and 3 of data maturity or with unique and critical initial data use cases requiring custom tools.

データエンジニアリングの役割の連続体、AからBへ

  • 役割とスキルの多様性: データエンジニアは様々なスキルセットを持ち、企業のデータ成熟度に影響される異なるタイプの仕事に従事します。
  • タイプAデータエンジニア:
    • 抽象化に焦点: データアーキテクチャを可能な限りシンプルかつ抽象的に保ち、市販の製品、マネージドサービス、ツールを使用してデータエンジニアリングライフサイクルを管理することを目指す。
    • 業界全体での応用: 様々な業界およびデータ成熟度の全レベルで見られる。
  • タイプBデータエンジニア:
    • 構築に焦点: 企業の核となる能力と競争上の優位性を強化するスケーラブルなデータツールとシステムを構築することに特化。
    • 高いデータ成熟度と関連: データ成熟度のステージ2および3(スケーリングおよびデータリーディング)の企業や、カスタムデータツールが必要な独特でミッションクリティカルな初期データユースケースでより一般的。

タイプAとタイプBのデータエンジニアは同じ会社で働くこともあり、同一人物であることもあります!一般的には、基盤を築くために最初にタイプAのデータエンジニアが雇用され、企業内のニーズが生じるにつれてタイプBのデータエンジニアのスキルセットが学ばれたり雇われたりします。

Internal-Facing vs. External-Facing Data Engineers

  • Broad Interactions: Data engineers work with both technical and non-technical individuals, handling diverse tasks that vary in focus (internal and external).
  • External-Facing Data Engineers:
    • User-Oriented: Align with users of external applications (social media, IoT devices, e-commerce).
    • System Development: Architect, build, and manage systems for collecting, storing, and processing data.
    • Feedback Loop: Systems have a feedback loop from the application to the data pipeline and back.
  • Challenges for External-Facing:
    • Concurrency and Limits: Manage higher concurrency loads and set query limits to minimize infrastructure impact.
    • Security: Address complex security issues, especially with multitenant data.
  • Internal-Facing Data Engineers:
    • Business-Oriented: Focus on the business's internal needs and stakeholders.
    • Data Management: Create and maintain data pipelines and warehouses for BI dashboards, reports, business processes, data science, and ML models.
  • Blended Responsibilities: Data engineers often handle a mix of internal and external tasks, with internal data management serving as a foundation for external applications.

組織内でのデータエンジニア: 内部向け vs 外部向け

  • 幅広い対話: データエンジニアは技術的、非技術的な人々と協力し、内部および外部に焦点を当てた多様なタスクを処理します。
  • 外部向けデータエンジニア:
  • 外部向けの課題:
    • 並行処理と制限: 高い並行負荷を管理し、インフラへの影響を最小限に抑えるためにクエリの制限を設定する。
    • セキュリティ: 特に多テナントデータの場合、複雑で敏感なセキュリティ問題に対処する。
  • 内部向けデータエンジニア:
    • ビジネス指向: 企業の内部ニーズとステークホルダーに焦点を当てる。
    • データ管理: BIダッシュボード、レポート、ビジネスプロセス、データサイエンス、MLモデルのためのデータパイプラインとデータウェアハウスを作成・維持する。
  • 混合した責任: データエンジニアはしばしば内部および外部のタスクの混合を扱い、内部データ管理は外部アプリケーションの基盤として機能します。

Data Engineers and Other Technical Roles

  • Broad Collaboration: Data engineers interact with a wide range of technical and non-technical roles within an organization, serving as a crucial nexus between data producers and consumers.

  • Key Technical Stakeholders:

    • Data Architects: Design organizational data management blueprints, bridging technical and non-technical sides.
    • Software Engineers: Generate internal data through software and systems development.
    • DevOps Engineers and SREs: Produce operational monitoring data, often upstream but can also be downstream consumers.
    • Data Scientists: Build predictive models and rely on data engineers for data preparation and automation.
    • Data Analysts: Focus on understanding business performance, running queries, and relying on data engineers for pipeline development.
    • ML Engineers and AI Researchers: Develop and maintain ML infrastructure and advanced techniques, overlapping with data engineering and science roles.

データエンジニアと他の技術的役割

  • 幅広い協力: データエンジニアは、組織内の多様な技術的、非技術的な役割と相互作用し、データ生産者と消費者の間の重要な連結点として機能します。

  • 主要な技術的ステークホルダー:

    • データアーキテクト: 組織のデータ管理の設計図を作成し、技術的および非技術的な側面を繋ぐ。
    • ソフトウェアエンジニア: ソフトウェアとシステムの開発を通じて内部データを生成。
    • DevOpsエンジニアおよびSRE: 運用監視データを生産し、主に上流に位置するが、下流の消費者でもあり得る。
    • データサイエンティスト: 予測モデルを構築し、データ準備と自動化についてデータエンジニアに依存。
    • データアナリスト: ビジネスのパフォーマンスを理解し、クエリを実行し、データパイプラインの開発にデータエンジニアを頼る。
    • MLエンジニアおよびAI研究者: MLインフラと先進技術の開発と維持を行い、データエンジニアリングおよびサイエンスの役割と重なる。

Data Engineers and Business Leadership

  • Organizational Connectors: Data engineers act as connectors within organizations, often operating in a non-technical capacity and participating in strategic planning.

  • Data in the C-suite:

    • CEOs: Focus on data and analytics initiatives, relying on data engineers to provide insights into possibilities with data.
    • CIOs: Direct IT organization and collaborate with data engineering on data culture and major initiatives.
    • CTOs: Lead technological strategy for external-facing applications, key data sources for data engineers.
    • CDOs: Manage company’s data assets and strategy, overseeing data products, privacy, and occasionally data engineering.
    • CAOs: Focus on analytics and decision-making, potentially overseeing data science and ML.
    • Chief Algorithms Officer (CAO-2): Highly technical role focused on data science and ML, setting R&D agendas.
  • Data Engineers and Project Managers:

    • Work on large initiatives like cloud migrations and new data architectures.
    • Collaborate with project managers to plan sprints and manage project deliverables.
  • Data Engineers and Product Managers:

    • Interact with product managers in developing data products.
    • Balance technology team activities with customer and business needs.

ビジネスリーダーシップとデータエンジニア

  • 組織のコネクター: データエンジニアは組織内のコネクターとして機能し、戦略計画に参加し、非技術的な役割で活動することがよくあります。

  • Cスイート内のデータ:

    • CEO: データと分析のイニシアチブに焦点を当て、データエンジニアにデータの可能性に関する洞察を提供するよう依頼。
    • CIO: IT組織を指揮し、データエンジニアリングと共にデータカルチャーと主要イニシアチブに協力。
    • CTO: 外向きのアプリケーションの技術戦略を主導し、データエンジニアにとって重要なデータソースを提供。
    • CDO: 企業のデータ資産と戦略を管理し、データプロダクト、プライバシーを監督し、場合によってはデータエンジニアリングを担当。
    • CAO: 分析と意思決定に焦点を当て、データサイエンスとMLを監督する可能性がある。
    • チーフアルゴリズムオフィサー (CAO-2): データサイエンスとMLに特化した高度に技術的な役割で、R&Dアジェンダを設定。
  • データエンジニアとプロジェクトマネージャー:

    • クラウド移行や新しいデータアーキテクチャなどの大規模なイニシアチブに取り組む。
    • プロジェクトマネージャーと協力してスプリントを計画し、プロジェクトの成果物を管理。
  • データエンジニアとプロダクトマネージャー:

    • データプロダクトの開発においてプロダクトマネージャーと相互作用する。
    • 技術チームの活動と顧客およびビジネスのニーズとのバランスを取る。

Conclusion

  • Defining Data Engineering: Explained what data engineering entails and the roles of data engineers.
  • Data Maturity in Companies: Described the concept of data maturity within organizations.
  • Type A and Type B Data Engineers: Introduced the distinction between two types of data engineers.
  • Collaboration: Outlined whom data engineers collaborate with across various roles.

結論

  • データエンジニアリングの定義: データエンジニアリングが何を含むのか、データエンジニアの役割について説明しました。
  • 企業のデータ成熟度: 組織内のデータ成熟度の概念について述べました。
  • タイプAとタイプBのデータエンジニア: 2種類のデータエンジニアの区別を紹介しました。
  • 協力関係: データエンジニアがさまざまな役割とどのように協力するかについて概説しました。

この第1章は、ソフトウェア開発者、データサイエンティスト、MLエンジニア、ビジネスステークホルダー、起業家、ベンチャーキャピタリストなど、あなたがどのような立場であっても、データエンジニアリングの風景についての簡潔な概要を提供しました。もちろん、後続の章で明らかにするべきことはまだたくさんあります。第2章ではデータエンジニアリングのライフサイクルについて、第3章ではアーキテクチャについて扱います。続く章では、ライフサイクルの各部分に対する技術的決定の詳細に入ります。データ分野は常に変動しており、可能な限り各章は変わらない視点――絶え間ない変化の中で多年にわたって有効である視点に焦点を当てます。