SQL Developerでは、パラレル・スレッドを使用して、キャッシュ・グリッド、キャッシュ・グループまたはキャッシュ表を作成することなく、OracleデータベースからTimesTenデータベースにデータをロードできます。
注意: SQL Developerでは、ttLoadFromOracle 組込みプロシージャのファンクションを使用してOracleデータベースからTimesTenデータベースにデータをロードします。ttLoadFromOracle ユーティリティの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』の「ttLoadFromOracle」を参照してください。 |
この章では、OracleデータベースからTimesTen表へのデータのロードについて説明します。
内容は次のとおりです。
OracleデータベースからTimesTenデータベースにデータをロードする前に次を確認します。
Oracle TimesTen In-Memory Databaseリリース11.2.2.4 (以上)を使用していること。
TimesTen SQL developer接続に対しOracle接続情報(Oracle DatabaseパスワードおよびOracle Net Service名)を指定していること。TimesTenデータベース接続の定義の詳細は、「TimesTenデータベースの名前付きの接続の定義」を参照してください。
OracleデータベースからTimesTenデータベースにデータをロードするには、SQL Developerのメイン・ページで作業していること、および、TimesTen接続が拡張されていることを確認してください。
「表」オプションを右クリックして、Oracleデータベース表からのロードを選択します。
「Oracleデータベース表からのロード」ダイアログが表示されます。「Oracleデータベース表からのロード」ダイアログの左のナビゲーション・ツリーでOracleデータベース・スキーマ名を確認します。
Oracleデータベース・スキーマ名の隣の「+」をクリックして、Oracleデータベース表のリストを展開します。
別のOracleデータベース・スキーマを追加するには、「Oracleデータベース・スキーマの追加」を参照してください。Oracleデータベース・スキーマを削除するには、「Oracleデータベース・スキーマの削除」を参照してください。Oracleデータベース・スキーマにカスタム問合せ結果をロードするには、「カスタム問合せ結果のロード」を参照してください。
Oracleデータベース・スキーマが展開して、使用可能なOracleデータベース表が表示されます。TimesTenデータベースにロードするOracleデータベース表を確認します。
TimesTenデータベースにロードするOracleデータベース表の名前を右クリックして、「ロード」を選択します。この手順を繰返して、同一のOracleデータベース表に複数のOracleデータベース表をロードできます。
すべてのOracleデータベース表をロードするには、Oracleデータベース・スキーマ名を右クリックして、「すべてロード」を選択します。「TimesTenユーザー名」ダイアログが表示されます。表を作成するTimesTenユーザーを入力して、「OK」をクリックします。
Oracleデータベース・スキーマ表にフィルタを適用するには、「Oracleデータベース・スキーマ表へのフィルタの適用」を参照してください。
選択した表は右ペインに追加され、表の形式で表示されます。
Oracleデータベース表をレビューして、必要に応じてフィールドを編集します。フィールドを編集するにはダブルクリックします。各列の説明は次のとおりです。
「TimesTenユーザー名」
作成するTimesTen表の所有者。デフォルトでは、TimesTen接続ユーザーです。この列は編集できます。指定した表の所有者が存在しない場合、または、TimesTen接続ユーザーに指定した表の所有者にアクセスする権限がない場合は、エラー・メッセージが表示されます。
「TimesTen表名」
作成するTimesTen表の名前。デフォルトでは、Oracleデータベース表と同じ名前です。この列は編集できます。
「Oracleデータベースで実行する問合せ」
Oracleデータベースで目的の結果セットを生成するために実行されるSQL問合せ。デフォルトでは、SELECT * FROM
oracledb_tbl
問合せで、oracledb_tbl
はデータのロード元のOracleデータベース表です。この列は編集できます。有効なOracle Database SQL問合せの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
「行カウント」
TimesTenがOracleデータベース表からロードする行数。「Oracleデータベースで実行する問合せ」フィールドの結果セットの行カウントです。デフォルトでは、この値はカウントされません。
特定のOracleデータベース表の「行カウント」に移入するには、表の「行カウント」フィールドを右クリックして「件数」を選択します。
選択したすべてのOracleデータベース表の「行カウント」にフィールドに移入するには、いずれかの表の「行カウント」フィールドを右クリックして「すべてカウント」を選択します。確認ダイアログが表示されます。「Yes」をクリックして、前に選択したすべてのOracleデータベース表の行カウントに進みます。
「Create Table文」
Oracleデータベースのデータをロードする表の作成に使用するSQL文。この列は編集できません。CREATE TABLE
文をレビューするには、「Create Table文」フィールドをダブルクリックします。
同名のTimesTen表がすでにTimesTenデータベースに存在する場合は、そのOracleデータベース表のデータが既存のTimesTen表に追加されます。Oracleデータベース表の表制約は、TimesTenにロードされません。同名で表構造の異なるTimesTen表がすでにTimesTenデータベースに存在する場合は、エラー・ダイアログが表示されます。
「パラレル・ロード数」
Oracleデータベース表をTimesTenデータベースにロードするために使用されるパラレル・ロード数。表に含まれる行数が500, 000未満の場合、デフォルト値は1です。表に含まれる行数が500, 000を超える場合、デフォルト値は2です。この列は編集できます。
多数の行をロードする場合は、複数のパラレル・ロードを使用することをお薦めします。複数のパラレル・ロードを使用すると、各パラレル・ロードで行のサブセットがOracleデータベース表からTimesTenデータベースにインポートされることにより、行のロード処理が高速化されます。
「パラレル・ロードごとのスレッド数」
Oracleデータベース表をTimesTenデータベースにロードするために使用される、パラレル・ロードごとのパラレル・スレッド数。デフォルトでは、この値は4です。この列は編集できます。2未満のパラレル・スレッド数を使用しようとすると、エラー・ダイアログが表示されます。1つのパラレル・スレッドでOracle Databaseからのバルク・フェッチが実行され、残りのパラレル・スレッドでTimesTenデータベースへの挿入操作が実行されます。
「ステータス」
OracleデータベースからTimesTenデータベースへのデータ・ロード操作のステータス。この値は、ロード操作を開始する前は空です。Oracleデータベースから表のロード操作を開始すると、この値は「進行中」、「完了」または「失敗」になります。
「Oracleデータベース表からのロード」ダイアログの下部の「索引作成ポリシー」を確認します。
Index Creation Policyドロップダウン・リストで目的の索引作成ポリシーを選択します。
ピアOracleデータベース表からすべての索引をコピーする: ピアOracleデータベース表に存在しているすべての索引を、TimesTenで作成します。これが、デフォルトの索引作成ポリシーです。
ピアOracleデータベース表から一意の索引のみコピーする: ピアOracleデータベース表に存在している一意の索引すべてを、TimesTenで作成します。
ピアOracleデータベース表から索引をコピーしない: TimesTenでは索引が作成されません。
「Oracleデータベース表からのロード」ダイアログの右下にある「ロード」ボタンを確認します。
目的のフィールドをすべて編集したら、「ロード」ボタンをクリックします。
進捗ダイアログが表示されます。「Oracleデータベース表からのロード」ダイアログの「ステータス」列の各フィールドが「完了」になっていることを確認します。
「完了」以外になっている「ステータス」フィールドがある場合は、入力したすべてのデータが正しいことを確認してください。「完了」になっていないステータスは、エラーが発生したことを示しています。
すべての「Status」フィールドが「DONE」になっている場合は、TimesTen表が作成され、Oracleデータベース表からデータが移入されています。「完了」ステータスをダブル・クリックして、インポート済の索引に関する詳細情報を表示します。
「Oracleデータベース表からのロード」ダイアログの右下にある「閉じる」ボタンを確認します。
「閉じる」をクリックします。
データが、OracleデータベースからTimesTenデータベースに正常にロードされました。
別のOracleデータベース・スキーマから表を追加するには、次の手順を実行します。次の手順を実行する前に、「Oracleデータベース表からデータをロード」の手順1までを完了していることを確認してください。
Oracleデータベース・スキーマ・ナビゲーション・ツリーの上の「+」をクリックします。
「スキーマの選択」ダイアログが表示されます。接続ユーザーがアクセス可能なOracleデータベース・スキーマのみが表示されます。
「スキーマ名」ドロップダウン・リストからOracleデータベース・スキーマを選択します。
Oracleデータベース・スキーマを追加する準備ができました。
「OK」をクリックします。
Oracleデータベース・スキーマが正常に追加されました。データベース・スキーマの表からデータをロードするには、「Oracleデータベース表からデータをロード」の手順2を参照してください。
Oracleデータベース・スキーマを削除するには、次の手順を実行します。この手順では、Oracleデータベース・スキーマは、「Oracleからロード」データベース機能で使用可能な状態から削除されるだけです。接続ユーザーのOracleデータベース・スキーマを削除することはできません。次の手順を実行する前に、「Oracleデータベース表からデータをロード」の手順1までを完了していることを確認してください。
スキーマ・ナビゲーション・ツリーで、削除するOracleデータベース・スキーマを選択します。
Oracleデータベース・スキーマ・ナビゲーション・ツリーの上の「-」をクリックします。
Oracleデータベース・スキーマが正常に削除されました。
Oracleデータベース・スキーマ表にフィルタを適用するには、次の手順を実行します。次の手順を実行する前に、「Oracleデータベース表からデータをロード」の手順1までを完了していることを確認してください。
フィルタを適用するOracleデータベース・スキーマの名前を右クリックして、「フィルタの適用」を選択します。
「フィルタ」ダイアログが表示されます。
「表名」ドロップダウン・リストからフィルタ条件を選択します。
=: 指定されたパターンと等しい結果を返します。
<>: 指定されたパターンと等しくない結果を返します。
LIKE: 指定されたパターンと一致する結果を返します。
次の相似でない: 指定されたパターンと一致しない結果を返します。
「表名」ドロップダウン・リストの隣のテキスト・フィールドを確認します。
「表名」ドロップダウン・リストの隣のテキスト・フィールドに、フィルタ条件のパターンを指定します。フィルタにはワイルドカードを使用できます。
_
: 1文字の代替。たとえば、Sm_th
は、Sm
で始まりth
で終わる5文字の表すべてを表します。
%
: 0以上の文字数の代替。たとえば、EMP%
は、EMP
という文字で始まるすべての表を表します。
「OK」をクリックします。
Oracleデータベース・スキーマ表にフィルタが正常に適用されました。データベース・スキーマの表からデータをロードするには、「Oracleデータベース表からデータをロード」の手順2を参照してください。
Oracleデータベース・スキーマにカスタム問合せ結果をロードするには、次の手順を実行します。次の手順を実行する前に、「Oracleデータベース表からデータをロード」の手順1までを完了していることを確認してください。
「スキーマ」オプションを右クリックして、「カスタム問合せ結果のロード」を選択します。
「カスタム問合せ」ダイアログが表示されます。カスタムOracle問合せの情報を入力するよう求められます。最初のプロパティは「スキーマ名」です。このプロパティは編集できませんが、デフォルト値は接続ユーザーです。
「TimesTenユーザー名」テキスト・フィールドにTimesTen表の所有者を入力します。指定する表の所有者がTimesTenに存在し、この所有者の所有する表の作成または所有する既存の表に挿入を行う権限を、TimesTen接続ユーザーが持っていることを確認します。
「TimesTen表名」テキスト・フィールドにTimesTen表の名前を入力します。
「選択問合せ」テキスト・フィールドに、目的の結果セットを生成するためにOracleデータベースで実行するSQL問合せを入力します。有効なOracle Database SQL問合せの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
「パラレル・スレッド件数」テキスト・フィールドに、Oracleデータベース表をTimesTenデータベースにロードするために使用されるパラレル・スレッド数を入力します。値は、4をお薦めします。
「OK」をクリックします。
カスタムOracleデータベース問合せが正常にロードされました。カスタム問合せは、「Oracleから表をロード」ダイアログの右ペインにロードされます。カスタム問合によってOracleデータベース・データをTimesTenデータベースにロードする方法の詳細は、「Oracleデータベース表からデータをロード」の手順4を参照してください。
Oracleデータベース表から既存のTimesTen表にデータをロードするには、次の手順を実行してください。SQL Developerのメイン・ページで作業していること、および、TimesTen接続が拡張されていることを確認してください。
「表」の隣の「+」をクリックして、TimesTen表のリストを展開します。
TimesTen表のリストが展開します。
表の名前を右クリックして「表」オプションを選択し、「Oracleからロード」オプションを選択します。
「Oracleから表をロード」ダイアログが表示されます。「スキーマ名」、「TimesTenユーザー名」および「TimesTen表名」のフィールドは自動で入力され、編集できません。次に、SQL問合せおよびパラレル・スレッド件数を入力します。
「選択問合せ」フィールドに、Oracleデータベースで実行するSQL問合せを入力します。SQL問合せの結果は、TimesTen表にロードされます。有効なOracle Database SQL問合せの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
「パラレル・スレッド件数」フィールドに、Oracleデータベース表をTimesTenデータベースにロードするために使用されるパラレル・スレッド数を入力します。2未満のパラレル・スレッド数を使用しようとすると、エラー・ダイアログが表示されます。
「ロード」をクリックします。
進捗ダイアログが表示されます。Oracleデータベース表からTimesTenにデータがロードされると、進捗ダイアログが閉じます。小さなOracleデータベース表で問合せを実行すると、進捗ダイアログはほぼ瞬時に閉じます。