データ一括読み込み¶
Virtual DataPort は、以下に示す 2 つのシナリオで、データベースにデータを保存します。
ソースから取得したデータをキャッシュする。
データ移動を実行する。データ移動については、「 データ移動 」を参照してください。
デフォルトでは、Virtual DataPort は、データベースにデータを保存するために、SQL ステートメント INSERT
を実行して 1 行ずつ保存します。その際、これらのステートメント実行プロセスを高速化する手法を使用します (準備済みステートメントを使用してバッチ単位でステートメントを実行するなど)。
データベースの多くは、大量のデータを読み込む独自のインターフェイスを提供しています。これらのインターフェイスを使用すると、 INSERT
ステートメントを実行するよりはるかに速くデータを挿入できます。Virtual DataPort は、大多数のデータベースでこれらのインターフェイスを使用できます。
Virtual DataPort がこれらのインターフェイスのいずれかを使用するクエリを実行する場合、データを一時テキストファイルに書き込んでからそのインターフェイスを使用してファイルをデータベースに転送し、ファイルを削除します。
これらのインターフェイスを使用する価値があるのは、挿入する行数が数万件を超える場合です。データソースまたはキャッシュエンジンでこの機能を有効にする前に、この点を考慮してください。行数が少ない場合、パフォーマンスは向上しないか、場合によっては低下する可能性があります。
JDBC データソースは、以下のデータベースの一括読み込み API を使用するように構成できます。
Amazon Athena
Amazon Redshift
Databricks
Hive 2.0.0 以降
IBM DB2
Impala
Microsoft SQL Server
MySQL
Netezza
Oracle
PostgreSQL
Presto
Snowflake
Spark
Teradata
Vertica
Yellowbrick
これらのデータベースのほとんどすべてに共通するのは、データ一括読み込みインターフェイスを使用するには、クライアントアプリケーション (この場合は Virtual DataPort サーバー) がデータを特定の形式で外部ファイルに書き込む必要があるという点です。その後で、このデータがデータベースに転送されます。
これらの一時ファイルは、デフォルトでは、Denodo のインストール環境に作成されます。別のディレクトリに書き込むには、データソースの [Read & Write] タブで、[Work path] テキストフィールドにそのディレクトリのパスを入力します。これらの一時ファイルは、データがデータベースに読み込まれた後に削除されます。
一部のデータベースでは、データベースベンダーから提供される補助アプリケーションをインストールする必要があります。このアプリケーションがデータファイルをデータベースに転送します。たとえば、Oracle の場合は sqlldr
、SQL Server の場合は bcp
などをインストールする必要があります。他のデータベースでは、その JDBC ドライバーにこの機能が含まれているので、アプリケーションをインストールする必要はありません。
以下のサブセクションに、外部アプリケーションをインストールする必要があるか、またはデフォルト設定を変更する必要があるデータベースのリストを示します。