データエンジニア:神話と現実

公開: 2018-05-10

自家用車から画像の自動タグ付けまで、データサイエンスは長い道のりを歩んできました。 データサイエンティストとアナリストは、付加価値があるため、あらゆる組織の不可欠な部分になっています。 しかし、正直なところ、データサイエンティストは、彼らが扱うデータと同じくらい優秀です。 今日のほとんどの組織では、データがさまざまな形式で多数のプラットフォームに保存されています。 データエンジニアが必要になります。

データエンジニアは、このデータをデータサイエンティストやアナリストが利用できるようにする人々です。 データエンジニアは、データのヒープをデータサイエンティストが使用できる形式に変換するパイプラインを構築する責任があります。 それらは主に舞台裏で機能するため、データサイエンティスト/アナリストの魅力をすべて欠いていますが、組織の機能に等しく(それ以上ではないにしても)不可欠です。
データサイエンティストがレーシングカーのドライバーである場合、データエンジニアはレーシングカーのビルダーです。 前者は、トラックに沿ってスピードを出す興奮と、拍手喝采する群衆の前で勝利するスリルを味わうことができます。 一方、後者は、エンジンを調整し、強力で堅牢なマシンを作成する喜びをもたらします。 レースカービルダーは、ドライバーの仕事をはるかに簡単にします(またはビルダーの品質によってはより困難になります)。
どうすればデータ分析に移行できますか?

この点で、データエンジニアは、ほとんどすべてのデータ分析チームの陰のヒーローです。 サウンドデータエンジニアがいなければ、データサイエンティストは、フォーマットされていないデータの手がかりを探して頭を悩ませることになります。
データエンジニアの仕事が何を伴うのか見てみましょう。
理解を深めるために、あなたがSwiggyの競合他社のデータエンジニアであると仮定しましょう(Twiggyという名前を付けましょう)。 ユーザーが任意のデバイスで使用してサービスにアクセスできるアプリがあります。 彼らは食べ物を注文し、注文は適切なレストランにリダイレクトされ、そこから食べ物が受け取られ、あなたに届きます。
このサービスの同期を維持するには、次のものが必要です。

  • ユーザー向けのモバイルアプリ
  • レストランオーナー向けのモバイルアプリ
  • 一度に複数のリクエストを処理する堅牢なサーバー。

ご存知かもしれませんが、このアプリケーションは膨大な量のデータを生成します。 さらに、いくつかのデータストアが必要になります。

  • ユーザーとレストランの詳細を含むデータベース。
  • サーバーアクセスログ。 これらには、アプリからサーバーに対して行われたすべてのリクエストが含まれます。
  • すべてのサーバー側エラーを含むサーバーエラーログ。
  • アプリのイベントログ。 これらには、ユーザーまたはレストランの所有者がアプリケーションで実行したアクションに関する情報が含まれます。
  • アプリベースのエラーを含むアプリエラーログ。
  • カスタマーサービスデータベース。 これには、顧客とのやり取りに関するデータが含まれます。

ここで、チームのデータサイエンティストが、サービスでのユーザーの行動を分析し、どのアクションが高額のユーザーと相関しているかを確認したいとします。 彼らがこれを作成するのを助けるために、あなたはサーバーアクセスログとアプリイベントログからのすべての情報を組み合わせる必要があるでしょう。
次のことを行う必要があります。

  • アプリ分析ログを定期的に収集します。
  • アプリ分析ログを、関連するユーザーのサーバーログエントリと組み合わせます。
  • 任意のユーザーのイベント履歴を返すAPIを開発します。

それはすぐそこにたくさんの仕事です!
これらすべてを行うには、モバイルアプリのログとサーバーログをリアルタイムで効率的に取り込み、解析して、適切なユーザーにリンクできるパイプラインを作成する必要があります。 さらに、APIが簡単にクエリできるように、解析されたログをデータベースに保存する必要があります。 受信ログを解析するためにロードバランサーの背後でスピンアップする必要があるサーバーがたくさんあります。
発生する問題の大部分は、分散システムと信頼性に関するものです。 ログを収集するデバイスが数百万あり、動的な要求がある場合(午後には多くのログエントリを取得しますが、深夜にはそれほど多くはありません)、サーバーのカウントを自動的に増減できるシステムを開発する必要があります。トラフィックに応じて。
データサイエンスをマスターするためのトップステップ

大まかに言って、一般的なデータエンジニアリングパイプラインの操作は次のフェーズを経ます。

  • 取り込み:必要なデータを収集します。
  • 処理:データを処理して、目的の結果を取得します。
  • ストレージ:検索を高速化するために結果を保存します。
  • アクセス:ツールがデータパイプラインの結果にアクセスできるようにします。

データエンジニアは、以下の分野の知識を持っていることが期待されます。

  • データウェアハウジング:
    • MySQL、MSSQLServerなどのRDBMS。
    • HBase、MongoDB、CouchDB、CassandraなどのNoSQLデータベース。
  • データ収集:
    • RESTful API
    • データモデリングの知識とSQLの専門知識。
  • データ変換:
    • Informatica、Datastage、RedpointなどのETLツール。
    • Python、Ruby、Perlなどのスクリプト言語。

これらのデータエンジニアの生活と仕事を中心に展開しているいくつかの神話と誤解を見てみましょう。

目次

神話#1:データエンジニアは収集されたデータから価値を引き出します。

データの収集と知識の抽出の間には多くのことがあります。 データエンジニアは主に、データを科学者が分析して作業するのに適した形式に変換する責任があります。 この点で、彼らはデータから価値を抽出しません。実際、彼らはプレート上のデータをデータサイエンティストに提示し、データサイエンティストはそこから価値を発見します。

神話#2:データエンジニアはすべてのデータを元の状態にする必要があります。

上記の文章をゆっくり読むと、これのばかげたことに気付くでしょう。 データエンジニアは、1日を通して着信データストリームを処理します。 このデータは、古くならないように、すぐにクリーンアップして対処する必要があります。 古いとは、洞察力がなく古いことを意味します。 したがって、データエンジニアは、すべてのデータを元の状態にすることはしません。 それらは、目前の問題に必要な他のデータと組み合わせて、手元のデータを処理します。 完全なデータセットのクリーンアップには数か月かかり、それまでには役に立たなくなります。
データサイエンスのための統計の基本的な基礎

神話#3:データエンジニアは既製のツールにデータをダンプし、出力としてクリーンで実行可能なデータを楽しんでいます。

データエンジニアの前で大声で言ってはいけません。 これまで。 自尊心のあるデータエンジニアは、そのような露骨な侮辱を容認しません。 他のエンジニア(ソフトウェア、機械、化学など)と同様に、データエンジニアは、常に思考の上限を設定する必要があります。 データエンジニアリングには万能のアプローチはありません。データエンジニアは、ユースケースに継続的に適合するようにアルゴリズムを作成する必要があります。 彼らは完璧な効率を確保するために彼らの仕事の周りの最新の技術と方法を知っている必要があります。

神話#4:データエンジニアは、ビッグデータに取り組むソフトウェアエンジニアにすぎません。

ソフトウェアエンジニアは、モバイル/ウェブアプリの開発に取り組んでいます。 彼らの仕事には多くの多様な問題があり、コードを考え、伝達し、整理するというタスクの管理が困難です。 一方、データエンジニアは一般的に問題が少ないですが、個々の問題は技術的にはるかに困難です。 見通しからスキルセットまで、データエンジニアとソフトウェアエンジニアではすべてがまったく異なります。
データサイエンティスト、データアナリスト、データエンジニアは誰ですか?

世界のトップ大学からデータサイエンス認定取得します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを学び、キャリアを早急に進めましょう。

データエンジニアリングは、従来のITの役割に似ていますか?

「データエンジニア」と「ソフトウェアエンジニア」は、どちらもプログラミングスキルに大きく依存しているため、コンピュータセクター以外の人と互換性があるように聞こえるかもしれません。 しかし実際には、彼らはさまざまな分野の専門家です。 ソフトウェアエンジニアの主な目標は、ユーザーフレンドリーなWebサイトを作成することです。 データエンジニアは、データを保存、統合、および取得するためのシステムを確立します。データは、ソフトウェア開発者がシステムやアプリケーションを構築するために使用します。 データエンジニアは、インフラストラクチャ全体のデータ品質を確保するために、すべての組織データの継続的インテグレーションおよび配信(CI / CD)パイプライン、およびバージョン管理システムを作成および維持することもできます。

データエンジニアになるには、大学教育または高等教育を受ける必要がありますか?

データエンジニアとして働くために学位は必要ありませんが、特定の雇用主は少なくとも学士号を取得した候補者を好む場合があります。 アカデミックコースやオンラインカリキュラムでは、さまざまなソースからデータを移動し、変更し、分析のために保存できるデータシステムを作成する準備を完全に整えることはできません。 事実、最も成功しているデータエンジニアは、実際の顧客と一緒に現実の世界で業務を行っているときに、仕事で多くのことを学びます。 ただし、データエンジニアは、Amazon Athena、Amazon Redshift、Apache Sparkなどの特定のツールを操作し、データ管理のベストプラクティスに関する知識を習得するための優れたスキルを持っていることが重要です。

成功するデータエンジニアになるには?

データ駆動型ビジネスの場合、データエンジニアリングは重要ですが、データエンジニアは正確に何をしますか? これが成功するデータエンジニアになるための道です

1.プログラミングに習熟する:成功するデータエンジニアになりたい場合は、まず、プログラミングの基礎をブラッシュアップすることから始めます。 PythonとScalaは、この分野で最も一般的に使用されているテクノロジーです。
2.自動化とスクリプト作成の方法を学ぶ:自動化の学習はデータエンジニアにとって非常に重要です。 面倒な場合や定期的に発生する可能性のあるデータに対して実行する必要のあるタスクが多数あるためです。 自動化のためのいくつかの重要なツールは、シェルスクリプトとシェルでのデータ処理です​​。
3.データベースの使用方法を理解する:これは、SQLとデータモデリングを学習することで実行できます。
4.熟練したデータ処理技術:データ処理技術を習得するには、結果をターゲットデータベースにロードする前に、データをバッチおよびストリームで処理する方法を学ぶことが重要です。