仮想データウェアハウス「denodo」のハンズオンに参加しました

2019.12.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。DA部プリセールスエンジニアの兼本です。

先日、denodo社が定期開催しているハンズオンセミナーに参加できましたので、レポートします。

仮想データウェアハウス「denodo」

データ仮想化という選択肢

データベース、データウェアハウス、ETL、データパイプライン、ML/AI、BIなど、データを使う人たち向けのツールが増えてきましたが、その目的や使い方はツールによって異なるため、期待されるデータの出力方法もツールによって異なります。
また、従来はオンプレミスのデータ中心でしたが、現在はクラウドやWebで公開されている様々なデータを使用することができるようになり、データの集約が困難なケースもあるため、データを移動するのではなく、さまざまなデータを仮想的に集約する仮想データウェアハウスという考え方に注目が集まっています。

仮想データウェアハウスというソリューション自体は古くからあり、denodo社も創業は1999年と歴史のあるソフトウェアベンダーです。 2019年8月に改めて日本国内での販売強化を進めるということで、弊社もdenodo社が主催するハンズオンセミナーに参加させていただきました。

ハンズオンの概要

ハンズオンセミナーは半日程度の未時間時間でしたが、よく使われているデータベースであるMySQLとAWS Redshiftを使用して、

  1. 仮想データベーステーブル(View)を設計
  2. 仮想テーブルへのアクセス権を設定
  3. 仮想テーブルのデータをREST APIサービスとして提供
  4. データカタログを使ってスキーマを検索

などの操作を体験することができました。

denodoサーバへのアクセス

denodoは導入時に自社サーバに導入するソフトウェアですが、ハンズオンでは事前にAWS EC2上に構築された検証環境を使用しました。

ログイン後は、左サイドのツリーから設定したい項目を選択、ダブルクリックすることで詳細設定を行うことができます。

AWS Redshiftへの接続情報です。

こちらは、MySQLの設定情報です。

今回のハンズオンでは事前に接続情報を設定済みの環境を使用しましたが、ほかにもさまざまなデータソースに対応しています。

仮想データベーステーブルの作成

データソースへの接続を設定したら、それぞれのデータベース設定に対して仮想テーブルの作成をします。
こちらは、MySQLのテーブルに関する定義です。実際のテーブルをもとに仮想テーブル(View)を作成しています。

続いてこちらはRedshift側の設定です。ハンズオン環境では、ORDERSというテーブルがひとつだけ保存されています。

さらに、MySQLとRedshiftのテーブルをジョインして、ひとつの仮想テーブル(VIEW)を作成します。このように論理テーブルを柔軟に作成できるのが仮想データウェアハウスの強みですね。

また、作成した仮想テーブルに対してGROUP BYや計算カラムを作成することも可能です。

新しく作成した仮想テーブルに対してクエリを実行して結果を確認することもできます。

実行したクエリのプロファイルから各テーブルへのアクセス状態やボトルネックを把握することもできます。

仮想テーブルのデータはdenodo側でキャッシュ管理しているため、頻繁に実行されるクエリによって実際のデータベースに大きな負荷がかからないように設計されています。
また、denodoからデータソースに対してクエリを発行する際には、まずデータ量の少ないデータベースに対してクエリを発行してデータの絞り込みを行うことで、クエリ実行にかかるコストの最適化を図る動作をしているとのことです。

データへのアクセス権限を定義する

denodo上にユーザアカウントやロールを作成して、ユーザレベル、ロールレベルでアクセス権限を設定することができます。

さらにカラムレベルのアクセス権限を設定することも可能ですので、レコード単位でユーザがアクセス可能なデータを指定することが可能です。

仮想テーブルのデータをREST APIサービスとして提供

面白かったのは、仮想テーブルに対してSOAP APIやREST APIのインターフェースを提供できる機能で、メニューから操作するだけで簡単にREST APIベースのサービスを作成し、ブラウザからデータにアクセスすることができました。

Webサービスとして提供したいテーブルを選択して、メニューからREST APIを選択:

いくつかの設定をするだけで、WebブラウザからREST API経由で仮想テーブルにアクセスできました。

データをJSON形式で出力することも可能です。

データカタログを使ってスキーマを検索

さらに、denodoが提供しているデータカタログを使用することで、denodoに定義されているスキーマを検索して、自分が求めている情報がどこにあるのかを確認することができます。

テーブル名で検索したり、テーブルの説明を設定してあれば説明に対して検索を実行することも可能です。

まとめ

いかがでしたか。今回は仮想データウェアハウス「denodo」についてご紹介いたしました。
denodoは主にエンタープライズ規模の企業で、様々なシステムやデータベースが混在しており、集約や移行が簡単にはできない状況でデータを仮想的に集約することに向いているソリューションと感じました。
特にアクセス権限を細かく設定することができるため、各ユーザのアクセスレベルに合わせて提供する情報を管理したいときに必要な機能が提供されています。
また、SOAP、RESTといったAPIアクセスやODBCによるアクセスも用意されているため、denodoで仮想的に集約したデータをアナリストやビジネスユーザがBIや分析ツールを使ってアクセスするといった使い方もできるのではないでしょうか。

ひと口にデータウェアハウスといっても、現在では様々な提供方法や機能・特徴がありますので、自社のシステムや要件にマッチするソリューションを導入したいですね。

最後まで読んでいただきありがとうございました。