リモートテーブルの管理

ここでは、Administration Tool を使用してリモートテーブルを作成、編集、および削除する方法について説明します。

リモートテーブルの作成

リモートテーブルの作成方法は 3 つあります。

  1. Administration Tool のウィザードの使用。

  2. CREATE_REMOTE_TABLE ストアドプロシージャの使用。

  3. CREATE REMOTE TABLE コマンドの使用。基盤となるデータベースにテーブルを作成して、クエリの結果をこのテーブルに挿入します。ただし、関連する基本ビューを Virtual DataPort に作成することはありません。

ここでは、Administration Tool からリモートテーブルを作成する手順について説明します。以下の手順に従って実施してください。

  1. リモートテーブルの作成先の JDBC データソースを右クリックして [Create Remote Table] をクリックします。

    注釈

    この機能は、JDBC データソースの場合にのみサポートされています。HDFS ベースのデータベース (Hive、Impala、PrestoDB、PrestoSQL、Spark、Databricks) でこの機能を使用するには、まず データ一括読み込み を有効にする必要があります。

  2. 以下の情報を入力します。

Create remote table

リモートテーブルの作成

  • Target data source: リモートテーブルの作成先のデータソース。

  • Insert options: データをデータベースに挿入するプロセスを構成するパラメーター。すべてオプションであり、指定されない場合は実行エンジンがデフォルト値を使用します。

    使用可能なオプションは、データベースのタイプに依存します。

    • Batch insert size: 各バッチ挿入のタプルの数。

    • Location: Virtual DataPort がデータをアップロードする場所。場所はデータソースに応じて変わります。

      • Hadoop データソース (Hive、Impala、PrestoDB、PrestoSQL、Spark): HDFS URI。

      • Redshift: S3 バケット名。

      • Athena: S3 の場所。

    • Parquet row group size: 行グループのサイズ (MB 単位)。プロパティは、Virtual DataPort が Parquet ファイルを使用してデータを挿入するデータソース (Athena、Hive、Impala、PrestoDB、PrestoSQL、Spark) のみで有効です。

  • Remote table: 新しいリモートテーブルの名前、カタログ、およびスキーマを入力します。

  • Base view: 作成される基本ビューの情報を入力します。

  • VQL Query: 実行して、その結果を新しいリモートテーブルに挿入するクエリ。

    または別の方法として、[Server Explorer] からビューを [VQL Query] にドラッグして、このビューの定義からリモートテーブルを作成することもできます。

  1. [Create] をクリックします。

リモートテーブルを作成するために、実行エンジンは以下の処理を実行します。

  1. JDBC データソースの基盤となるデータベースにテーブルを作成します。

  2. VQL クエリを実行します。

  3. このクエリの結果を、手順 1 で作成したデータベースのテーブルに挿入します。データソースで一括読み込み API の使用が有効である場合、実行エンジンは、データベースのデータの一括読み込み API を使用して結果を挿入します。

  4. このプロシージャは、手順 1 で作成したテーブルから基本ビューを作成します。

必要な権限

これを行うには、以下の権限が必要です。

  • JDBC データソースのデータベースに対する「Connect」権限。

  • JDBC データソースに対する「Execute」権限。

  • 基本ビューが作成される Virtual DataPort データベースに対する「Connect」権限および「Create view」権限。

  • 基本ビューが作成されるデータベースに対する「Create folder」権限 (このプロシージャがフォルダーに基本ビューを作成する必要があり、フォルダーが存在しない場合)。

  • クエリで参照されるビューに対する「Execute」権限。

JDBC データソースに設定されるユーザーアカウントは、基盤となるデータベースにテーブルを作成できるよう設定されている必要があります。

要件

この機能を使用するには、データ移動が有効である必要があります。これを確認するには、 [Server Configuration] - [Queries Optimization] ダイアログを開きます。無効な場合、リモートテーブルの作成は失敗します。

リモートテーブルの編集

リモートテーブルを編集するには、リモートテーブルに関連付けられている基本ビューを開いて [Edit Remote] をクリックします。

Edit remote table and base view

リモートテーブルの編集

必要な変更を行った後、[Create] をクリックします。実行エンジンが以下の処理を実行します。

  1. 基盤となるデータベースから現在のテーブルを削除します。このテーブルのデータはすべて失われます。

  2. JDBC データソースの基盤となるデータベースにテーブルを作成します。

  3. Virtual DataPort でクエリを実行します。

  4. クエリの結果を、手順 2 で作成したデータベースのテーブルに挿入します。

  5. 既存の基本ビューを、手順 2 で作成したテーブルのスキーマを使用する新しい基本ビューで置き換えます。基本ビューに依存エレメントが存在する場合、スキーマの変更は 伝達しません

リモートテーブルをプログラムから変更する場合、 CREATE_REMOTE_TABLE ストアドプロシージャを使用します。

データの更新

リモートテーブルのデータを更新するには、リモートテーブルに関連付けられている基本ビューを開いて [Refresh Data] をクリックします。

Refresh the remote table data

リモートテーブルのデータの更新

実行エンジンは、以下の処理を実行します。

  1. 基盤となるデータベースから現在のテーブルを消去します。つまり、このテーブルのデータをすべて削除します。リモートテーブルが存在しない場合、Virtual DataPort サーバーがリモートテーブルを作成します。

  2. このリモートテーブルに関連付けられたクエリを実行します。

  3. クエリの結果を、手順 1 で作成したデータベースのテーブルに挿入します。

コマンド REFRESH を使用して、リモートテーブルのデータをプログラムで更新します。

リモートテーブルの削除

Administration Tool からリモートテーブルを削除する場合、それに関連付けられている基本ビューを削除します。必要に応じて、基盤となるデータベースからテーブルも削除できます。これは、通常の基本ビューの削除とは異なります。なぜなら、通常の基本ビューの場合、基盤となるデータベースは変更されないからです。

リモートテーブルに関連付けられている基本ビューを削除すると、以下のようなダイアログが表示されます。

Drop remote table and base view without dependencies

[Yes] をクリックすると、基本ビューに加えて、基盤となるデータベースのテーブルが削除されます。

複数のリモートテーブルを一度に削除する場合、以下のようなダイアログが表示されます。

Drop multiple remote tables and base views with dependencies

リモートテーブルをプログラムで削除するには、 DROP_REMOTE_TABLE ストアドプロシージャを使用します。