「データエンジニアリング入門ガイド」
Data Engineering Introduction Guide
膨大な量のデータが多様なソースから流入してくる中、データエンジニアリングはデータエコシステムにおいて不可欠な存在となっています。そして、組織はデータエンジニアのチームを構築し拡大することを目指しています。
分析者などの一部のデータ関連の役割では、SQLとプログラミングスキルが優れている限り、事前の経験は必要ありません。しかし、データエンジニアリングに参入するためには、データ分析やソフトウェアエンジニアリングの経験が一般的に役立つでしょう。
ですから、データエンジニアリングのキャリアを目指す場合、このガイドが以下の目的で役立ちます:
- 「データサイエンスを使って、トップのTwitterインフルエンサーを特定する」
- 「2023年にデータサイエンスFAANGの仕事をゲットする方法は?」
- 「SQLにおけるSUBSTRING関数とは何ですか?[例を使って説明します]」
- データエンジニアリングについて詳しく学び、データエンジニアの役割を理解すること
- 基本的なデータエンジニアリングの概念について理解を深めること
データエンジニアリングとは何か?
データエンジニアリングについて議論する前に、データエンジニアリングの必要性を確認することは役に立ちます。データ領域に長くいた場合、SQLクエリを使用してリレーショナルデータベースやSQLライクな言語を使用してNoSQLデータベースをクエリするスキルを持っているかもしれません。
しかし、データはどのようにしてそこに到達し、さらなる分析やレポートに向けて準備されるのでしょうか?それがデータエンジニアリングの役割です。
私たちは、データが遺産データベースからユーザー会話やIoTデバイスまでのさまざまなソースから入ってくることを知っています。生のデータはデータリポジトリに取り込まれる必要があります。詳しく言えば、さまざまなリソースからのデータは、データリポジトリで使用できる形式にするために抽出され、処理される必要があります。
データエンジニアリングは、さまざまなリソースからの生データを収集し統合するすべてのプロセスを包括し、分析やその他のアプリケーションに使用できる統一されたアクセス可能なデータリポジトリを作成することを意味します。
データエンジニアの役割は何ですか?
データエンジニアリングの内容を理解することで、日々の業務内容を推測することができるはずです。データエンジニアの責任は、以下のようなものですが、これに限定されません:
- さまざまなソースからのデータを抽出し統合する:データ収集
- 分析のためのデータの準備:データを処理して分析やその他の下流タスクに適用するための適切な変換を行う。データのクリーニング、検証、変換を含む
- データの流れをカバーするデータパイプラインを設計、構築、維持する
- データ収集、処理、格納のためのインフラストラクチャを設計および維持する:インフラストラクチャの管理
データエンジニアリングの概念
組織内でのデータエンジニアリングの重要性やデータエンジニアの役割を理解したので、基本的な概念を見直してみましょう。
データソースとタイプ
前述のように、スペクトラム全体のすべてのリソースからデータが入ってきます:リレーショナルデータベースやウェブスクレイピングからニュースフィードやユーザーチャットまで。これらのソースからのデータは、以下の3つの大まかなカテゴリに分類されます:
- 構造化データ
- 半構造化データ
- 非構造化データ
以下に概要を示します:
タイプ | 特徴 | 例 |
構造化データ | 明確に定義されたスキーマを持つ | リレーショナルデータベース、スプレッドシートなどのデータ |
半構造化データ | ある程度の構造を持つが厳格なスキーマはない。通常、追加情報を提供するメタデータタグが含まれています。 | JSONやXMLデータ、メール、ZIPファイルなど |
非構造化データ | 明確に定義されたスキーマがない | 画像、動画、その他のマルチメディアファイル、ウェブサイトのデータ |
データリポジトリ:データウェアハウス、データレイク、およびデータマート
さまざまなソースから収集された生データは、適切なリポジトリにステージングする必要があります。おそらく、関係データベースと非関係データベースの両方については既に知っているかもしれません。しかし、他のデータリポジトリも存在します。
それらを説明する前に、OLTPおよびOLAPシステムという2つのデータ処理システムについて学ぶと役立ちます:
- OLTPまたはオンライントランザクション処理システムは、在庫管理などのアプリケーションの日常的な操作データを格納するために使用されます。OLTPシステムには、ビジネスの洞察を導き出すために使用できるデータを格納する関係データベースが含まれます。
- OLAPまたはオンライン解析処理システムは、複雑な分析を実行するために大量の過去のデータを格納するために使用されます。データウェアハウスやデータレイク(後で詳しく説明します)に加えて、OLAPシステムにはデータベースも含まれます。
データリポジトリの選択は、ソースとデータの種類によって通常決定されます。一般的なデータリポジトリについて説明します:
- データウェアハウス:データウェアハウスは、受信データの単一の包括的なストアハウスを指します。
- データレイク:データレイクは、加工せずにすべてのデータタイプ(セミストラクチャ化および非構造化データを含む)を生の形式で格納できます。データレイクは、ELTプロセスの宛先としてよく使用されます(後で詳しく説明します)。
- データマート:データマートは、データウェアハウスのより小さなセクションと考えることができます。特定のビジネスユースケースに合わせてカスタマイズされています。
- データレイクハウス:最近、データレイクハウスも人気があります。データレイクの柔軟性を提供しながら、データウェアハウスの構造と組織を提供します。
データパイプライン:ETLおよびELTプロセス
データパイプラインは、ETLおよびELTプロセスを通じてデータの移動を包括しています。
ETL(抽出、変換、ロード)プロセスは、次のステップを含みます:
- さまざまなソースからデータを抽出する
- データを変換する-データのクリーニング、検証、および標準化
- データをデータリポジトリまたは宛先アプリケーションにロードする
ETLプロセスでは、データウェアハウスが通常の宛先となります。
ELT(抽出、ロード、変換)は、ETLプロセスのバリエーションであり、抽出、ロード、変換の順序でステップが行われます。
つまり、ソースから収集した生データは、変換が適用される前にデータリポジトリにロードされます。これにより、特定のアプリケーションに固有の変換を適用できます。ELTプロセスでは、データレイクが宛先となります。
データエンジニアが知っておくべきツール
データエンジニアが知っておくべきツールのリストは圧倒的かもしれません。
しかし、心配しないでください。データエンジニアとしての仕事に就くために、これらすべてを専門家レベルで習得する必要はありません。さまざまなツールを知る前に、データエンジニアリングには次のような広範な基礎的なスキルが必要です:
- プログラミング言語:Python、Scalar、およびJavaのいずれかを含むプログラミング言語での中級から上級の習熟度
- データベースとSQL:データベース設計の理解と、MySQLやPostgreSQLなどの関係データベース、およびMongoDBなどの非関係データベースでの作業能力
- コマンドラインの基礎:シェルスクリプトとデータ処理、およびコマンドラインの使用に関する習熟度
- オペレーティングシステムとネットワーキングの知識
- データウェアハウジングの基礎
- 分散システムの基礎
基礎的なスキルを学びながら、自分の習熟度を示すプロジェクトを作成することも重要です。学んだことをプロジェクトで応用し、作業を進めるにつれてさらに学ぶことは、効果的な方法です。
さらに、データエンジニアリングには、バージョン管理、ログ記録、およびアプリケーションの監視といった強力なソフトウェアエンジニアリングスキルも必要です。また、Dockerのようなコンテナ化ツールやKubernetesのようなコンテナオーケストレーションツールの使用方法も知っておく必要があります。
組織によって使用する実際のツールは異なる場合がありますが、以下のことを学ぶと役立ちます:
- データエンジニアリングのためのdbt(データビルドツール)
- ビッグデータ分析と分散データ処理のためのApache Spark
- データパイプラインのオーケストレーションのためのAirflow
- クラウドコンピューティングの基礎とAWSやMicrosoft Azureなどの少なくとも1つのクラウドプロバイダーとの作業
データウェアハウジングやストリーム処理などのエンジニアリングツールについて詳しく学ぶには、「10 Modern Data Engineering Tools」を読んでください。
まとめ
データエンジニアリングの紹介が有益であることを願っています!スケールの大きなデータシステムの設計、構築、およびメンテナンスに興味がある場合は、ぜひデータエンジニアリングに取り組んでみてください。
データエンジニアリングzoomcampは、データエンジニアリングを学ぶためのプロジェクトベースのカリキュラムとして最適です。また、データエンジニアの面接でよく聞かれる質問のリストを読んで、必要な知識の概要を把握することもできます。Bala Priya Cは、インド出身の開発者兼技術ライターです。彼女は数学、プログラミング、データサイエンス、コンテンツ作成の交差点で働くことが好きです。彼女の関心と専門知識の分野には、DevOps、データサイエンス、自然言語処理が含まれます。彼女は読書、執筆、コーディング、コーヒーを楽しんでいます!現在、彼女はチュートリアル、ハウツーガイド、意見記事などの執筆を通じて、開発者コミュニティとの知識共有と学習に取り組んでいます。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles