データエンジニアリング - 百科事典
データエンジニアリングは、データシステムの構築に取り組むソフトウェア工学のアプローチであり、データの収集と利用を可能にするものです。このデータは、通常、後続の分析やデータサイエンス(しばしば機械学習を含む)に使用されます。データを利用可能にするためには、通常、大量の計算とストレージ、およびデータ処理が必要です。
歴史
1970年代/1980年代頃、情報工学手法(IEM)という用語が作られ、データベース設計やデータ分析および処理に使用されるソフトウェアの使用を説明するために作られました。これらの技術は、1980年代の組織の運営処理需要に対する理解に基づいて、データベース管理者(DBA)やシステムアナリストによって使用される予定でした。特に、これらの技術は、戦略的なビジネス計画と情報システムの間のギャップを橋渡しするのに役立つと考えられていました。初期の重要な貢献者(しばしば「情報工学手法の父」と呼ばれる)は、1976年から1980年までにいくつかの記事を書き、ジェームズ・マーティンと共著した影響力のあるSavant Instituteの報告書に参加したオーストラリア人のクリーブ・フィンクルシュテインでした。その後数年間、フィンクルシュテインはビジネス駆動型の方向へと進み、急速に変化するビジネス環境に対応することを意図していました;マーティンはデータ処理駆動型の方向へと進みました。1983年から1987年まで、クリーブ・フィンクルシュテインの指導のもと、チャールズ・M・リッチャーはIEMのリバイバルとIEMソフトウェア製品(ユーザーデータ)の設計を支援し、IEMを自動化する役割を果たしました。
2000年代初頭には、データとデータツールは、ほとんどの企業の情報技術(IT)チームによって保持されていました。他のチームは、その作業(例えばレポート作成)にデータを使用し、ビジネスのこれらの部分間でデータスキルセットの重複はほとんどありませんでした。
2010年代初頭には、インターネットの台頭とデータの量、速度、多様性の大幅な増加により、「ビッグデータ」という用語がデータ自体を説明するために使用され始めました。FacebookやAirbnbのようなデータ駆動型のテクノロジー企業は「データエンジニア」という用語を使用し始めました。データの新しいスケールにより、Google、Facebook、Amazon、Apple、Microsoft、Netflixなどの主要企業は、従来のETLとストレージ技術から遠ざかり始めました。彼らはデータエンジニアリングを創造し始めました。これは、データに焦点を当てたソフトウェア工学であり、特にインフラ、データウェアハウス、データ保護、サイバーセキュリティ、採掘、モデリング、処理、およびメタデータ管理に焦点を当てています。このアプローチの変更は特にクラウドコンピューティングに焦点を当てていました。データは、販売やマーケティングなどのビジネスの多くの部分で処理および使用されるようになり、ITだけに限りません。
ツール
= 計算 =
高性能計算はデータの処理と分析に不可欠です。データエンジニアリングに特化した計算の広く使用されているアプローチはデータフロー・プログラミングであり、計算は指向グラフ(データフロー・グラフ)として表現されます;ノードは操作であり、エッジはデータの流れを表します。人気のある実装にはApache SparkやTensorFlow(ディープラーニング用)があります。より最近の実装、例えばDifferential/Timely Dataflowは、増分計算を使用してより効率的なデータ処理を実現しています。
= ストレージ =
データはさまざまな方法で保存されますが、最も重要な決定要因の1つはデータの使用方法です。
データエンジニアは、コストを削減するためにデータの保存と処理システムを最適化します。データ圧縮、パーティション、アーカイブを使用します。
データベース
データが構造化されてオンライン・トランザクション処理が必要な場合、データベースが一般的に使用されます。元々は主に関係データベースが使用されていましたが、強力なACIDトランザクション正確性保証がありました;ほとんどの関係データベースはSQLを使用してクエリを実行します。しかし、2010年代のデータの成長により、関係データベースよりもより簡単に水平スケーリングできるため、ACIDトランザクション保証を放棄し、オブジェクト・リレーショナルの干渉の差異を減らすことで人気が高まったNoSQLデータベースも普及しました。最近では、水平スケーリングを可能にしつつACID保証を維持しようと試みるNewSQLデータベースも人気が高まっています。
データウェアハウス
データが構造化されてオンライン・分析処理が必要な場合(オンライン・トランザクション処理は必要ありません)、データウェアハウスが主要な選択肢となります。データウェアハウスは、データベースよりもはるかに大きなスケールでデータ分析、採掘、人工知能を実行可能にし、実際にはデータがデータベースからデータウェアハウスに流れることがあります。ビジネスアナリスト、データエンジニア、データサイエンティストはSQLやビジネスインテリジェンスソフトウェアなどのツールを使用してデータウェアハウスにアクセスできます。
データ・レイク
データ・レイクは、大量のデータを保存、処理、保護するための集中保管庫です。データ・レイクには、関係データベースからの構造化データ、半構造化データ、非構造化データ、バイナリデータが含まれることがあります。データ・レイクは、Amazon、Microsoft、Googleなどのパブリッククラウドベンダーのサービスを使用して、オンプレミスまたはクラウドベースの環境に作成できます。
ファイル
データが低構造化されている場合、通常、ファイルとして保存されます。いくつかのオプションがあります:
ファイルシステムはデータを階層的にネストされたフォルダーで表現します。
ブロックストレージはデータを定規的な大きさのチャンクに分割します;これはしばしば(仮想)ハードディスクやソリッドステートドライブと一致します。
オブジェクトストレージはメタデータを使用してデータを管理し、通常、各ファイルにUUIDなどのキーが割り当てられます。
= マネジメント =
さまざまなデータプロセスやストレージ場所の数と多様性は、ユーザーにとって圧倒的になることがあります。これにより、データタスクを指定、作成、モニタリングするためのワークフローマネジメントシステム(例えばAirflow)の使用が促進されました。タスクは、しばしば指向無環グラフ(DAG)として指定されます。
ライフサイクル
= ビジネス計画 =
経営幹部が将来のものに対して設定するビジネス目標は、主要なビジネス計画に特徴付けられ、戦術的なビジネス計画でより注目に値する定義、および運営ビジネス計画で実施されます。今日のほとんどの企業は、この戦略に従ったビジネス計画を成長させる基本的な必要性を認識しています。これらの計画を実行するのは、組織の戦術的および運営レベルでの透明性の欠如により、しばしば難しいです。この種の計画は、コミュニケーションの誤解やビジネス計画の誤解による問題を早期に修正するためにフィードバックが必要です。
= システム設計 =
データシステムの設計は、データプラットフォームのアーキテクチャやデータストレージの設計などの多くの要素を含みます。
= データモデリング =
これはデータモデルの生成プロセスであり、データとデータの異なる部分間の関係を説明する抽象モデルです。
ロール
= データエンジニア =
データエンジニアは、組織内でデータの流れを管理するビッグデータETLパイプラインを作成するソフトウェアエンジニアの種類です。これにより、大量のデータを洞察に変換することが可能になります。彼らはデータのプロダクション準備やフォーマット、耐久性、スケーリング、セキュリティに焦点を当てています。データエンジニアは通常、ソフトウェア工学の背景を持っており、Java、Python、Scala、Rustなどのプログラミング言語に精通しています。彼らはデータベース、アーキテクチャ、クラウドコンピューティング、およびアジャイルソフトウェア開発にも精通しています。
= データサイエンティスト =
データサイエンティストはデータの分析にさらに焦点を当てており、彼らは数学、アルゴリズム、統計、機械学習に精通しています。
参考資料
Big data
Information technology
Software engineering
Computer science
参考文献
Further reading
外部リンク
The Complex Method IEM Archived July 20, 2019, at the Wayback Machine
Rapid Application Development
Enterprise Engineering and Rapid Delivery of Enterprise Architecture