その他
開発者向けデータツールランドスケープガイド
Guide to data tools landscape for developers (sinja.io)
要約
データプロジェクトに参加したものの、専門用語に戸惑う開発者向けに、データツールの世界を概観するガイドです。データアナリスト、データサイエンティスト、データエンジニアといった職種の違いや、データの抽出・変換・ロード(ETL)を中心としたデータライフサイクルにおける各ツールの役割を解説します。この記事は、データチームの会話を理解したい開発者を対象としており、ツールの詳細な設定方法や比較には踏み込みません。
全文翻訳
開発者向けデータツールランドスケープガイド
データプロジェクトに参加したものの、彼らが何を話しているのか全く分からないと感じたことはありませんか?オフィスのキッチンでの楽しい会話から疎外されていると感じますか?もし、すべての概念とバズワードを網羅した巨大なガイドがあれば良いのに…
しばらく前、私はDeepnoteにソフトウェアエンジニアとして入社しました。Deepnoteはデータチーム向けのクラウドノートブックを作成しています。しかし、私はデータに関するバックグラウンドがありませんでした。しかし、ノートブックが何であるかは知っており、この種のプロジェクトに取り組むのは面白いだろうと思っていました。データ分野がソフトウェアエンジニアリングからそれほどかけ離れているとは思っていませんでした。それらは隣接する分野だと常に考えていました。入社してすぐに、私はデータについて何も知らないことに気づきました!ノートブック以外にもデータツールは非常にたくさんあり、それらが何に使われているのか、データサイエンスにおける一般的な作業プロセスは何なのか、全く分かりませんでした。そして、さまざまなデータツールが通常どのように使用されているのか、またはノートブックとどのように連携するのか分からない場合、ノートブックの良い機能を提案したり、問題のあるUIフローを特定したりすることはできません。しかし、何十もの記事を読み、同僚やインターネット上の見知らぬ人に質問をぶつけ、ワークフローやクライアントの苦労を研究し、そしてこの新しい知識を内面化する時間を自分に与えた後、状況は改善しました。残念ながら、データ企業にいて、これらの言葉の意味が全く分からないソフトウェアエンジニアのための便利な「データツールガイド」はありませんでした。あるいは、見つけられなかっただけかもしれません。私はもうノートブックには携わっていませんが、データに魅了されたため、次の仕事もその分野でした。今回は、科学タイプではなく分析タイプのエキスパート向けのツールに取り組んでいます(次の章で説明します!)。しかし、データツールとプロセスに関する一般的な知識は依然として非常に役立ちます!そこで、それを読みやすい記事に凝縮しようと試みました。そして、迷子のソフトウェアエンジニアがもう少し快適に感じられることを願っています。
この記事は誰向けか
ご想像の通り、私はデータスペシャリストになること自体にはあまり興味がありません。そのため、この記事では、例えばMetabaseでダッシュボードを作成する方法、統計学の基本、またはSparkクラスターを管理する方法などは扱いません。データチームの連中が一体何を言っているのか(wtf)を学ぶ必要がある開発者を対象としています。この記事では、データライフサイクルを簡単に見ていきます。データはどこから来て、どのように処理され、どのように保存され、どのように表示されるのか。各ツールがどのステージに属し、データに関わる人々にとってどのようなタスクを解決するのかを理解できるようになります。各ツールの設定方法の詳細や、同じクラス内のツールの詳細な比較には踏み込みません。信じてください、この記事はそれらの詳細に立ち入らなくても、すでにかなり長いです。
データ専門職のフレーバー
データの世界には、かなりの数の異なるポジションがあり、1つのポジションが別のポジションとどのように正確に異なるかは常に明らかではありません。特に中小企業やチームでは、線引きは非常に曖昧です。しかし、この記事の目的のために、あなたが理解する必要があるのは、大まかに4つのタイプのデータ専門職があるということです。
分析タイプ
これは、データを解釈し、そこから洞察を得ようとし、それを提示する人物です。多くの場合、これはデータアナリストまたはBIアナリストのポジションになります。彼らは通常、SQLとスプレッドシートに精通しています。彼らはTableauのようなさまざまなビジネスインテリジェンス(BI)ツールやExcelのようなスプレッドシートソフトウェアを使用します。例として、顧客データをSQLで抽出し、地域ごとの解約率を計算します。次に、解約トレンドを示すTableauダッシュボードを作成し、マーケティング担当者にキャンペーンの提案とともに結果を提示します。
科学タイプ
これは、表面的なレポートよりも深く掘り下げる人物です。彼らは統計を適用し、モデルを構築し、実験を実行して、あまり明白でない質問に答えたり、予測を行ったりします。多くの場合、これはデータサイエンティストのポジションになります。彼らは通常、Pythonとその科学スタック(pandas、scikit-learnなど)に精通しており、ノートブックで頻繁に作業します。例として、同じ顧客データを取得し、どの要因が解約と相関しているかを調査し、各顧客が離れる可能性を推定する統計モデルを構築します。次に、キャンペーンのA/Bテストを設計し、それが実際に効果があったかどうかを分析します。
エンジニアリングタイプ
これは、データのインフラストラクチャに関心がある人物です。彼らの主な仕事は、データをそもそも分析可能にすることです。さまざまなソースからデータを抽出し、クリーニングして標準化し、ウェアハウスまたはレイクにロードして、分析タイプや科学タイプが実際に作業できるようにするパイプラインを構築および保守します。彼らはまた、データベースの保守や、組織で使用される可能性のある他のデータツールの管理を担当することもよくあります。通常、このポジションはデータエンジニアと呼ばれます。彼らの仕事のもう1つの側面はスケーリングです。科学タイプや分析タイプによって生成された特定の作業はスケーリングされる必要があります。たとえば、アナリストからの簡単な分析は、リバースETLパイプライン(心配しないでください、これらの用語は後で説明します)に変換される可能性があり、これは信頼性高く繰り返し実行される必要があります。彼らはしばしばPythonを使用し、Apache Spark、さまざまなデータベースやウェアハウスのようなツールで作業し、これらのツールをホストするためにクラウドプロバイダーを使用します。例として、複数のソースから顧客トランザクションデータを取得するデータパイプラインを保守し、スキーマを標準化してウェアハウスにロードします。次に、アナリストが顧客データを効率的に抽出できるようにクエリを最適化し、欠落している顧客レコードをフラグ付けするためのデータ品質チェックを追加します。
機械学習タイプ
このタイプのスペシャリストは、さまざまな問題を解決するために使用できるAIモデルの構築と保守に焦点を当てています。ウェブサイトのボットトラフィックを検出するのに役立つ小さな分類モデルである場合もあれば、会社がトレーニングまたはファインチューニングしたより一般的な大規模言語モデルである場合もあります。一般的な説明を見ると、このタイプは前のタイプと本当に重複しているように見えるかもしれません(彼らもデータを分析し、パイプラインを構築します)。しかし、私が学んだことから、彼らはしばしば非常に異なるツールのセットを使用しており、それが彼らを上記のタイプから分離しています。ここでは、複数のタイプのスペシャリストを1つのグループにまとめています(MLには独自の科学者とエンジニアがいます)。なぜなら、この記事ではML関連のトピックをカバーしないからです(私自身、最初からあまり関連性がなく、この分野の部分に関する知識が限られているためです)。しかし、それはまだデータランドスケープの一部なので、完全に省略したくはありませんでした。このタイプの例は、オンラインショップの製品レコメンデーションモデルを構築することです。ウェアハウスからトレーニングデータを収集し、モデルをトレーニングおよびチューニングし、次にAPIの背後にデプロイして、ウェブサイトがリアルタイムでパーソナライズされたレコメンデーションをリクエストできるようにします。デプロイ後、モデルの予測を監視し続け、顧客行動の変化に合わせてパフォーマンスを維持するために定期的に再トレーニングします。
データライフサイクル
データ分野はデータ(驚くことではありません)を中心に展開しています。大小、醜いものも美しいものも。すべてはどこかからデータを取得し、それを何らかの方法で処理し、結果をどこかに配置することから始まります。それが本当にすべてです。私のTEDトークを聞いてくれてありがとう。もちろん冗談ですが、それはETLを説明しています。ETLはExtract-Transform-Loadの略で、生のデータがソースから抽出され、変換され(例:クリーニング、他のデータとの結合)、結果がさらなる使用のために最終的な宛先にロードされる、一般的なデータ処理プロセスを説明しています。非常に一般的なアプローチですが、それは固定されたものではありません。ステップは順序を変更したり、繰り返したり、重複したりすることがあります。たとえば、代替のアプローチ(そして非常に人気のある)はELTです。これを使用すると、データを抽出し、直接ウェアハウスに配置し、次にウェアハウス内で直接変換します(結果は異なるテーブルセットに格納されます)。これは(本文が途中で切れています)