※ まだ執筆途中です。いつまでも公開しないと書き終えられない気がしたのでアドベントカレンダーが終わるまでには完成させたいと思います🙇♂️
1日2つくらい頑張ります。完成版が見たい方はアドベントカレンダー終わり際に見ていただけますと助かります🙇♂️🙇♂️
以下本文
イベントでデータエンジニアリングについて会話しているとよく言葉の定義を議論することがあります。
実際データエンジニアリング界隈の言葉は複数の意味を持つものがたくさんあり、そもそもデータエンジニアってなんだっけ?みたいな会話が発生しがちです。
言葉の定義は整理しておきたいと思い以前記事を書きましたが、だんだん考え方について書きたくなってきてしまい別の内容になってしまったため、改めてまとめました。
お断り
以下を容認できる方だけ先にお進みください。
- 文字数が多すぎると読むのが大変なので言葉を切り抜かざるを得ません。なるべく掲載元の意図を捻じ曲げないような切り抜きを心がけていますが限界があります。参照元は必ず記載しているため、疑問を感じたら参照元をあたってください。
- 各参照を紹介した後に僕の解釈が載っていますが誤っている可能性があります。
- 誤っていると感じた方からの建設的な批判を歓迎します。
記事の内容
Web サイトや書籍を引用し、読んでわかった傾向など僕自身の視点も追記しています。
定義の説明はすべて日本語で書いていますが、もともと英語だったものが大半です。
機械翻訳したものに目を通して多少変更しています。
以下詳細です。
扱う言葉
- データエンジニアリング関係の言葉
扱わない言葉
- 特定のサービスや製品名
- 例えば BigQuery や Snowflake などは扱いません。
- データリネージのような一般の言葉とサービス名が被っている場合はサービスについての説明は載せません。
- エンジニアリング全般に関係する言葉
- データエンジニアリングに特に関わりの深いものでもなく、エンジニアなら誰でも使うような言葉は扱いません。
- バッチ処理のように特にデータエンジニアリングに関わりが深い言葉は扱っています。
- データサイエンスに関係する言葉
- Machine Learning など扱うか迷いましたが、なかなか広範囲になりそうなのでどちらかと言えばデータサイエンス寄りだと判断した言葉は扱いません。
想定読者
- データエンジニアリングの経験が比較的浅い方
- データエンジニアリングの言葉の定義を網羅的に見直したい方
調べる対象
- Web サイトに掲載の記事のうち以下に当てはまるもの
- 署名記事であること
- 一次情報もしくは一次情報の引用元が明示されていること
- 書籍
想定する読み方
この記事の内容を全て読むのは結構な労力なため、気になるところだけ読むことをおすすめします。
想定している読み方は次の通りです。
- 独断でジャンルを適当に振り分けているため、興味のあるジャンルだけ読む
- 知らない言葉だけ読む
- 様々な定義がある言葉だけ読む
言葉の定義
組織関係
Data Democratization: データの民主化
出典元 | 定義 |
---|---|
databricks | データの民主化とは、組織内のすべての人がデータに(適切に)アクセスできるようにすることであり、データを理解するために必要なツールやトレーニングを提供することです。つまり、すべてのエンドユーザー(従業員、利害関係者、消費者)がデータを扱うことに自信を持ち、特にAIモデルに関して最終結果を信頼できるように、障壁を取り除き、教育を提供することを意味します。 |
trocco | データの民主化(Data Democratization)とは、企業や組織がデータを専門家やエキスパートだけでなく、社内の全てのメンバーや関係者に解放するというコンセプトのことを指します。データの民主化により、組織内のあらゆる立場の人々が必要なデータに容易にアクセスし、その価値を理解し、創造的に活用する能力を備えることができるのです。このアプローチは、単に情報共有を拡大するだけでなく、新たな知識創造と意思決定プロセスの変革を促進します。 |
IBM | データの民主化とは、技術的なバックグラウンドに関係なく、組織内の誰もが必要なデータに簡単にアクセスし、利用し、話し合うことができるようなシステムを構築し、ツールを採用することで、企業がデータ主導の意思決定を行うことを支援するものである。 |
terradata | データの民主化とは何か?その質問に対する101の答えは、「データをユーザーに届けること」である。もう一歩踏み込むと、民主化とは、ユーザーが大きなボトルネックなしに必要なデータにアクセスし、必要な分析を施してそこから真の価値を得ることを可能にする方法であるとも言える。 |
いずれの定義でもデータの民主化が目指しているのは次のような状態です。
- 組織内の多く(全て)の人が
- 適切かつ容易に
- 必要なデータに
- アクセス可能で
- データを活用できる
最後の「データを活用できる」というのは重要で、データだけ用意しても使う人間に分析するスキルなど活用するためのスキルがなければ活きることはありません。
データエンジニアが基盤だけ立派に整えてもデータの民主化にはならず、組織内の多くの人が適切にデータを扱えるよう支援して初めて民主化が実現します。
もちろん分析だけできても正しくデータを扱える基盤がなければデータの民主化は実現しません。
仕事をしているとどうしても自分の持ち場のことばかり考えてしまいがちですが、データの民主化は広範囲にわたる働きかけが必要なため、近視眼的にならず取り組みたいところです。
Data Management: データマネジメント
出典元 | 定義 |
---|---|
DBMOK 第1章 データマネジメント | データマネジメントとは、データとインフォメーションという資産の価値を提供し、管理し、守り、高めるために、それらのライフサイクルを通して計画、方針、スケジュール、手順などを開発、実施、監督することである。 |
IBM | データ管理とは、より良いビジネス成果を得るために、データを安全かつ効率的に収集、処理、利用することである。 |
TechTarget | データ管理とは、組織で作成・収集されたデータを取り込み、保存し、整理し、維持するプロセスである。ITシステムにおける効果的なデータ管理は、ビジネス・オペレーションを実行し、企業経営者、ビジネス・マネージャー、その他のエンド・ユーザーによる意思決定を後押しする情報を提供する上で極めて重要である。 |
Trocco | データマネジメントとは、社内データの管理運用のための取り組みです。具体的には、データを誰でも円滑に活用できる環境を管理・維持することを指します。 |
共通しているのはおおむね次の点であると言えそうです。
- データからビジネス的な価値を引き出すために
- データを管理すること
定義によって簡素なものから細かいものまで様々です。技術職以外の方にもメジャーな単語のためか、ビジネス色の強い記事も含めいろんな記事がヒットしました。署名がないせいでここでは取り上げなかった記事の中にはビジネスの匂いを感じる定義もありました。
データマネジメントという言葉はあまりにも一般的に使われているため、定義をまとめるのが難しいのですが、個人的には DMBOK の定義を推したいです。なにせ本の名前に Data Management と入っているくらいなので、この定義を導くのに苦心したに違いありません。
Data Governonce: データガバナンス
出典元 | 定義 |
---|---|
Driving Data Quality with Data Contracts Chapter5 | データガバナンスには多くの定義があり、組織はさまざまな方法で実施している。大まかに言えば、データガバナンスとは、アクセス可能で、使用可能で、正確で、一貫性があり、安全で、コンプライアンスに準拠したデータをサポートし、促進する、人、プロセス、標準、テクノロジーの組み合わせである。 |
DMBOK 第3章 データガバナンス | データ資産の管理(マネジメント)に対して職務権限を通し統制(コントロール)することである。統制とは計画を立て、実行し、それを監視し、徹底させることを指す。正式なデータガバナンス機能を持っているかどうかにかかわらず、組織というものはデータに関する何らかの意思決定をしている。正式なデータガバナンス機能が導入されれば、より明確な意図のもとに職務権限と統制を行使できるようになる |
pwc | データガバナンスは、データ資産のプライバシー/セキュリティの担保、法的規制要件への対応、データ品質/信頼性の改善、組織横断的なデータ利活用などの各領域に対して、計画とルールを提供します。また、組織の事業戦略とデータマネジメントの戦略を一致させることもデータガバナンスの役割です。 |
IBM | データガバナンスは、組織のデータの品質、セキュリティ、可用性に焦点を当てたデータ管理の規律である。データガバナンスは、データの収集、所有、保存、処理、使用に関する方針、基準、手順を定義し、実施することによって、データの完全性とデータセキュリティを確保するのに役立つ。...データガバナンスはデータマネジメントのサブセットであり、戦略的意思決定をサポートし、ビジネス成果を向上させるために、データを安全かつ効率的に収集、処理、利用する包括的な実践である。 |
共通しているのは以下の点でしょうか。
- データ管理に対する
- 計画と規律
データマネジメントとデータガバナンスがよく混同されているイメージがあるのですが、 DMBOK や IBM が明確に書いてくれています。
IBM は上記で書いたとおりですが、DMBOK には次の記載があります。
データマネジメントは全体として組織がデータから確実に価値を引き出すために実施されるが、データガバナンスはデータに関する意思決定の方法と、人と業務プロセスがどのようにデータと関わるべきかに焦点を当てている。
データガバナンスはデータマネジメントのサブセットで、データマネジメントを実現するための仕組みの1つであると理解しています。
職種関係
職種関係の言葉を調べるとキャリア系の記事がヒットしやすく、調べるのが大変でした。
また 〇〇 engineer とかで調べると 〇〇 engineering のほうがヒットしてしまい、かといって engineering を除外すると資格試験の記事ばっかり引っかかってこれまた大変でした。
Data Enginner: データエンジニア
出典元 | 定義 |
---|---|
IBM | データ・エンジニアは、データ・アーキテクチャとパイプラインの開発と保守を行う。基本的には、データを生成するプログラムを構築し、そのアウトプットが運用や分析にとって意味のあるものであることを保証する方法を目指す。 |
データエンジニアリングの基礎 | データエンジニアは、データエンジニアリングライフサイクルを管理する。データエンジニアリングライフサイクルは、ソースシステムからのデータ取得に始まり、分析や機械学習などへのデータ提供に終わる。 |
striim | データエンジニアは、データの収集、管理、変換、アクセスのためのデータインフラの設計、保守、最適化を担当する。データエンジニアは、生データをデータサイエンティストや他のデータ利用者が利用できる形式に変換するパイプラインの作成を担当する。 |
trocco | 精確なデータ分析には、整合性が保たれたデータセットと、それを効果的に処理できる技術的基盤が必要不可欠です。データエンジニアは、データのライフサイクル全体を通じて、この基盤の構築やデータの管理・整理・分析の最適化を担います。データエンジニアの役割は、収集したデータをインサイトに転化することによって、企業の戦略的意思決定を支えることです。 |
Deciphering Data Architectures Chapter 15 | (MDW, Data Fabric, or Data Lakehouse といったデータアーキテクチャの構築において)データアーキテクチャの構築、テスト、保守を担当。さまざまなソースからデータソリューションにデータを抽出、ロード、変換(ELT)するスクリプトを作成し、データアーキテクトと密接に連携して設計されたアーキテクチャを実装する。 |
この記事を読んでいる人はデータエンジニアの方が多いと思うのですが、何を持って自分をデータエンジニアと呼ぶか考えたことのある方が多いのではないでしょうか。
僕自身はデータ加工パイプラインを作ったあたりからデータエンジニアを名乗り始めましたが、データの管理の部分はあまり注力していなかったように思います。
Analytics Engineer: アナリティクスエンジニア
出典元 | 定義 |
---|---|
IBM | アナリティクス・エンジニアは、データソースを統合的な洞察の推進を可能にする方法でまとめます。誰もがこれらのシステムを使用して継続的に質問に答えることができるように、データをきれいで明確な方法で繰り返しモデル化できるシステムを構築する作業を行う。dbt Labsのあるアナリティクス・エンジニアは、アナリティクス・エンジニアリングの重要な部分は、「難しい問題を一度解決すれば、そのソリューションから無限に利益を得ることができる」ことだと述べている。 |
dbt | アナリティクス・エンジニアは、エンドユーザーにクリーンなデータセットを提供し、エンドユーザーが自らの疑問に答えられるようにデータをモデリングします。データアナリストがデータの分析に時間を費やすのに対し、アナリティクスエンジニアはデータの変換、テスト、デプロイ、文書化に時間を費やします。アナリティクスエンジニアは、バージョン管理や継続的インテグレーションといったソフトウェアエンジニアリングのベストプラクティスをアナリティクスのコードベースに適用します。 |
よくデータエンジニアとデータアナリストの間などと言われる印象の強いアナリティクスエンジニアです。
色々調べている中では2018年頃からこの職種が登場したという記事を見つけました(署名記事じゃなかったので引用は載せません)。
定義を調べると多くが dbt の定義を参照しているようでした。
データエンジニアがデータ基盤の構築・管理を中心とした生業とするのに対して、アナリティクスエンジニアはデータモデリングを中心とした生業といったところでしょうか。
終わりに
※本文を書き終わったら書きます。