データ活用の重要性が高まっている今、データ基盤の重要性も増しています。
データ基盤を構成するシステムには、オンプレからクラウドまで様々な技術の選択肢があります。
今回は、「Google Cloudではじめるデータエンジニアリング入門」を題材に、Google Cloud(以下GCP)の技術を利用したデータ基盤について解説します。
著書では、データ基盤の概要について、各コンポーネントで利用するGCPサービスについての説明が詳しく書かれています。
目次
データ基盤の必要性
データ活用では、様々なデータを利用します。例えば、売上、ユーザー属性、行動ログを組み合わせたレポートを作成する場合、3つのデータが必要となります。
データはいろいろな場所にありますから、それぞれ取得する手間がかかります。また、そのまま使えることはほぼないため、レポート用に加工する作業も必要です。
こうしてできたレポートを、別の部署ではユーザー属性ではなく、商品別に見たいとなった場合はどうでしょうか。
この場合もデータをそれぞれ取得し、レポート用に加工しなければなりません。
異なるのは売上の切り口だけなのに対して、同じような集計作業を一からしなければなりません。
また、レポート同士の数値が異なる場合、原因を突き止めるのにも時間がかかります。(①)
これ以外にも、分析で利用したいIoTデータが利用できる状態ではない(②)、機械学習に使いたいデータにアクセスできない(③)といったことも起こりえます。
データ基盤で大事なこととして、著書では以下のように定義しています。
データ基盤として「早く、正しく、確実に」データを集める機能に加えて、「適切な権限管理のもとでデータ基盤が開放されている」という状態が重要だとわかります。
データ基盤の全体像
必要なデータをすぐに使える状態で保管するシステムがデータ基盤です。
現在主流なデータ基盤の全体像を、著書では画像のように定義しています。(著書で利用している図とは異なります)
必要なデータが一箇所にあることによって、それぞれ集めて集計する手間が省かれ、データ活用に集中することができます。
画像では各コンポーネントで主に利用されるGCPのサービスを反映しています。
▼それぞれのコンポーネントの役割
コンポーネント | 説明 | サービス |
---|---|---|
データレイク | 様々なデータソースを保存する場所。構造化・非構造化データを保管し、加工はせずそのままの状態で格納する。 | BigQuery Google Cloud Storage |
データウェアハウス | データ活用をしやすいように整形・加工したデータを保存する場所。 | BigQuery |
データマート | データ活用に最適化されたデータを保存する場所。ビジネスロジックを含み、レポートで利用するデータ、機械学習で利用するデータなど多岐にわたる。 | BigQuery |
ETL/ELT | データを整形・加工する処理。 ETLは抽出→変換→取り込み、ELTは抽出→取り込み→変換の順番で処理する。 | Dataflow(ETL) Dataproc(ETL) Dataform(ELT) |
ワークフロー | データの取り込みから出力までの処理全体を管理する。Aを実行したらBを実行するなど、依存関係も定義する。 | Cloud Composer Cloud Data Fusion |
ストリーミング処理 | リアルタイムで同期する処理。IoTデータや行動ログなど、数秒単位でデータを取得したい場合、ストリーミング処理が必要。 | Dataflow Pub/Sub |
メタデータ管理 | データウェアハウス・データマートに格納されているデータの管理。 テーブルやカラムに関する定義、カラムの属性やアクセス権、データ同士の関連性などを管理する。 | Data Catalog |
著書では、これらのデータ基盤をはじめから全て用意する必要はないとしています。
データ基盤はあくまでもデータ活用のためのものであり、データ基盤自体にビジネス価値があるわけではありません。
使われてこそのデータ基盤なので、どういった用途で使われるのかをしっかり把握することが大切です。
そこから少しずつ必要なコンポーネントを構築していき、常に使いやすい状態に保つよう運用していきます。
クラウドでは、必要なところから最小限でスタートができるメリットも大きいです。
まとめ
データ基盤の必要性と全体像について解説しました。
著書では1章までの内容となります。2章から11章にかけて、データレイクやデータウェアハウスなどで利用するサービスについての説明がされています。
次回はそれぞれのコンポーネントについて解説していきます。