Denodo Platform 9.1 が登場！ Denodo を"さらに"活用するためのポイント2つ

こんにちは、インサイトテクノロジーの松尾です！

本投稿では、データ仮想化を活用した論理的なデータ統合、データ管理、データ配信のソリューションである Denodo Platform の概要、並びに、Denodo Platform をさらに活用する観点として以下の2つのポイントについてご紹介します。

* メタデータの整備を効率化
* ソースに対する負荷への配慮

なお、弊社インサイトテクノロジーでは Denodo 社のパートナーとして Denodo Platform の紹介、販売、導入などを行っています。Denodo Platform に興味を持たれた方はぜひ弊社または Denodo 社までお問い合わせください。

https://www.insight-tec.com/products/denodo/

## Denodo Platformとは

Denodo Platform は、データ仮想化を活用した論理的なデータ統合、データ管理、データ配信のソリューションです。国内でも大手企業を中心に多くの企業で採用されています。

https://www.denodo.com/ja/denodo-platform/denodo-platform?utm_source=partner_lead_InsightTech

https://www.denodo.com/ja/press-release/2022-08-31/denodo-japan-momentum.html2022-08-31/denodo-japan-momentum.html?utm_source=partner_lead_InsightTech

### DX基盤整備の課題 (おさらい)

DX基盤整備における一般的な課題について、改めておさらいとしてここにあげさせていただきます。

#### 利用者
* そもそもどこに欲しいデータがあるのかわからない
* テーブル名やカラム名を見てもどんなデータが入っているのかわからない
* 統合基盤はあるが、入っているデータの鮮度が低い
* 参照したいデータを追加してもらうのにリードタイムが数週間かかる

#### システム管理者（インフラ担当/運用担当）
* 分析ツール用のデータをそれぞれ分析用データベースにコピーして保持しているため、Disk容量が大変なことに・・・
* 同じような構造のデータが乱立
* 使われていないマート、ビュー等の整理ができない/整理に時間がかかる
* 誰がどのデータにアクセスしているのかが整理できていない（不明）

システム管理者から見ると、いわゆる一般的な物理系なデータのコピーを伴うデータ統合の場合、それぞれの分析用のデータとしてコピーを保持するため、必要な Disk 容量が肥大化するという問題がおこりやすくなりますし、様々なデータソースから一か所にデータを実際に集めるために整備するデータパイプラインも、非常に骨の折れる作業になりそうであろうことは容易に想像できます。

### Denodo を使うと、、、

これに対して Denodo を利用すると、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/4281b00d-3992-2232-001c-1b17ed4cb883.png)

* 物理コピーを持たないという仮想統合の仕組みにより、必要なストレージサイズの肥大化を抑制することが可能
* ビューへのアクセス権限は一括管理でき、データの利用側としても、Denodo にアクセスすれば必要なすべてのデータを取得することが可能
* データカタログの機能により、データを探し出し簡単に利用する仕組みを整備可能
* すでに整備済みの基盤も Denodo での一データソースとして扱うことで、無駄にせずに他のデータソースと紐づけて利用可能
* "現在の"データの取得のためのソースへのクエリ発行で懸念される、ソースへの負荷についても、高機能なキャッシュの仕組みを利用可能

すなわち、、、

Denodo を利用することで、データソースの追加や変更も、複雑なパイプライン構築ではなく、Denodo 内で仮想的なビューを定義して解決するためにスピーディに実施でき、DXを加速させること人つながると言え、将来的な拡張性をもたせた、DX基盤の構築・運用が可能となります。

## 一方、、Denodo をさらに活用するためには

一方、Denodo をさらに活用するためには、という観点で、本投稿では以下の２つの要素を取り上げたいと思います。

### メタデータの整備を効率化したい

ここでいうメタデータとは、Denodo で定義するビューの説明などのことを言っています。
Denodo で定義した仮想的なデータウェアハウス。これを利活用するためにデータカタログの機能がありますが、定義するビューに適切な説明が設定されていないとそのビューが何者かはわかりません。そのため、Denodo を利活用するためのカギの一つとして、メタデータの整備はとても重要なポイントの一つとして考えられています。
一方、これまでのバージョンでは、人手で説明を整備していく必要があったため、メタデータの整備の効率化が望まれていました。これについて、Denodo Platform 9.1 では、AI を活用したメタデータ整備の機能がリリースされており、メタデータの整備の大幅な効率化が期待できます。

### ソースへの負荷が気になる

Denodo の論理データ統合の基本的な考え方は、仮想的なデータウェアハウス内にはデータを持たず、クライアント側でデータが必要な時にソースへクエリをなげてデータをとってくる、という考え方になります。ソースに “いま” 存在するリアルなデータを取得できる反面、負荷のかかるようなクエリがソースに投げられた時の影響が気になるというのも事実だと思います。
Denodo では、これらへの対策として高機能なキャッシュの仕組みを提供しており、ソースへ負荷をかけたくないデータソースに対してはキャッシュからデータを取得するという動作をさせることが可能です。一方、あらかじめキャッシュへデータをためておく挙動となるため、キャッシュを利用する際にはある程度データの鮮度を犠牲にせざるを得ないという側面もあります。ソースへの負荷をかけたくないが、リアルタイムにデータを参照したい場合にはどうすればいいか？それに対するアプローチの一つが、仮想&物理アプローチです。

では、ここからは、この2つの観点について、さらに詳細に紹介させていただきます。

## Denodo Platform 9.1 で AI 利用がさらに進化！ - メタデータの整備を加速する Denodo Assistant -

2024年11月、Denodo Platform 9.1 がリリースされました！
新バージョン9.1での機能追加のハイライトとして、Denodo のサイトでは大きく３つのカテゴリが紹介されています。

* Denodo Assistant によるインテリジェントデータファブリックの実現
    * Denodo Platform 9.1 では、インテリジェントなデータファブリックのビジョンを完全に実現するAI搭載のツールキットである Denodo Assistant が導入されています。Denodo Assistant は、データ関連のタスクを強化または自動化する AI 搭載の機能により、多様なデータソースをインテリジェントに接続し、管理します。
* レイクハウス統合とクエリパフォーマンスの強化
    * Denodo Platform 9.1 は、パフォーマンスを向上させ、最新のデータアーキテクチャ、特にクラウドベースのレイクハウスのサポートを拡大しています。これらの機能強化により、組織はデータインフラストラクチャを最適化し、大規模なデータ環境のコストを軽減し、クエリ速度を向上させることができます。
* 生成AIを活用した次世代のエージェントとアプリケーションの加速
    * Denodo Platform 9.1 では、開発者がAIを活用したアプリケーションやエージェントをより迅速に支障なく作成できるようにするオープンソースのツールキットである Denodo AI SDK を導入しています。

https://www.denodo.com/ja/denodo-platform/whats-new?utm_source=partner_lead_InsightTech

本投稿では、特にメタデータの整備に重要な Denodo Assistant についてご紹介します。

> Denodo Assistant は、従来の機械学習や 生成AIを含む AI 技術を活用し、データエンジニアや利用者の作業負担を最小限に抑えることで、データ管理を変革します。

https://www.denodo.com/ja/solutions/by-capability/denodo-assistant?utm_source=partner_lead_InsightTech

Denodo Assistant は Denodo Platform 9.1 の前から生成 AI を使った機能としてリリースされていたものも含めると多くの機能があります。

* Assisted Query (※9.0で追加された機能)
* Data Preparation Wizard
* ビューと列の説明に関する提案
* クエリウィザードの推奨事項
* VQL Shellのインテリジェントオートコンプリート
* LLM ベースのデータエンリッチメント
* 推奨データセット (既存機能)
* 自動サマリー推奨 (既存機能)

本投稿では、3番目のビューと列に関する説明の提案機能に加え、それを利用した Assisted Query 機能についてご紹介させていただきます。Assisted Query 機能自体はバージョン9.0で追加された機能ですが、メタデータの整備がきちんとされてこそ、力を発揮する機能だと思いますので、ここで改めて紹介させていただくことにします。

この2つについてさらに詳細に説明すると、それぞれ以下のような機能となります。

* ビューと列の説明に関する提案：データの中身からビューの説明やフィールドの説明を生成
    * Denodo Assistant は、AI を使用してビューと列の意味のある説明を自動的に生成し、データ資産の作成と理解を容易にします。これにより、データの明確性が向上し、組織全体のコラボレーションが促進され、より迅速なオンボーディングが可能になり、より効果的なデータガバナンスにつながります。
* Assisted Query (※9.0で追加された機能)：自然言語からクエリを生成
    * Denodo Assistant は、ChatGPT やその他の生成AIプラットフォームとのシームレスな統合により、ビジネスユーザーが自然言語でデータをクエリすることを可能にするため、複雑なクエリを書く必要がなくなります。これにより、質問をするのと同じくらい簡単にデータを扱うことができ、ユーザーはIT部門のサポートを必要とせずに、すぐにインサイトを得ることができます。

ではどんなことができるか実際の実行例をもとにご紹介します。

サンプルのテーブルとして以下のようなデータが入っているテーブルに対して、Denodo のビュー(Base view)が定義されているものとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/f6a26b1e-70ed-7992-5644-d84ddd3ad3b6.png)

フィールド名には適当な文字列がついていて、ビュー名やフィールド名からは実際にどんなデータが入っていてどんなことに活用できるのかが想像できません。このような場合にはビューやフィールドの説明を適切に入力し、利用者がビューを見つけやすいようにしてあげる必要があります。

### フィールドの説明をデータから自動生成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/b06874c2-4963-c9d7-dfb3-252b8a972c79.png)

Denodo Platform 9.1 の Denodo Assistant を使うことで、フィールドの説明やフィールド名の情報をデータから提案してもらえるようになりました。テーブルのフィールド名は、名称だけではデータの中身がわからなかったり、英語だったり、するケースが多いと思います。これを日本人が理解しやすいようにするには、日本語の説明が重要となってくることは言うまでもありません。Denodo Assistant では生成AIを活用して、ビューに含まれるデータから各フィールドに対する日本語の説明文を作ることが可能です。
Denodo Assistant を使わずに整備を行っていく場合、これらの情報は人手で頑張って整備していく必要があります。おそらく多くは、システム部や、システム部から依頼されたベンダーさんなどで整備されていたのではないかと思います。

### フィールド名をデータから自動生成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/4348c8c6-f746-2d9f-12a5-b6923675a6f0.png)

こちらはフィールド名を生成させた例となります。前述の通り、フィールド名だけではデータの中身がわからなかったり、英語だったり、するケースが多いと思いますので、データカタログでの可視性を高めるために意味のある名前をつけるというのも有効な手法です。

### ビューの説明をデータから自動生成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/1ae19873-ceba-c46b-2a7e-bbbc937ca218.png)

ビューの説明を生成させるとこのような感じになります。

> ビュー「bv_ora_member」は、メンバーに関するさまざまな情報を含むテーブルです。一意の識別子、名前やメールアドレスを含むテキストデータ、性別の指定、整数データ、タイムスタンプデータ、婚姻状況、血液型、都道府県ID、携帯電話番号、携帯キャリア情報などのフィールドがあります。フィールドは様々なタイプ（ロング、テキスト、整数、タイムスタンプ）があります。メンバーの名前、電子メールアドレス、性別、婚姻状況、血液型、携帯電話番号、携帯キャリアを表すテキストフィールドがあります。このビューには、各メンバーが属する可能性のあるカテゴリを表すフィールドも含まれています。また、一意の都道府県IDを示すフィールドも持っています。一部のフィールドは主キーで、一部はnull可能です。このビューは、メンバーデータの管理や分析に使用できます。各メンバーを一意に識別し、彼らの個人情報、性別、婚姻状況、血液型、電話番号、携帯キャリアを閲覧する機能を提供します。性別や携帯キャリアなどの含まれる情報を元に、人口統計学的な分析やターゲット指向のマーケティングにも使用できます。

フィールドの説明やフィールド名を生成させた時と同様、データの中身からビューに含まれているデータに関する情報が生成されています。面白い情報としては、単に列の情報を並べているだけでなく、このビューがどんな分析に使える、などの文章も生成してくれているところでしょうか。このデータをそのまま説明文として採用することもできると思いますし、この情報を加工して保存するというだけでも、大幅に作業か省力化されると思います。

## メタデータが入っていればビューの検索が容易に

メタデータ(ビューの説明やフィールドの説明)の整備を行うと、データカタログからのデータの利用も容易になります。例えば、「血液型」と検索するとこのビューが検索にヒットするようになります。これは、このビューのメタデータのどこかに、血液型に関するデータがあるという説明が記載されているからです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/5b0e9660-2af6-ad72-f55b-278f891408c9.png)

## 支援型クエリ( Assisted Query )の実行例

そしてあるビューを対象にデータ抽出を実行したい場合に、AI を活用した機能として Denodo Platform 9.0 で追加された Assisted Query 機能が威力を発揮します。例えば、「男性のメンバーのみを抽出」と入力してクエリを生成させることで、性別のフィールドにフィルタをかけたクエリが生成され実行することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/83c2ad4a-e9cb-87c1-fe6e-da8d78b5a117.png)

他にも、例えば、「名前に森田を含む人」と入力してクエリを生成させることで、ユーザー名のフィールドにフィルタをかけたクエリが生成され実行することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/756b0149-a192-34ec-0aed-a30c08b162fc.png)

同様に、条件文だけでなく、「男性の数と女性の数を教えて」といった集計も行うことができますし、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/60c23f78-bd7f-92b4-9b52-61be31146115.png)

集計と条件を組み合わせたような複雑なクエリを生成させることも可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/7523c0b8-5d56-2514-3054-42f507ca4c16.png)

ここまで、Denodo Platform 9.1 で強化された生成 AI 活用機能、Denodo Assistant を紹介しました。Denodo Assistant により、メタデータ整備が大幅に効率化されます。また、その整備されたメタデータを活用することで、自然言語によるクエリーの生成もより精度よく行われるようになります。

## 仮想＆物理アプローチ - インサイトテクノロジーが提案するデータ仮想化とDX基盤 -

もう一つの「ソースへの負荷が気になる」へのアプローチとして、ここでは仮想＆物理アプローチによりさらに Denodo の活用を促進する手法をご紹介します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/d50b7f80-6123-497d-fe34-d9e5832e95cf.png)

Denodo による仮想化をさらに活用するうえで、追加のアプローチを採用した方がよいシーンもあります。
例えば、以下のようなシーンです。
* データソースになるべく負荷をかけずに、でもリアルタイムなデータを参照したい
* データソースの更新履歴をデータとして参照したい
* ETL ツールでないと処理できないような複雑なデータ加工を行ってデータを生成したい

これらに対するアプローチの一つとして紹介させていただきたいのが、Denodo Platform に加えて Qlik 社で実現するデータレプリケーションを組み合わせた仮想統合、物理統合のハイブリッドソリューションです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/851a2f0d-a515-23cd-9480-e4bde4460104.png)

弊社インサイトテクノロジーでは、従来より、 Denodo Platform に加えて Qlik Replicate というデータレプリケーション製品をデータ統合ソリューションとして取り扱ってきました。そのため、それぞれのメリットや活用ポイントを熟知しています。

https://www.insight-tec.com/products/qlik-data-integration-platform/

### データレプリケーション製品 Qlik Replicate の特徴

データレプリケーション製品 Qlik Replicate は以下の特徴のある製品です。

* 異種データベース間のデータ・レプリケーション (データを物理的にコピー)
* ログベースの CDC (Change Data Capture) によりソースへ与える負荷が少ない
* エージェントレス
* GUIによる簡易設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/b87a3027-8dc5-0f13-543c-58806cb58dfb.png)

SAP やメインフレームなど、利用の特性上、追加の負荷をかけづらい製品に対してもソースとして取り扱うことが可能です。

### 仮想＆物理アプローチのおおまかな構成

この Qlik Replicate と Denodo を組み合わせて活用するのが、弊社が提供する仮想＆物理アプローチです。
データソースへの負荷の増加がクリティカルになり、かつ Denodo から直接データソースとして参照するには扱いづらいデータソースがある場合、物理的なデータレプリケーションを組み合わせ、ソースへの負荷を最小限にして最新データを物理レイヤーにデータをレプリケーションします。そして、それを Denodo からリアルタイムに参照させるのです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/4c29ef01-abb4-7db6-9a34-d63c371dd181.png)

キャッシュを使用するだけでなく、リアルデータ用の DWH を追加で設け、そこに例えばメインフレームや SAP など、追加負荷をあまりかけられない環境からのデータを連携し、Denodo のソースとして参照する構成です

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3480312/68d793d7-4499-d354-0548-ec5efcf91a7b.png)

### 仮想統合( Denodo )とリアルタイム物理統合( Qlik )の使い分け

一般的な仮想統合( Denodo ) とリアルタイム物理統合( Qlik )にはそれぞれの得意なパートがあります。

* 仮想統合( Denodo )が得意
    * 拡張性を持った分析基盤を構築したい
    * ソース環境に比較的余裕がある
    * 必ずしもリアルタイムでなくてもよい(キャッシュを使う場合)
    * 様々なデータソースに接続
* リアルタイム物理統合( Qlik ) が得意
    * 分析用途が明確に定まっている
    * ソースへの負荷をこれ以上増やせない
    * リアルタイム性が必要
    * 接続ソースは限定可能

やはり拡張性をもった基盤の整備として、Denodo による仮想データ統合が有利であることはいうまでもないでしょう。一方で、ある特定のデータソースで、リアルタイムにデータを取り出したいけど、負荷をかけたくない、といった場合に、Qlik のような CDC によるデータ連携製品を活用すると有利です。
仮想ファースト(論理ファースト)の方針で設計しつつ、一部、物理統合を採用してソースに負荷をかけずにデータを取り出す仕組みを採用する、といったアプローチが現実解になるのではないかと考えています。

## まとめ

Denodo の概要と、Denodo をさらに活用するための観点として、メタデータの整備の効率化と、仮想＆物理アプローチを紹介しました。
メタデータの整備の効率化は、新バージョン9.1の新機能 Denodo Assistant によるビューやフィールドに対する説明機能が大きく貢献すると考えています。Denodo を既に利用中の方はぜひ新バージョンにバージョンアップして活用いただきたいと思います。また、Data Catalog の整備に課題感をお持ちで Denodo 利用していないという方は、Denodo を使うとメタデータ整備が効率化できる可能性があるということもぜひ覚えておいていただければと思います。
また、仮想＆物理アプローチについては、Denodo を利用中の方もこれからの利用を検討されている方も、ソースへの負荷とリアルタイムデータの活用は気になるところかと思います。ぜひ Denodo のさらなる活用へのアプローチの一つとして、覚えておいていただければと思います。

## まずは Denodo をちょっと触ってみたい方へ

まずはちょっと触ってみたい場合、Test Drives または Denodo Express を無償で試すことができます。前者は2時間限定ではありますが、セットアップなしに利用可能です。自分のデータベースなどに接続して試してみたい場合は、セットアップの手間などはありますが、Denodo Express をお試しください。

* すべてセットアップされた環境で試す : Test Drives

https://community.denodo.com/test-drives/?utm_source=partner_lead_InsightTech

* 機能制限付きの無料版て試す : Denodo Express

https://www.denodo.com/ja/denodo-platform/denodo-express?utm_source=partner_lead_InsightTech

## おわりに：もう少し詳しく知りたい方へ

繰り返しになりますが、弊社インサイトテクノロジーでは Denodo 社のパートナーとして Denodo Platform の紹介、販売、導入などを行っています。Denodo Platform に興味を持たれた方はぜひ弊社または Denodo 社までお問い合わせください。

https://www.insight-tec.com/products/denodo/

また、「これからデータ統合基盤を整備していきたい！」「どの方式にしたらいいか迷っているので相談したい！」など、これからのデータ基盤整備のお困りごとや、「すでにこういうことをしているんだけどここをなんとかしたい！(例えば Snowflake に SAP からリアルタイムデータを持ってきたい)」などについてもぜひご相談いただければと思います。

https://www.insight-tec.com/products/consulting/