こんにちは。フランス発の機械学習プラットフォーム、Dataiku(データイク)という会社で欧州企業のDX(デジタルトランスフォーメーション)を支援している宮崎です。日本でAI(人工知能)など先端技術の教育を展開するzero to one(仙台市)のリサーチ担当もしています。
本連載ではこれまでデータサイエンス系の職探しの仕方や、バズワードの整理について書いてきました。5回目となる今回は、データサイエンスに関わる様々な職種の違いについて説明したいと思います。
まず、データドリブンな企業の典型的な業務フローを考えてみましょう。
例えばAirbnbやBooking.comのような、ホテルを予約できるウェブサイトを運営する会社を想像してみてください。仮に「BulletTrip」と名付けましょう。
BulletTrip社では様々なデータを集めています。自社のウェブサイトに掲載している数百万件のホテルのデータ、ウェブサイトを訪れる数千万人のユーザーの個人情報、それらのユーザーがウェブサイト上で何をクリックしたか、検索ランクの上位に表示されるホテルは何か……などです。
こうした自社ウェブサイトからのデータに加え、ホテル向けの営業チームが使っている他社のCRM(顧客管理システム)ツールからもデータを集めています。いままでどのホテルに営業をかけたか、どのくらいの頻度でコミュニケーションをとっているか、などです。
BulletTrip社はこうしたデータを使って日ごろからKPI(Key Performance Indicator:ビジネスのパフォーマンスを測るために設定した指標)をモニタリングしています。例えばユーザーがホテルを検索したときに、上から5位以内に表示されたホテルを予約する割合が3%以上であること、ユーザーのウェブサイト平均滞在時間が2分を切らないこと……などです。
BulletTrip社にはデータサイエンス関連のポジションが主に4つあります。
・データエンジニア
・データアナリスト
・データサイエンティスト
・機械学習エンジニア
それぞれ説明していきましょう。
すべての始まりとなる「データエンジニア」
データエンジニア
データエンジニアの業務領域は非常に広いです。ざっくり言うと、データを分析に使えるように、データベースやデータレイク、データウエアハウスなどにストックする責任者です。詳しくは次のような仕事をします。
- データベースやデータレイク、データウエアハウスなどを設計する(これら3つはすべてデータを保存するために使われます。詳細は省略しますが、フォーマットの異なるデータもごちゃまぜにして保存できるか、複雑な計算もできるか、などの違いがあります)。
- 自社ウェブサイトや外部CRMツールなどから集めたデータが、データベースなどに自動で保存されるパイプラインの設計。複数の小さな処理プログラムをつなげることで、ひとつの大きな処理系統をつくるのがパイプライン処理です。生のデータはそのままデータベースに収納したり分析したりできないため、パイプラインを通して目的の型にデータを変形します。パイプラインが毎日や週1回などの頻度で自動で実行されるようにし、データベースがクラッシュしないようモニタリングし ます。
- ストリーミング処理。より頻度の高いデータ更新が必要な場合は、新しいデータが入ってくるとパイプラインが直ちに実行されるよう、ストリーミング処理の設定をします。「Kafka」などのツールがよく使われています。
- 分散処理。より大規模なデータの処理にも耐えられるよう、計算を複数のサーバーに分散させて行うことができるHadoopやSparkといったフレームワークを使います。
データエンジニアはあまり目立たない存在で華やかさはありませんが、非常に重要なポジションです。彼らなしではすべてのデータサイエンス関連のプロジェクトはそもそも始めることすらできません。
必要なスキル:コンピューターサイエンス全般、データベース設計、APIの構築
ツール:Linux、SQL、NoSQL、Python、Hadoop、Hive、Spark、AWS、Kafkaなど
Powered by リゾーム?