流沙河鎮

情報技術系のこと書きます。

Fundamentals of data engineering 輪読会「Chapter 11.The Future of Data Engineering」まとめ

datatech-jpで開催中のFundamentals of Data Engineering (English Edition)読書会に向けた、「Chapter 11.The Future of Data Engineering」のまとめ。
以下は基本的には本文の要約であり、★マークがついている部分は私のコメントや付加情報である。

全体のあとがき/エピローグ的なChapter
データエンジニアリングの未来への洞察が語られる(同書が刊行されたのは2022年6月22日)

Introduction

  • 本書は、データエンジニアリングの変化が速いため、人々の知識が追いついていない事への課題認識から生まれた(既存のデータエンジニア、データエンジニアリングのキャリアに興味がある人、技術管理者、データエンジニアリングが自社にどのようにフィットするかをよりよく理解したい経営者)
  • データ・エンジニアリングは日々変化している
  • 私たちは、テクノロジーが疲れるほどのスピードで変化し続けていることを痛感している
    • 数年前には、データ・エンジニアリングという分野や職種すら存在しなかった
    • 本書の構成について考え始めたとき、筆者は友人たちから「これほど急速に変化している分野についてよくも書けるものだ!」という反発を受けた
    • そこで本書では、今後数年間役に立つと思われる大きなアイデアに焦点を当て、データエンジニアリングのライフサイクルの連続性とその底流を紹介した
      • 業務の順序やベストプラクティスやテクノロジーの名称は変わるかもしれないが、ライフサイクルの主要な段階は今後何年も変わらないはず
      • 「データエンジニアリングの基礎」を読んだ今、あなたはデータエンジニアリングの基礎、ライフサイクル、潮流、テクノロジー、ベストプラクティスについてすべて学んだことになる
      • ノイズを選別し、変わりそうもないシグナルを見つけ出すことは、本書の構成と執筆において最も困難なことのひとつであった
  • 誰も未来を予知することはできないが、筆者は過去、現在、そして現在のトレンドについて優れた視点を持っている
  • この最終章では、現在進行中の開発に関する考察や荒唐無稽な将来の推測を含め、将来についての筆者の考えを紹介する

データエンジニアリングのライフサイクルはなくならないだろう

  • データサイエンスが注目されている一方で、データエンジニアリングは急速に台頭し、成熟しつつある
    • テクノロジー業界で最も急成長しているキャリアの一つであり、その勢いは衰える気配がない
    • 企業がAI/MLのような「セクシー」なものに移行する前に、まずデータ基盤を構築する必要があることに気づくにつれ、データエンジニアリングの人気と重要性は高まり続けるだろう
  • 進歩の中心は、データエンジニアリングのライフサイクルにある
    • ますますシンプルになるツールやプラクティスが、データエンジニアの消滅につながるのではないかという指摘もある
      • この考えは浅はかで、怠惰で、近視眼的
    • 組織が新たな方法でデータを活用するにつれ、新しいニーズに対応するための新たな基盤、システム、ワークフローが必要になる
      • データエンジニアは、これらのシステムの設計、アーキテクチャー、構築、保守の中心に位置する
    • ツールが使いやすくなれば、データエンジニアはバリューチェーンの上位に移動し、より高度な業務に専念するようになるだろう

複雑性は低下し使いやすいデータツールが台頭するだろう

  • シンプルで使いやすいツールは、データエンジニアリングへの参入障壁を下げ続けている
    • データエンジニアの不足を考えると、これは素晴らしいこと
    • 簡素化の傾向は今後も続く
  • データエンジニアリングは特定の技術やデータサイズに依存するものではないし、大企業だけのものでもない
    • 2000年代、「ビッグデータ」テクノロジーを導入するには、大規模なチームと深い資金が必要だった
    • SaaS型マネージド・サービスの台頭により、様々な「ビッグデータ」システムの根幹を理解する複雑さはほぼ取り除かれた
      • データエンジニアリングは、今やすべての企業ができることになった
  • ビッグデータ技術は、SaaS型マネージド・サービスの並外れた成功の犠牲者(Big data is a victim of its extraordinary success.)
    • 例えば、GFSとMapReduceの子孫であるGoogle BigQueryは、ペタバイト級のデータを参照できる
      • かつてはグーグルの社内専用だったこの非常に強力なテクノロジーは、今ではGCPアカウントさえあれば誰でも利用できる
      • ユーザーは、大規模なインフラを構築する必要がなく、データを保存したりクエリしたりする分だけ料金を支払えばよい
      • SnowflakeAmazon EMR、その他多くのハイパースケーラブルクラウドデータソリューションがこの分野で競合し、同様の機能を提供している
  • クラウドは、OSSの利用に大きな変化をもたらしている
    • 2010年代初頭でさえ、OSSを使用するには、コードをダウンロードして自分でデプロイするのが一般的だった
    • 現在では、多くのOSSデータツールが、プロプライエタリなサービスと直接競合するマネージドクラウドサービスとして提供されている
      • Linuxは、すべての主要なクラウドのサーバーインスタンスにあらかじめ設定され、インストールされている
      • AWS LambdaやGoogle Cloud Functionsのようなサーバーレス・プラットフォームでは、PythonJava、Goのような言語を使用して、イベント駆動型のアプリケーションを数分でデプロイできる
      • Apache Airflowを使用したいエンジニアは、GoogleのCloud ComposerまたはAWSのマネージドAirflowサービスを採用できる
      • マネージドKubernetesを使えば、拡張性の高いマイクロサービス・アーキテクチャを構築できる
      • ★ただし、マネージドサービスの土台となっている技術への理解は依然として重要だと思う。Airflowにしても、Sparkにしても、仕組みを理解していなければ正しく開発、運用するのは難しい。OSSを土台としないSnowflakeなどの製品でも同じ
    • 多くの場合、マネージドなOSSは、プロプライエタリ・サービスの競合と同じくらい使いやすい
      • 高度に専門化されたニーズを持つ企業は、マネージドなOSSを導入し、基礎となるコードをカスタマイズする必要があれば、後でセルフマネージドなOSSに移行することもできる
      • ★見方を変えると、必要になった時に適宜カスタイマイズができるケイパビリティがあることが差別化のポイントになるのではという気もする。マネージド / セルフマネージドのゼロイチではなく、カスタムモジュールを導入出来る製品も多い
      • ★どこまでデータ基盤/技術を抽象化して扱うかは深遠な議論だと思う。本質的なビジネスに関わる領域に集中する観点でクラウドプロバイダのマネージドなソリューションを使い倒すのは良いことではある。一方で、Uber,Twitter,RiotGamesやJPMC, Nasdaq,Netflix,Meta等々の取り組みを見ていると、既存のソリューションの限界を自社オリジナルの技術で突破することで高度な問題を解決し、更にはそれらの技術がOSSとして業界の次のスタンダードになっていたりもする。鍵は背景となるビジネスのスケールだろうか
  • もう一つの大きなトレンドとして、既製品のデータ・コネクタの人気が高まっている(執筆時点では、FivetranやAirbyteなどが人気)
    • データ・エンジニアは従来、外部データ・ソースに接続するためのパイプラインの構築と保守に多くの時間とリソースを費やしてきた
    • 新世代のマネージド・コネクタは、技術力のあるエンジニアにとっても、より差別化に繋がる他のプロジェクトのために時間と精神を温存できる価値がある
    • APIネクターアウトソーシングされるようになり、データエンジニアはビジネスに関わる問題に集中できる
  • データツールの分野で競争が激化し、データエンジニアの数が増加しているため、データツールの複雑さは減少し続ける一方で、さらに多くの機能と特徴が追加されていく
    • より多くの企業がデータに価値を見出す機会を見出す中、このような単純化はデータエンジニアリングの実践を成長させる

クラウドスケールのデータOSと相互運用性が進展するだろう

  • 原文は「The Cloud-Scale Data OS and Improved Interoperability」
  • クラウドネイティブなデータODという概念の進化の次のフロンティアは、より抽象度の高いレベルで起こるだろう
  • Benn Stancilによれば、The data OSとは、データソース、ツールの差分を吸収して、相違を解決するレイヤーを指す概念。パソコンや携帯電話のハードウェアがOSによって抽象化されていることになぞらえて「Data OS」と呼んでいる

★Bennは「Data OS」を実現し得る仕組みとしてdbtを挙げている

To extend the OS analogy, in this world, dbt is Android; the data is my phone’s hardware. dbt exposes the state of that hardware—schema information, the lineage of its tables, the latency of the data within them—to everything that uses it. Just as Android abstracts away the peculiarities of each device it runs on, dbt sands down the differences between BigQuery, Redshift, and others, providing a single language for interacting with all of them. Similar to how Android links apps together, dbt serves as a communications bus that, for example, pushes queries between a “production” environment in Census and a “development” environment in Mode. In the same way that mobile operating systems provide developers easy access to phones’ physical capabilities, dbt offers its own helper functions and syntactic sugar (e.g., what dbt enables with Jinja8) that shortcut and standardize common interactions with data.

Extend these ideas far enough, and entire apps could live inside dbt, doing everything from running on-the-fly tests against in incoming queries to finding and merging duplicative datasets across every tool and database in the stack. The data OSより

  • 身近なOSのたとえ
    • あらゆるデバイス(スマートフォン、ノートパソコン、アプリケーション・サーバー、スマート・サーモスタット等)は必要不可欠なサービスを提供し、タスクやプロセスをオーケストレーションするOSに依存している
      • MacであればWindowServer(グラフィカルなインターフェイスでウィンドウを提供する役割)やCoreAudio(低レベルのオーディオ機能を提供する役割)など
    • アプリケーションプロセスがサウンドやグラフィックスのハードウェアに直接アクセスすることはない
    • オペレーティング・システムのサービスにコマンドを送り、ウィンドウを描いたり、サウンドを再生したりする
    • これらのコマンドは、標準的なAPIに対して発行される。仕様書は、オペレーティングシステムのサービスとどのように通信するかをソフトウェア開発者に指示する
      • OSはこれらのサービスを提供するためにブート・プロセスを編成し、各サービス間の依存関係に基づいて正しい順序で各サービスを開始する
      • OSがサービスを監視して維持し、障害が発生した場合は正しい順序でサービスを再起動する
  • データエンジニアリングはデータ相互運用性の標準を中心にまとまっていくだろう
    • クラウド上のオブジェクト・ストレージは、様々なデータ・サービス間のバッチ・インターフェイス・レイヤーとして重要性を増す
    • 新世代のファイル・フォーマット(ParquetやAvroなど)は、CSVの相互運用性の悪さや生のJSONのパフォーマンスの低さを大幅に改善し、クラウド上でのデータ交換の目的ですでに採用されつつある
  • データAPIエコシステムのもう一つの重要な要素は、スキーマとデータ階層を記述するメタデータカタログ
    • メタデータは、アプリケーションやシステム間、クラウドやネットワーク間のデータ相互運用性において重要な役割を果たし、自動化と簡素化を促進する
    • 現在、この役割はレガシーなHive Metastoreによってほぼ満たされている
    • 私たちは、この役割を担う新規参入者が現れることを期待している
  • クラウド上のデータサービス群を管理する足場としてのデータ・オーケストレーション・プラットフォームも大幅に改善されるだろう
    • Apache Airflowは、最初の真にクラウド指向のデータ・オーケストレーション・プラットフォームとして登場し、大幅な機能強化の入り口に立っている
      • Airflowは、その巨大なマインドシェアを基盤に、機能を拡大していくだろう
      • DagsterやPrefectのような新規参入企業は、オーケストレーションアーキテクチャを一から再構築することで対抗するだろう
    • 次世代のオーケストレーションプラットフォームでは、データ統合(data integration)とデータ認識(data awareness)が強化される
      • オーケストレーション・プラットフォームはデータカタログやリネージと統合され、その過程でデータ認識(data awareness)が大幅に向上する
    • オーケストレーション・プラットフォームは、(Terraformに似た)IaC機能と(GitHub ActionsやJenkinsのような)コード・デプロイ機能を構築するだろう
      • エンジニアはパイプラインをコーディングし、それをオーケストレーション・プラットフォームに渡すことで、自動的にビルド、テスト、デプロイ、モニタリングができるようになる
      • エンジニアはインフラの仕様をパイプラインに直接書き込むことができるようになり、足りないインフラやサービス(Snowflakeデータベース、DatabricksクラスタAmazon Kinesisストリームなど)はパイプラインの初回実行時にデプロイされる
        • 例えば、ストリーミング・パイプラインや、ストリーミング・データの取り込みとクエリが可能なデータベースなど
    • ★2024/2現在、インフラレイヤも含めた包括的なデータ基盤のIaCはツール面でも実践面でも発展途上であるように思う
    • 過去において、ストリーミングDAGの構築は、継続的な運用負担が大きい非常に複雑なプロセスであった(第8章参照)
      • Apache Pulsarのようなツールは、複雑な変換を伴うストリーミングDAGを比較的シンプルなコードで展開できる未来への道を指し示している
      • 我々は、マネージド・ストリーム・プロセッサ(Amazon Kinesis Data AnalyticsやGoogle Cloud Dataflowなど)の出現をすでに目にしているが、これらのサービスを管理し、つなぎ合わせ、監視するための新世代のオーケストレーション・ツールが登場するだろう
  • データ・エンジニアにとって、これらの抽象化の強化は何を意味するか?
    • データエンジニアの役割はなくならないが、大きく進化する
      • より洗練されたモバイルOSやフレームワークがモバイルアプリ開発者を排除したわけではない。むしろ、モバイルアプリ開発者は、より高品質で洗練されたアプリケーションの構築に集中できるようになった
      • クラウドスケールのデータOSパラダイムが、様々なアプリケーションやシステム間の相互運用性と簡素性を高めるにつれて、データエンジニアリングも同様の発展を遂げると予想される

データエンジニアリングは「エンタープライズ的」になるだろう

  • データツールの簡素化とベストプラクティスの出現と文書化は、データエンジニアリングがより "エンタープライズ的 "になることを意味する
  • エンタープライズという言葉から、糊のきいた青いシャツとカーキパンツに身を包んだ顔の見えない委員会、果てしないお役所仕事、常にスケジュールが遅れ予算が膨れ上がるウォーターフォール管理型の開発プロジェクトといったカフカ的な悪夢を思い浮かべる人もいるだろう
  • イノベーションが死滅するような魂のない場所を想像する人もいるかもしれない
  • 私たちが話しているのはこのようなことではなく、大企業が行っているようなデータ管理、オペレーション、ガバナンスなどの「退屈だが重要なこと」に取り組みやすくなっているということだ
  • 私たちは今、「エンタープライズ向け」データ管理ツールの黄金時代を生きている
    • かつては巨大企業だけのものであったテクノロジーやプラクティスが、下流にまで浸透しつつある
    • ビッグデータやストリーミングデータのかつての難しい部分は、今ではほとんど抽象化され、使いやすさ、相互運用性、その他の改良に焦点が移っている
    • これにより、データエンジニアは、データ管理やDataOps、その他データエンジニアリングの根底にある抽象化された要素に取り組むことが出来る
    • その意味でデータ・エンジニアは "エンタープライズ的 "になっていく
    • ★確かに、最近エンタープライズな企業が企画/マネジメント職的なコンテクストで「データエンジニア」の求人出してるのを見る機会が増えてきたかも

肩書きと責任は変化していくだろう

  • データエンジニアリングのライフサイクルがすぐになくなることはないが、ソフトウェアエンジニアリング、データエンジニアリング、データサイエンス、MLエンジニアリングの境界はますます曖昧になっていく
    • (筆者を含めて)多くのデータサイエンティストは、有機的なプロセスを経てデータエンジニアへと変貌を遂げる。「データサイエンス」を行うことを任務としながらも、仕事を行うためのツールが不足しているため、データエンジニアリングライフサイクルに対応するシステムの設計と構築の仕事を引き受けるのだ
  • 抽象化が進むにつれて、データ・サイエンティストはデータの収集と加工に費やす時間が減っていくだろう
    • データエンジニアリングライフサイクルの低レベルのタスク(サーバーの管理、設定など)に費やす時間が減ることを意味し、「エンタープライズ的な」データエンジニアリングがより普及するだろう
  • この傾向はデータサイエンティストにとどまらない
  • データがあらゆるビジネスのプロセスに密接に組み込まれるようになると、データとアルゴリズムの領域で新たな役割が生まれるだろう
  • 一つの可能性は、MLエンジニアリングとデータエンジニアリングの中間に位置する役割だ
    • クラウドのマネージドなMLサービスのり弁性が高まるにつれて、MLはアドホックな探索やモデル開発から運用のディシプリンへとシフトしつつある
    • ★業務システム/サービスの開発部署、データ分析(基盤)部署、ML(基盤)部署がサイロ化していて、各々は優れたケイパビリティを持っているのに有機的に価値を出せていない勿体ない状況をよく観測する。。一方でデータの利活用で目覚ましい成果を挙げている企業はそれらが有機的に統合されてるように見えていて、それを実現する組織や技術、プロセスを探求したい
    • この溝をまたぐMLにフォーカスする新しいエンジニアは、アルゴリズム、ML技術、モデル最適化、モデルモニタリング、データモニタリングに精通する
    • 彼らの主な役割は、モデルを自動的に訓練し、パフォーマンスを監視し、よく理解されているモデルタイプについてMLプロセスを完全に運用するシステムを作成または利用することになる
    • また、データパイプラインや品質の監視も行うようになり、現在のデータエンジニアリングの領域と重なる
    • MLエンジニアは、より研究に近く、あまり理解されていないモデルタイプに取り組むため、より専門的になるだろう(ML engineers will become more specialized to work on model types that are closer to research and less well understood.)
      • ★この一文イマイチ言いたいことが分からなかった。より高度なことをやるようになるよって意味なのかな
  • ソフトウェアエンジニアリングとデータエンジニアリングが交差する分野も、肩書きが変化する可能性がある
    • 従来のソフトウェア・アプリケーションとアナリティクスを融合させたデータ・アプリケーションは、このトレンドを牽引するだろう
    • ソフトウェア・エンジニアは、データ工学をより深く理解する必要があるだろう
      • ストリーミング、データ・パイプライン、データ・モデリング、データ品質などの専門知識を身につけることになる
      • 私たちは、現在普及している「壁越しに放り投げる」アプローチから脱却することになるだろう
    • データエンジニアはアプリケーション開発チームに統合され、ソフトウェア開発者はデータエンジニアリングスキルを習得する
    • アプリケーションのバックエンドシステムとデータエンジニアリングツールの間に存在する境界線も低くなり、ストリーミングやイベント駆動型アーキテクチャによる深い統合が実現するだろう

Modern Data Stackを超えて、Live Data Stackへ向かうだろう

  • 率直に言うと、モダン・データ・スタック(MDS)はそれほどモダンではない
  • モダン・データ・スタックが強力なデータツールの品揃えを大衆に提供し、価格を引き下げ、データアナリストがデータスタックをコントロールできるようにしたことには拍手を送りたい
    • ELTの台頭、クラウドデータウェアハウス、SaaSデータパイプラインの抽象化は、多くの企業にとって、BI、アナリティクス、データサイエンスの新たな可能性を開き、ゲームを確実に変えた
  • とはいえ、モダン・データ・スタックは基本的に、古いデータウェアハウスのやり方を最新のクラウドSaaSの技術を使って再パッケージ化したものだ
    • クラウド・データウェアハウスのパラダイムに基づいて構築されているため、次世代のリアルタイム・データ・アプリケーションの可能性と比較すると、いくつかの重大な制限がある
  • 世界はデータウェアハウスをベースとした内部向けの分析やデータサイエンスの利用を超え、次世代リアルタイム・データベースを用いてビジネス全体やアプリケーションをリアルタイムで強化する方向に進んでいる
  • 何がこの進化を後押ししているのだろうか?
    • 多くの場合、アナリティクス(BIとオペレーション・アナリティクス)は自動化に取って代わられるだろう
    • 現在、ほとんどのダッシュボードやレポートは、いつ、何をするのかという質問に答えている
      • 自問自答してみよう。"いつ、何を質問している場合、次にどのようなアクションを取ればいいのか?"と
      • もしその行動が反復的であれば、それは自動化の候補である
        • 発生したイベントに基づいてアクションを自動化できるのに、なぜレポートを見てアクションを起こすかどうかを判断するのか?
    • ただ、それはこれよりもずっと先のことだ
    • ★LLMやAgentの進化によって加速していきそうな気もする
  • TikTokUberGoogle、DoorDashのような製品を使うと、なぜ魔法のように感じるのだろうか?
    • 短いビデオを見たり、乗り物や食事を注文したり、検索結果を見つけたりするのは、ボタンをクリックするだけのように見えるが、その裏では多くのことが起こっている
    • これらの製品は真のリアルタイム・データ・アプリケーションの一例であり、ボタンをクリックするだけで必要なアクションを提供する一方で、裏では極めて高度なデータ処理とMLを極小のレイテンシーで実行している
    • 現在、このレベルの洗練されたテクノロジーは、大手テクノロジー企業のカスタムメイドのテクノロジーに囲い込まれているが、モダンデータスタックがクラウドスケールのデータウェアハウスとパイプラインを大衆に提供したのと同様に、この洗練さとパワーは民主化されつつある
    • ★国際的な超巨大企業が内製しているようなテクノロジーが広まっていくというわけか
  • データの世界はまもなく "ライブ "になる
The Live Data Stack
  • リアルタイム・テクノロジー民主化は、モダン・データ・スタックの後継となるライブ・データ・スタックへのアクセスを可能にし、普及させる
  • 図11-1に示すライブ・データ・スタックは、アプリケーション・ソース・システムからデータ処理、ML、そしてその逆までのデータ・ライフサイクル全体をカバーするストリーミング・テクノロジーを使用することで、リアルタイム分析とMLをアプリケーションに融合する

  • ★金融業界の市場取引系だと市場のストリーミングデータからリアルタイムにアルファを推論して、取引エンジンへフィードバックしていくようなニーズはとてもありそう
  • モダンデータスタックがクラウドを活用し、オンプレミスのデータウェアハウスとパイプライン技術を大衆にもたらしたように、ライブ・データ・スタックは、エリートハイテク企業で使用されているリアルタイム・データ・アプリケーション技術を、使いやすいクラウドベースのサービスとして、あらゆる規模の企業に提供する
  • これにより、より優れたユーザー体験とビジネス価値を創造するための新たな可能性の世界が開かれる
ストリーミング・パイプラインとリアルタイム分析データベース
  • モダンデータスタックは、データを境界のあるものとして扱うバッチ技術に限定している
  • 対照的に、リアルタイム・データ・アプリケーションは、データを境界のない連続的なストリームとして扱う
  • ストリーミング・パイプラインとリアルタイム分析データベースは、モダンデータスタックからライブ・データ・スタックへの移行を促進する2つのコア・テクノロジーである
    • これらのテクノロジーは以前から存在していたが、急速に成熟しつつあるマネージドなクラウドサービスによって、より広く導入されるようになるだろう
  • ストリーミング・テクノロジーは当分の間、著しい成長を続けるだろう
    • これは、ストリーミング・データのビジネス上の有用性がより明確に注目されることに伴って起こるだろう
    • これまでストリーミング・システムは、高価な目新しさや、データをAからBに送るための間抜けなパイプのように扱われることが多かった
    • 将来、ストリーミングは組織のテクノロジーとビジネス・プロセスを根本的に変えるだろう
      • データ・アーキテクトとエンジニアは、こうした根本的な変化の先頭に立つことになる
    • リアルタイム分析データベースは、データの高速な取り込みとサブ秒単位のクエリーの両方を可能にする
      • このデータはエンリッチ化したり、過去のデータセットと組み合わせたりすることができる
  • ストリーミング・パイプラインや自動化、リアルタイム分析が可能なダッシュボードと組み合わせれば、まったく新しいレベルの可能性が開ける
    • もはや、動作の遅いELTプロセスや15分ごとの更新など、動きの遅い部分に制約されることはない
    • データは連続的なフローで移動する
    • ストリーミング・インジェストが普及するにつれて、バッチ・インジェストはますます少なくなっていくだろう
    • 私たちはいずれ、ダイアルアップモデムを見るのと同じように、バッチインジェストを見るようになるだろう
  • ストリームの台頭とともに、データ変換の未来への回帰(back-to-the-future moment)が予想される
    • ELTのようなデータベース変換から、よりETLに近いものへとシフトしていくだろう
    • 私たちはこれを仮に、ストリーム、トランスフォーム、ロード(STL)と呼んでいる
    • ストリーミングのコンテキストでは、抽出は継続的かつ連続的なプロセスである
    • もちろん、バッチ変換が完全になくなるわけではない。バッチは、モデルのトレーニングや四半期ごとのレポート作成などでは、依然として非常に有用である。しかし、ストリーミング変換が主流になるだろう
  • データウェアハウスやデータレイクは、大量のデータを収容し、アドホックなクエリを実行するのには適しているが、低レイテンシーでのデータ取り込みや、急速に移動するデータに対するクエリにはあまり最適化されていない
    • ライブ・データ・スタックは、ストリーミング専用に構築されたOLAPデータベースによって駆動される
    • 現在、Druid、ClickHouse、Rockset、Fireboltのようなデータベースが、次世代のデータアプリケーションのバックエンドの動力源として先導的な役割を果たしている
    • ストリーミング・テクノロジーは今後も急速に進化し、新たなテクノロジーが急増すると予想される
  • 2000年代初頭以来、本格的なイノベーションが起きていないデータモデリングも、革新の機が熟していると思われる分野だ
    • 第8章で学んだ従来のバッチ指向のデータモデリング技術は、ストリーミングデータには適していない
    • 新しいデータモデリング技術は、データウェアハウス内ではなく、データを生成するシステム内で生まれるだろう
    • ここでのデータモデリングには、セマンティクス、メトリクス、リネージ、データ定義(第9章を参照)を含む、アプリケーションでデータが生成されるところから始まる上流の定義レイヤーの概念が含まれるようになると予想される
    • モデリングはまた、データがライフサイクル全体を通じて流れ、進化するにつれて、あらゆる段階で行われる
データとアプリケーションの融合
  • 次の革命は、アプリケーション層とデータ層の融合だと予想する
    • 現在、アプリケーションはある領域に置かれ、モダンデータスタックは別の領域に置かれている
      • さらに悪いことに、データは分析にどのように使用されるかを無視して作成されている
      • その結果、システム同士が会話できるようにするために、たくさんの「ガムテープ」が必要になっている
      • このパッチワークのようなサイロ化されたセットアップは、厄介で得体が知れない
    • 近い将来、アプリケーション・スタックはデータ・スタックとなり、その逆もまた然りとなるだろう
    • アプリケーションは、ストリーミング・パイプラインとMLによって、リアルタイムの自動化と意思決定を統合する
    • データエンジニアリングのライフサイクルは必ずしも変わらないが、ライフサイクルのステージ間の時間は大幅に短縮されるだろう
    • ライブ・データ・スタックのエンジニアリング経験を向上させる新しいテクノロジーやプラクティスにおいて、多くのイノベーションが起こるだろう
    • OLTPとOLAPが混在するユースケースに対応するように設計された新しいデータベース技術に注目してほしい
    • feature storesはMLのユースケースでも同様の役割を果たすかもしれない
アプリケーションとMLの間の緊密なフィードバック
  • 我々が期待しているもうひとつの分野は、アプリケーションとMLの融合だ
  • 今日、アプリケーションとMLは、アプリケーションとアナリティクスのようにバラバラのシステムになっている
    • ソフトウェア・エンジニアと、データ・サイエンティストやMLエンジニアは別々の場所で仕事をする
  • MLは、人間が手作業で処理できないほど大量のデータが大量に生成されるシナリオに適している
    • データのサイズと速度が大きくなるにつれ、これはあらゆるシナリオに当てはまる
    • 動きの速い大量のデータと、洗練されたワークフローやアクションは、MLの候補となる
    • データのフィードバックループが短くなるにつれて、ほとんどのアプリケーションがMLを統合すると予想される
    • データの動きがより速くなるにつれて、アプリケーションとMLの間のフィードバックループはより緊密になるだろう
    • ライブ・データ・スタックのアプリケーションはインテリジェントで、データの変化にリアルタイムで適応できる
    • これにより、アプリケーションがより賢くなり、ビジネス価値が高まるというサイクルが生まれる
ダークマター・データと...スプレッドシートの台頭?
  • これまで、動きの速いデータと、アプリケーション、データ、MLがより密接に連携することでフィードバックループが縮小することについて話してきた
  • 一方で、今日のデータの世界で、特にエンジニアが広く無視していることを取り上げる必要がある
  • 最も広く使われているデータプラットフォームとは、地味なスプレッドシート
  • データ分析のかなりの部分はスプレッドシートで実行され、本書で説明するような洗練されたデータシステムに入ることはない
  • 多くの組織では、スプレッドシートが財務報告、サプライチェーン分析、さらにはCRMを扱っている
  • スプレッドシートは、複雑な分析をサポートするインタラクティブなデータアプリケーションである
  • pandas(Pythonデータ分析ライブラリ)のような純粋にコードベースのツールとは異なり、スプレッドシートは、ファイルを開いてレポートを見る方法を知っているだけのユーザーから、高度な手続き的データ処理をスクリプト化できるパワーユーザーまで、あらゆるユーザーがアクセスできる
  • これまでのところ、BIツールはデータベースと同等の対話性をもたらすことができなかった
    • UIを操作するユーザーは、一般的に特定のガードレール内でデータを切り刻むことに限定されており、汎用的にプログラム可能な分析には対応していない
    • 我々は、スプレッドシートインタラクティブな分析機能とクラウドOLAPシステムのバックエンドパワーを組み合わせた新しいクラスのツールが出現すると予測している
    • 実際、すでにいくつかの候補が出てきている
    • この製品カテゴリーの最終的な勝者は、スプレッドシートパラダイムを使い続けるかもしれないし、データと対話するための全く新しいインターフェース・イディオムを定義するかもしれない

Conclusion

  • 私たちは、
    • 優れたアーキテクチャ、データエンジニアリングのライフサイクルの段階、セキュリティのベストプラクティスを概観した
    • この分野が驚異的なスピードで変化し続けている今、テクノロジーを選択する戦略について述べてきた
    • この章では、近い将来と中間の将来について、私たちの荒唐無稽な推測を述べた
  • 我々の予言のいくつかの側面は、比較的確実に実現しつつある
    • マネージドなツールによる簡素化と”エンタープライズ的”なデータエンジニアリングの台頭は日々進行している
  • ライブ・データ・スタックの出現の兆しが見えるが、これは個々のエンジニアにとっても、彼らを雇用する組織にとっても、大きなパラダイム・シフトを伴う
    • ただ、リアルタイムデータへの流れは中短期的には停滞し、ほとんどの企業は基本的なバッチ処理に焦点を当て続けるだろう
  • きっと、私たちが完全に特定できていない他のトレンドが存在するのだろう
  • テクノロジーの進化は、テクノロジーと文化の複雑な相互作用を伴い、どちらも予測不可能である
  • データエンジニアリングは広大なトピックであり、個々の領域について技術的に深く掘り下げることはできなかったが、現職のデータエンジニア、将来のデータエンジニア、そしてこの分野に隣接して働く人々が、流動的な領域で自分の進むべき道を見つけるのに役立つ、旅行ガイドのようなものを作成することに成功したことを願っている
  • 私たちは、あなた自身が探求を続けることを勧める
    • 本書で興味深いトピックやアイデアを発見したら、コミュニティの一員として会話を続けよう
    • 流行のテクノロジーやプラクティスの長所や落とし穴を発見する手助けをしてくれるドメインのエキスパートを見つけよう
    • 最新の書籍、ブログ記事、論文を幅広く読もう
    • ミートアップに参加し、講演を聞こう
    • 質問をしたり、自分の専門知識を共有しよう
    • ベンダーの発表に目を配り、最新動向を把握しよう
  • その上で、テクノロジーを採用し、それぞれの役割の中で(indivisual contributorとして、リーダーとして、チーム内で、テクノロジー組織全体...etc)専門知識を身につける必要がある
    • その際、データエンジニアリングの大きな目標を見失ってはならない。つまり、ライフサイクルに集中し、社内外の顧客にサービスを提供し、ビジネスに貢献し、より大きな目標を達成するのだ
  • 将来については、皆さんの多くが次に来るものを決定する役割を果たすことになるだろう
    • テクノロジーのトレンドは、基礎となるテクノロジーを生み出す人々によって定義されるだけでなく、それを採用し、有効に活用する人々によっても定義される
    • ツールをうまく使うことは、ツールを作ることと同じくらい重要だ
    • ユーザー・エクスペリエンスを向上させ、価値を創造し、まったく新しいタイプのアプリケーションを定義するようなリアルタイム・テクノロジーを適用する機会を見つけよう
    • ライブ・データ・スタックを新しい業界標準として具現化するのは、このような実用的なアプリケーションである。あるいは、私たちが見極められなかった他の新しい技術トレンドが勝利を収めるかもしれない
  • 最後に、皆さんのキャリアがエキサイティングなものになることを祈っている。私たちがデータエンジニアリングの仕事を選び、コンサルタントをし、この本を書くことにしたのは、単にそれが流行していたからではなく、それが魅力的だったからだ。私たちがこの分野で働く喜びを少しでもお伝えできたなら幸いである