ピーナッツバターとゼリーのように、ETLとデータモデリングは相性の良い組み合わせです。
- データ・モデリングは、データ・オブジェクトを分析し、それらの関係を把握します。データオブジェクト(SaaSデータベースではベンダーや顧客)の理論的な表現を生成し、オブジェクトをどのようにシステムに格納するか、テーブル間の関係のルールを定義します。
- ETL(Extract, Transform, Load)は、上記のルールを適用し、異常がないかどうかをチェックします。これによりデータを分析可能な状態にすることができます。そして、そのデータをデータウェアハウスにロードします。
データを適切にモデリングしたいのであれば、データモデリングはETLなしでは成り立ちませんし、ETLはデータモデリングなしでは成り立ちません。この2つを組み合わせることで、データ変換のルールを定義し、ビッグデータ分析のためのデータを準備することができます。
ビッグデータの時代、企業は顧客についてこれまで以上に多くのことを知り、新しい製品やサービスの開発機会を見出すことなどが可能になります。しかし、正確なデータ分析を行うためには、アナリストは断片化された情報の関係性や、データがシステム内でどのように流れるかを理解する必要があります。したがって、ETLデータモデリングは、異種のツールやプラットフォーム間でのデータ集約に不可欠です。
Integrate.ioのコード不要のポイントアンドクリックETLソリューションは、企業におけるデータモデリングを最適化します。選択したデータウェアハウスのためにデータを準備し、より良い分析とデータ品質を生み出します。Integrate.ioの14日間のトライアルおよびオンラインデモについては、右上のデモリクエストボタンよりお申し込みください。
なぜETLでデータモデリングが必要なのか?
データウェアハウスの主な目的は、アナリストが簡単にデータを照会し、ワークフローのためのリアルタイムのインサイトを収集できるようにすることです。そのためには、データの信頼性とアクセス性が必要です。
データモデリングは、情報を視覚的に表現することで、信頼性の部分を実現します。データモデリングでは、キーを用いて、エンティティの整合性と参照の整合性に対応します。
- エンティティの整合性とは、あるエンティティ内のデータの信頼性を表します。
- 参照の整合性とは、エンティティ間のデータの信頼性のことです。
ここでは、2つのエンティティ(データの世界では「テーブル」)を例に挙げて説明します。ベンダーと製品です。
データの整合性を保つために、それぞれのテーブル内の各ベンダーと各製品には、固有のIDが設定されています。これは、データの重複を避けるための規定です。データモデリングでは、プライマリーキーの助けを借りてそれを実現しています。ベンダーと製品の間のデータの信頼性を実現するために、データモデリングは外部キーを使用します。外部キーとは、あるテーブルのプライマリーキーが別のテーブルに存在することです。この例では、あるベンダーのユニークキーによって、そのベンダーが製造するさまざまな製品を識別することができます。
ここで重要なのは、ETLの「変換」とデータモデリングの違いです。後者は、テーブル間の関係のルールを定義します。ETLはそのルールを適用し、異常がないかをチェックして、データウェアハウスにロードされる前にデータが分析できる状態にします。この2段階のプロセスにより、データ変換が最適化されます。
ETLデータモデリングがビジネスインサイトを促進する方法
データウェアハウスの最終目的は、ビジネスインテリジェンスを促進することです。単純に、ある製品の前年比の売上高を照会すれば、ビジネスの状況に関する基本的な情報を得ることができます。しかし、異なる属性やイベントなどに合わせて販売数を照会できるようになれば、面白いことになります。
そのためには、データの集約が必要です。トランザクションシステムは、集計作業には適していません。CRMソフトウェアやERPのようなトランザクションシステムは、売上やページ訪問などのトランザクションやイベントを記録します。トランザクションシステムの主な目的は、データの保持です。このようなデータベースは、データ分析には適していません。
そこで登場するのがディメンショナルモデリングです。ディメンショナルモデリングでは、ファクトテーブルとディメンションテーブルという2つのキーコンセプトを使用します。
- ファクトテーブルには、ユーザーが分析する必要のあるデータが格納されています。このデータは、売上、利益、商品原価などの定量的なものです。
- ディメンションテーブルは、ユーザーがテーブル内のデータを分析するためのさまざまな方法に関する情報を保持します。ディメンションテーブルは、システム内のファクトに記述的なコンテキストを提供します。
ディメンショナルデータモデルには、OLAPやOLTPなど様々なアプローチがあります。
ETLデータモデリングでは、スタースキーマを使用して、ファクトとディメンションの間にブリッジを構築します。スタースキーマは、ディメンションの組み合わせにより、それぞれのディメンションテーブルを作成します。これらの組み合わせは、いずれもファクトテーブルの正確に1レコードに対応する必要があります。これにより、2つの目標が達成されます:
データの二重化の回避
- 集約と分析のプロセスを高速化する。
しかし、最近のデータウェアハウスでは、スター型スキーマを廃止し、多くの列を持つワイドテーブルを採用しています。
Recommended Reading: ETL vs ELT: 5つの重要な違い
ETLデータモデリングのベストプラクティス
ETLデータモデリングは、データ分析のために次のような問題に対処する必要があります。
- 簡単な結合でデータを照会できること。
- データ構造は、常にデータの一意性を確保する必要がある。
- データモデルは、ファクトテーブルの定期的かつ累積的なスナップショットを使用して、データの詳細なクエリを可能にする必要がある。
これらの問題を解決するためには、2つの重要な検討事項があります:
1) マテリアライゼーション
マテリアライゼーションとは、クエリの応答時間を改善するためにデータを事前に集約するプロセスです。事前集計は、複数のテーブルを含むスタースキーマとは対照的です。事前にデータを集約することで、テーブルの数を減らし、カラム数を増やすことでテーブルの幅を広げます。この方法は、エンドユーザーがクエリを書くのを容易にし、単純な結合処理の課題を解決します。
現実の世界では、マテリアライゼーションと一部のデータを未集約のままにしておくことの間には、しばしば妥協点があります。一般的なルールとして、システム内の高コストな結合処理(応答時間の観点から)は、マテリアライゼーションに適した候補となります。
2) データの粒度
テーブルやビューの粒度とは、そのテーブルやビューの1つの行が何を表すかということです。例えば、customersという名前のテーブルでは、粒度は1人の顧客になります。したがって、各顧客はテーブル上に行を持ち、顧客ごとにちょうど1つの行があります。これは、データシステムにおける粒度の非常に単純な例です。
しかし、粒度は複雑になる場合があります。subscription_statusというテーブルがあり、各ステータスごとに加入者1人につきちょうど1つの行があるとします。ステータスには、 renewed、about to expire、expired などがあります。ここでは、各サブスクライバーには、サブスクリプションのステータスを反映した複数の行が関連付けられています。
システムの粒度は、テーブルを組み合わせてデータ分析問題を解決することがどれだけ容易かもしくは困難かを決定します。効果的なデータモデリングのためには、まずテーブルやビューの粒度を決定し、それに明確な名前を付けることが重要です。
ETLプロセスの説明
データモデリングによってテーブル間の関係性のルールが定義されると、ETLツールはそのルールを適用し、異常がないかどうかをチェックします。このプロセスにより、データウェアハウスや分析に必要なデータを確保します。
ETLシステムは次のような仕組みになっています:
- 事前に定義されたデータソースからデータを抽出します。
- データを正しいフォーマットに変換します。
- Snowflake、Amazon Redshift、Microsoft Azure SQL Database、Oracle Autonomous Data Warehouseなどのデータウェアハウスにデータをロードします。
- (またはデータレイク)
この時点で、データはビジネスインテリジェンス(BI)ツールで分析する準備が整います。そして、意思決定者、マーケティング担当者、ビジネスアナリストなどが、新しいデータを利用して、日々のワークフローを高速化したり、リアルタイムのインサイトを生成したり、ビジネスの成長を予測したりすることができるようになります。
Recommended Reading: Top 5 Business Intelligence Platforms
ETL処理の最中には、他のプロセスも行われます。このプロセスには、ソースデータを評価し、その可能性を識別し、構造を理解するプロセスであるデータプロファイリングが含まれます。
ETLには多くの人が参加し、それぞれが特定のタスクを担当します。データエンジニア、データサイエンティスト、データアーキテクトなど、多くの人がETLに関わっています。ETLプラットフォームを使用することで、プロセス全体を簡素化することができます。詳しくは後述します)。
ETLデータモデリングの課題と解決策
従来のデータモデリングは、構造化されたデータを扱うリレーショナルデータベースの構築を対象としていました。しかし、ビッグデータの台頭により、ユーザーが分析しなければならない大量の非構造化データが登場するようになりました。この非構造化データには、IoTデバイスからのデータなど、あらゆる種類のマシンデータが含まれています。
最新のデータモデルは、パブリッククラウド、プライベートクラウド、オンプレミスのアーキテクチャに分散したデータリポジトリに対処しなければなりません。データセットはより速く移動するとともに、より複雑になっています。
データモデリングアルゴリズムは、この課題に取り組むための有効な手段です。機械学習、統計的アルゴリズム、人工知能の利用により、ユーザーはデータモデリングのプロセスを自動化することができます。ユーザーはリレーションシップやデータ構造を定義するという時間のかかる作業から解放され、その代わり、ユーザーは、データを使用して洞察力を引き出すというビジネスに集中することができます。
Integrate.ioによるETLデータモデリングの支援方法
ETLデータモデリングは、データドリブン型のチームに多くの課題をもたらしますが、最大の障害は、おそらくコーディングでしょう。ETLデータモデリングを行うためには、データエンジニアリングチームが複雑なデータパイプラインを一から構築する必要があり、このプロセスには多くのプログラミングが必要です。しかし、組織内にエンジニアリングチームがいなかったり、コードを知らないメンバーばかりだった場合どうなるでしょうか?
Integrate.ioはその解決策を提供します。Integrate.ioは、あらかじめ組み込まれたデータ変換機能を備えた、ノーコードおよびローコードのETLプラットフォームで、複雑なデータ準備をシンプルにします。これまで数日、数週間かかっていたデータパイプラインの構築が数分で完了します。SQLやJavaなどのプログラミング言語も必要ありません。
ETLデータモデリングのもう一つの課題は、データの検証です。この課題は、GDPR、HIPAA、その他のデータガバナンスフレームワークの時代には特に問題となります。チームは、データが関連する法律に準拠していることを確認する必要があり、コンプライアンス違反には高額のペナルティが課せられます。
Integrate.ioは、データウェアハウスの前にデータを検証し、変換することで、コンプライアンスを大幅に改善します。また、データを使用可能なフォーマットに変換するので、選択したウェアハウスとの互換性があります。Integrate.ioは、メタデータ、SaaSデータ、CRMデータ、データウェアハウス、データレイク、Microsoft SQL Serverのようなリレーショナルデータベース管理システムなど、さまざまなデータソースやソースシステムからのデータを簡単に検証することができます。
結論として、ETLデータモデリングはデータドリブン型チームに複数のメリットをもたらしますが、そのプロセスは複雑です。Integrate.ioのようなノーコードおよびローコードのソリューションを使用すると、データモデリングに関連する多くのタスクが自動化され、データの種類に関係なく、より優れた分析が可能になります。
Integrate.ioのポイント&クリックプラットフォームは、データモデリングとETLプロセス全体を合理化し、ビッグデータパイプラインを数分で作成します。Integrate.ioの14日間のトライアルを希望される方は、オンラインデモをご予約ください。