リモートテーブル¶
Virtual DataPort では、クエリの結果を外部データベースのテーブルに保存できます。この機能を「 リモートテーブル 」と呼びます。リモートテーブルを作成する際、Denodo は自動的に以下の処理を実行します。
外部データベースに適切なスキーマでテーブルを作成する。
このテーブルにクエリの結果を挿入する。
必要に応じて、Virtual DataPort にこの新しいテーブルに関連付けた基本ビューを作成する。
この機能を使用すると、ユーザーは Denodo でクエリを実行して、その結果をデータベースに保存するために別のツールを用意する必要がありません。リモートテーブルを作成、編集、および削除する手順については、「 リモートテーブルの管理 」を参照してください。
この機能を使用すると、Denodo で簡単かつ短時間で効率良く、ETL フロー (Extract、Transform、Load) を作成できます。Denodo ではこのフローを、SQL クエリを使用する宣言的アプローチで作成できます。
これには、従来の ETL フローに比べて、以下に示す複数の利点があります。
Denodo では、SQL クエリから ETL フローを作成します。この宣言的アプローチは、従来の手続的な ETL フローより保守が簡単です。
多くの場合、Denodo の ETL タスクの実行は、以下の理由により従来の ETL ツールより高速です。
Denodo の実行エンジンはデータ取得プロセスを最適化します。
実行エンジンは、データを挿入するために、ターゲットデータベースの データ一括読み込み API を使用します (データベースにそのような API が存在する場合)。それらの API を使用することによって、Virtual DataPort は、通常の INSERT ステートメントよりはるかに高速にデータを挿入します。さらに、一部のデータベースでは、データ挿入プロセスがパラレルに実行されます。
Denodo では、Administration Tool から手動で、または Denodo Scheduler で定期的に動作するようにスケジュールして、ETL タスクを起動できます。
この機能は、データを利用するアプリケーションが動作する環境と同じ環境にデータを移動するのに非常に便利です。データが同じ環境に存在することには、以下に示す利点があります。
データアクセス時間を最短に短縮。
パラレルなデータセットの読み込み。
データセットの再利用。データを利用するアプリケーションは、同じデータセットに対する処理を複数回実行する際、Virtual DataPort に毎回データセットをリクエストする必要がありません。さらに、複数のアプリケーションが同時に同じデータセットにアクセスできます。
この機能の一般的なユースケースでは、オンプレミスデータベースのデータを HDFS または Amazon S3 に移動して、それと同じ環境内で Apache Spark を使用してデータ処理ジョブを実行します。
データの保持に関するリモートテーブルと他のメカニズムの比較¶
一時テーブル: 一部の計算を再利用する複雑なクエリを高速化する場合やデータを準備する場合に便利です。存続期間が短いことを想定しており、一時テーブルのデータはキャッシュデータベースに保存され、そのセッション中のみ有効です。一時テーブルを作成したユーザーまたはクライアントアプリケーションが現在のセッションを閉じた後に一時テーブルは削除されます。
サマリ と キャッシュ: どちらも処理速度の向上とデータソースの負荷軽減に役立ちます。リモートテーブルと異なり、サマリとキャッシュされたビューは、完全なデータリネージを提供します。さらに、以下の特徴があります。
キャッシュされたビューの場合、キャッシュデータベースに作成されたテーブルは、Denodo によって完全に管理され、通常のテーブルとして使用することを目的としていません。
サマリビューの場合、クエリオプティマイザーは、サマリビューを使用してクエリを動的に書き換えることができます。
キャッシュとサマリによる書き換えの詳細な比較については、「 キャッシュとサマリ書き換えの比較 」を参照してください。
マテリアライズドテーブル: テーブルにランダムなデータをすばやく保存する際に役立ちます。ただし、キャッシュする場合やサマリを使用する場合とは違い、系統が得られません。つまり、データの取得元や最終更新日時などの情報を取得できません。