前へ Source and Target Connectors 次へ

Netezza

Netezza はリレーショナル データベースとサーバーやストレージ ハードウェアを統合するデータ ウェアハウス アプライアンスです。

このコネクタでは、フィールド長を文字単位で指定します。これは文字どおりに、フィールドの長さを文字数にするということです。詳細については、フィールド長を文字単位かバイト単位のどちらにするかの判断 を参照してください。

接続手順

Netezza を使ってデータベースのデータ テーブルに接続するには、Map Designer を起動後、変換を新規作成し、次の手順を実行します。

Netezza をソースとして接続するには

  1. [ソース接続]タブで、[ソース接続]の下矢印をクリックします。[接続の選択]ダイアログが表示されます。[出荷時設定の接続]タブをクリックします。 "N" で始まるコネクタ名にジャンプするには、キーボードの "N" を押下します。Netezza までスクロールして選択し、[OK]をクリックします。
  2. <Tab> キーを押して[ソース データ ソース]ボックスへ移動し、Netezza データ ソース用の DNS を選択します。
  3. <Tab> キーを押して[ユーザー ID]ボックスへ移動し、必要な場合には、選択したデータベースのユーザー名を入力します。必要ない場合は空白のままにします。
  4. <Tab> キーを押して[パスワード]ボックスへ移動し、必要な場合には、選択したデータベースのパスワードを入力します。必要ない場合は空白のままにします。
  5. SQL ソース:この新しい SQL コネクタ機能では、テーブル/ビュークエリ ステートメント、およびクエリ ファイルの 3 つのオプションを選択できます。
a.
テーブル/ビュー(デフォルト)

ソース テーブル/ビュー]ボックスの横の下矢印をクリックして、一覧からテーブル/ビューを選択します。


メモ
データベースにテーブルが多数ある場合、一覧からテーブルを選択するよりも[ソース テーブル/ビュー]ボックスにユーザー ID.テーブル名の値を入力する方が作業時間を短縮できることもあります。 ユーザー ID なしでテーブル名を入力してデータベースへ接続した場合、ソース Data Browser でテーブルを表示するには、テーブルを再選択しなければなりません。

接続]ボタンをクリックしてテーブルまたはビューに接続します。 接続の確立後に接続を切断するには[切断]ボタンを使用します。これにより、別のテーブルを選択して新しい接続を確立することができます。

b.
クエリ ステートメント

クエリ ステートメントを作成する方法は 2 つあり、クエリ ビルダを使用するか、クエリ ステートメント ボックスを使用します。 クエリ ビルダでは、ドラッグ アンド ドロップ インターフェイスを使用して、ソース データベースへ接続し、テーブルおよびフィールドにアクセスして、クエリ ステートメントを構築することができます。 その後、クエリをテストして、クエリ ステートメントが有効であり、要望する結果になることを確認できます。

ステートメント ボックスでは、クエリ ステートメントを直接入力するか、別の場所から貼り付けることができます。また、SQL から一時的にエスケープして RIFL を使用するために DJX を利用する必要がある場合、クエリ ビルダを使用して作成したステートメントを開くことができます。


メモ
ネイティブ アプリケーションで構文および有効性を確認できるように、ソース データベース アプリケーションを使用したクエリ ステートメントを作成することをお勧めします。 その後はクエリ ステートメントをコピーし、クエリ ステートメント ボックスに貼り付けることができます。

クエリ ビルダまたはクエリ ステートメント ボックスを使用するには、[クエリ ステートメント]ボックスの横のラジオ ボタンをクリックします。

image¥SQL_Query_Button.PNG [クエリ ビルダ]をクリックしてクエリ ビルダを開きます。使用方法については、クエリ ビルダを使用してクエリを構築する を参照してください。

image¥elipsis-button.PNG...]ボタンをクリックして[クエリ ステートメント ボックス]を開き、必要に応じてクエリ ステートメントを入力、編集、または貼り付けします。

接続]をクリックしてクエリ ステートメントを使用します。

c.
クエリ ファイル

クエリ ファイルを使用するには、[クエリ ファイル]の横のラジオ ボタンをクリックします。

次に、[クエリ ステートメント]ボックスの横の[...]をクリックしてクエリ ファイルをブラウズし、選択します。

接続]をクリックしてクエリ ファイルにアクセスします。

Netezza ソース テーブルの構造を表示するには、ツールバーの[ソース スキーマ]アイコンをクリックします。 詳細については、『Structured Schema Designer User's Guide』の Structured Schema Designer ウィンドウ を参照してください。

ツールバーの[ソース Data Browser]アイコンをクリックすると、選択したテーブルの内容を表示できます。

Netezza をターゲットとして接続するには

  1. [ターゲット接続]タブで、[ターゲット接続]の下矢印をクリックします。[接続の選択]ダイアログが表示されます。[出荷時設定の接続]タブをクリックします。 "N" で始まるコネクタ名にジャンプするには、キーボードの "N" を押下します。Netezza までスクロールして選択し、[OK]をクリックします。
  2. <Tab> キーを押して[ターゲット データ ソース]ボックスへ移動し、Netezza データ ターゲット用の DNS を選択します。
  3. <Tab> キーを押して[ユーザー ID]ボックスへ移動し、必要な場合には、選択したデータベースのユーザー名を入力します。必要ない場合は空白のままにします。
  4. <Tab> キーを押して[パスワード]ボックスへ移動し、必要な場合には、選択したデータベースのパスワードを入力します。必要ない場合は空白のままにします。
  5. <Tab> キーを押して[ターゲット テーブル/ビュー]ボックスへ移動し、下矢印をクリックして一覧からテーブル/ビューを選択します。
  6. 出力モード]は[ターゲット接続]タブの最後のオプションです。新しいテーブルを作成するか既存のテーブルを上書きする場合は、デフォルトの「置換」モード オプションにしておきます。 Netezza データベースの新規テーブルにデータを書き込む場合は、ボックスに新しいテーブルの名前を入力します。
  7. ファイルまたはテーブルが存在する場合は、次の警告が表示されます。

    「警告:ファイル/テーブルが存在します。置換または複合出力モードでは上書きされます」

    OK]をクリックして続行します。

  8. [置換]以外の出力モードに変更する場合は、下矢印をクリックして、一覧から別の出力モードを選択します。以下のオプションを選択できます。
  9. 接続]ボタンをクリックしてテーブルまたはビューに接続します。 接続の確立後に接続を切断するには[切断]ボタンを使用します。これにより、別のテーブルを選択して新しい接続を確立することができます。
  10. ツールバーの[ターゲット スキーマ]アイコンをクリックすると、選択したテーブルの構造を表示できます。詳細については[すべてのマップ]タブでスキーマを作成する を参照してください。
  11. ツールバーの[ターゲット Data Browser]アイコンをクリックすると、選択したテーブルの内容を表示できます。

制限事項

Netezza は ODBC 3.0.5、3.14 および 4.0 の 3 つのドライバを使用できますが、以下の制限と既知の問題があります。

プロパティ オプション

これらは、ソース データまたはターゲット データに指定する必要があるプロパティです。選択し終わったら、[適用]をクリックします。

ソース プロパティ

CursorType(ソースのみ)

CursorType プロパティには、ソース テーブルからのレコード取得に使用するカーソルのタイプを指定します。選択肢は "forward only"、"static"、および "dynamic" です。デフォルトでは forward only に設定されています。

カーソルとは何でしょう? カーソルは、SQL クエリの結果セット内の 1 ウィンドウです。つまり、一度に結果セット全体ではなく、数行のデータを処理できるということです。これは、大容量のテーブルやネットワーク上のデータベース サーバーでの処理にとって重要です。

カーソル サポートにより、ODBC インポートは 2 つの重要な点で性能が向上します。カーソルがデータへのウィンドウとして動作するため、Map Designer は結果セットを使用する前に全体をメモリに読み取る必要がなくなります。 メモリ不足になったりデータを表示するのに長時間待つことなく、ユーザーは大容量のテーブルを処理することができます。もう 1 つの利点は、カーソルを使用すると結果セットから任意のレコードを直接読み取れることです。これにより、ブラウザの動作が向上します。 変換処理では各レコードを順次に読み取る必要がなくなるため、レコード範囲指定やサンプリング処理にとって最も重要です。

forward only(順方向のみ)カーソルは、SQL Server やほかの SQL ソースでの大量の変換処理に対する充分なマージンを持ち、パフォーマンス効率が最も向上します。 接続は即座に実行され、変換処理速度が最高になります。 SQL Server によるテスト ケースでは、レコード件数 150,000 のテーブルで静的カーソルを使用した場合、変換処理の所要時間は約 4 分多くかかり、レコードの読み取りは 2 倍の時間を要しました。 また、静的カーソルを使用した場合のスタートアップ時間は、順方向のみカーソルを使用した変換処理の総時間よりも多くなりました。

ただし、順方向のみカーソルの場合、Map Designer では結果セット内の各レコードで繰り返しを実行する必要があります。 すなわち、依然として順次処理が必要であるため、順方向のみカーソル オプションによるソース データのブラウズは若干要領の悪いものとなります。ソース ブラウザは迅速にロードできますが、テーブルのセクション間を移動するたびに、完全にロードされるのを待たなければなりません。

static(静的)カーソルや dynamic(動的)カーソルの利点は、データ間のジャンプでソース ブラウズの効率が向上することです。データの初期読み込みは遅い場合もありますが、テーブルの先頭から末尾や中間へはほとんど遅延なく移動できます。動的カーソルと静的カーソルはどちらもレコードのランダム アクセスをサポートしています。

静的カーソルは、データの更新を検出しません。テーブルの参照中にデータが変更された場合、その変更を参照するにはいったんブラウザを終了して再起動します。動的カーソル オプションはデータの変更を追跡します。 このため、ターゲット ブラウザを開いたまま変換処理を実行した場合は影響を受けます。ただし、動的カーソルを維持するにはリソースを多く消費します。一般に、ブラウズには静的カーソルをお勧めします。

WhereStmt(ソースのみ)

SQL コネクタにパススルー機構を提供します。上級ユーザーはこの場を利用して、SQL クエリの WHERE 句を構築することができます。[SQL クエリ ステートメント]ボックスに長いステートメントを記述する代替方法として、これを使用できます。SQL データベース サーバーで、条件に基づいてデータをフィルタリングしてから、そのデータを Map Designer に送信する場合もこのプロパティを使用できます。 WHERE 句 を入力する場合、「WHERE」は省略します。このプロパティのデフォルト設定はありません。


メモ
ソース接続で SELECT ステートメントを使用する場合は、Where Statement を適用しないでくだい。 SELECT ステートメントを使用する場合は、そのステートメントに Where 句を含める必要があります。このプロパティの目的は、テーブルの選択時にデータ フィルタを有効にすることです。

ターゲット プロパティ

AutoCommit(ターゲットのみ)

SQL ステートメントによる変更のコミットをトランザクションの終了まで待たずに、ステートメントごとに自動的にコミットされるようにします。 AutoCommit を True に設定した場合、変更後に変更内容をロールバックすることはできません。デフォルトは False です。

BulkOperations(ターゲットのみ)

挿入処理を高速に実行するには、BulkOperations を使用します。このプロパティにより、レコードごとに挿入ステートメントを実行するか、または一括追加を実行するかが決定されます。デフォルト設定は False で、速度は遅くなります。速度を最大にするために Map Designer で一括追加を実行したい場合は、設定を True に変更してください。

CommitFrequency(ターゲットのみ)

このプロパティを設定すると、データベースに対するデータのコミット頻度を制御できます。デフォルトでは、CommitFrequency は 0 です。これは、データが変換処理の最後の時点でのみコミットされ、エラー時にロールバックすることができます。これは処理速度が最も遅い設定です。大量の変換を行っている場合には、このオプション(0)ではトランザクション ログが満杯になってしまうため、実用的ではありません。 CommitFrequency を 0 以外の任意の値に設定すると、指定した数のレコードがテーブルに挿入または更新された後、データベースをコミットするようコネクタに指示できます。 これにより、トランザクション ログが満杯になることは避けられますが、変換の再始動性が制限されます。

ConstraintDDL(ターゲットのみ)

ターゲット テーブル作成後に実行する追加の SQL データ定義言語ステートメントを指定できます。これは、SQL インポート コネクタで提供している SQL パススルーのサポートと同様です。 各行は必ず有効な SQL DDL ステートメントであることが必要です。このプロパティのデフォルト設定はありません。

たとえば、次のようなステートメントを指定できます。

CREATE UNIQUE INDEX index1 ON mytable (Field1 ASC)

CREATE INDEX index2 ON mytable (Field2, Field3)

上記のステートメントを実行すると、"mytable" というテーブルに 2 つのインデックスが作成されます。最初のインデックスでは重複を禁止しており、インデックス値は昇順で保存されます。2 番目のインデックスは、Field2 フィールドおよび Field3 フィールドの複合インデックスです。

ConstraintDDL が実行されるのは、ターゲットに対して置換モードを使用する場合のみです。エラーが発生した場合、そのエラーはエラーおよびイベント ログ ファイルに書き込まれます。 この場合、変換処理中に[変換エラー]ダイアログ ボックスが表示されます。 DDL エラーを無視する場合は、変換を続行できます。

ConstraintDDL は、ユーザーが DBMS のネイティブ SQL で DDL を指定できるエスケープ機構もサポートしています。"@" で始まるステートメントは DBMS に直接送信されます。


メモ
このオプションは置換モードの場合のみ有効です。
UseCursors(ターゲットのみ)

UseCursors プロパティを使用すると、カーソルの使用の許可と拒否を切り替えることができます。デフォルトは False です。 このプロパティが True に設定され、指定したドライバがカーソル挿入をサポートしていない場合、Map Designer は代わりにレコード追加の SQL INSERT モードを使用します。

エクスポートの場合、カーソル サポートはレコード挿入のパフォーマンスを向上させるためサポートされています。 Access などのデスクトップ データベースがこれに該当します。データベース サーバーの場合、挿入速度に目立った変化はありません。カーソル挿入の処理とほぼ同じ速度で、準備されたクエリを実行します。

カーソル挿入に関するもう 1 つの問題は、ドライバによってはターゲット テーブルにインデックスを付けないと、位置指定の更新(カーソル)を使用できないことです。 この問題に対処するため、ODBC エクスポート コネクタにはさらに PrimaryKey と ConstraintDDL の 2 つのプロパティがあります。

ソース プロパティとターゲット プロパティ

DriverCompletion

ドライバがユーザーへ情報の入力を要求するかどうかを制御できます。使用できるオプションは、"prompt"、"complete"(デフォルト)、"complete required"、および "no prompt" です。prompt オプションを指定すると、ユーザーはすべての情報の入力を要求されます。このオプションにより、ユーザーが入力するのを忘れた情報の入力が要求されます。complete required オプションを設定すると、接続の完了に必要な情報のみ入力が要求されます。no prompt オプションを設定すると、どの情報の入力も要求されません。

DriverOptions

ここには任意の有効な ODBC 接続文字列オプションを入力します。デフォルト設定はありません。

DSNTypes

Map Designer では、接続先となるデータ ソースまたはドライバを[データ ソース]ドロップダウン メニューから指定できます。DSN はコントロール パネルの ODBC データ ソース アドミニストレータで指定します。指定できるオプションは "System"、"User"、"User & System"、"Driver" および "File" です。デフォルト値は User & System です。

IdentifierQuotes

すべてのデータベースには引用識別子があります。引用識別子は SQL ステートメントを解析できる状態にして、SQL ステートメント内の列と文字列データを識別するのに使用します。たとえば、Oracle の場合、SQL ステートメントで列とテーブル名は二重引用符で表し、文字列データは一重引用符で表します。SQL ステートメントでは、識別子を特殊文字で囲むか、識別引用符のキーワードと一致させる必要があります(SQL-92 では区切り記号付き識別子とも呼ばれています)。たとえば、Accounts Receivable(売掛金)識別子は SELECT ステートメントでは次のような形で引用されます。

SELECT * FROM "Accounts Receivable"

識別引用符を使用しないと、パーサーは Accounts と Receivable という 2 つのテーブルがあると判断し、両者がカンマで区切られていないという内容の構文エラーを返します。 Map Designer では識別引用符として、Default、None、"(二重引用符)、'(一重引用符)の 4 とおりのオプションが用意されています。

MaxDataLength

長いデータ型に対する最大データ長です。 このプロパティのデフォルト設定は 1 MB(1048576)です。この数値は使用可能なメモリ容量とターゲット要件に基づいて再設定できます。

ODBC ドライバには、処理できる最大データ長に関して制限のあるものがあります。 アプリケーション(ODBC)ソースまたはターゲット コネクタを選択したときにデフォルト設定が 1 MB ではない場合は、Map Designer が特定の ODBC ドライバの機能を考慮してデフォルト値をプリセットします。この場合、MaxDataLength プロパティをデフォルト値より高い値に設定することはお勧めできません。

ModifyDriverOptions

ODBC 接続を保存しておくことができます。デフォルトは True です。 このオプションを False に設定すると、変換を実行するごとに接続情報を入力するよう要求されます。

PrimaryKey

PrimaryKey プロパティにより、主キーの作成に使用するフィールド名のリストを指定できます。フィールド名はカンマで区切られます。PrimaryKey プロパティに 1 つ以上のフィールド名が含まれている場合、この名前はコネクタが置換モードの場合に SQL CREATE ステートメントに組み込まれます。このプロパティのデフォルト設定はありません。

PrimaryKey プロパティの使用には追加の要件があります。 ドライバが IEF(integrity enhancement facility)をサポートしていることが必要です。これをサポートしているのは、より高度な ODBC ドライバのみです。

Synonyms

このプロパティを True に設定した場合は、シノニムを参照することができます。 エイリアス名がテーブル名と共にテーブル リストに表示されます。このプロパティのデフォルト設定は False です。

SystemTables

SystemTables プロパティは、ユーザーがデータベース管理者としてデータベースにログオンしている場合のみ適用できます。システム テーブルへは、データベース管理者のみがアクセスできます。True に設定されている場合は、このプロパティを使用してデータベース管理者が作成したテーブルをすべて参照できます。 システム テーブル名がテーブル リストに表示されます。デフォルトは False です。

TransactionIsolation(v3.x および v3.5 のみ)

トランザクション分離オプションにより、Netezza 経由でのデータベース テーブルの読み取りや書き込みの実行時に、5 種類の分離レベルのいずれかを指定できます。バージョン 3.x 、3.5 および IBM DB2 Universal Database のデフォルト値は[Serializable]です。

ANSI SQL 2 標準では、トランザクションの直列化に違反する可能性がある 3 つの方法が定義されます。それは、P1(Dirty Read)、P2(Nonrepeatable Read)、および P3(Phantoms)です。

5 種類の分離レベルは次のとおりです。

READ_UNCOMMITTED - P1、P2、P3 を指定できます。

READ_COMMITTED - P2、P3 を指定できます。P1 は指定できません。

REPEATABLE_READ - P3 を指定できます。P1 および P2 は指定できません。

SERIALIZABLE - P1、P2、P3 は指定できません。

VERSIONING - SERIALIZABLE トランザクションが実行できますが、同時実行に大きな影響はありません。

トランザクション分離レベルの詳細については Microsoft ODBC SDK マニュアルを参照してください。

Views

このプロパティを True に設定した場合は、ビューを参照することができます。 ビュー名がテーブル名と共にテーブル リストに表示されます。このプロパティのデフォルト設定は True です。

Encoding

このプロパティを使用して、XML のソース ファイルおよびターゲット ファイルで使用するエンコード方式を選択できます。

エンコードの選択肢を見るには、『Intermediate and Advanced Mapping User's Guide』のUnicode 4.0 のサポート を参照してください。

Encoding に関する注記

Shift-JIS エンコードは、日本語オペレーティング システムでのみ使用されます。

UCS-2 は有効なエンコード方式名ではなくなりましたが、UCS2 を使用することはできます。 XML ファイルでは UCS-2 を UCS2 に変更します。

ソース スキーマ

Netezza またはほかの ODBC ベースのコネクタがソースの場合、ツールバーの[ソース スキーマ]アイコンはアクティブになりますが、構造はロックされ変更できません。ここでは構造の表示のみができます。

ターゲット スキーマ

Netezza またはほかの ODBC ベースのコネクタがターゲットの場合は、ツールバーの[ターゲット スキーマ]アイコンがアクティブになります。アイコンをクリックすると、ターゲットとなる ODBC テーブルの構造を定義できます。 このウィンドウの基本的な使用法については、『Structured Schema Designer User’s Guide』の Structured Schema Designer ウィンドウを参照してください。

Netezza テーブルには次のオプションが適用されます。

ターゲット フィールド名

ターゲット データ テーブルに表示されるフィールド名です。

新規テーブルへデータを出力する場合は、各フィールドに対してフィールド名を入力できます。

既存テーブルへデータを出力する場合は、選択したテーブルのフィールド名がデフォルトで設定されます。

[マップ]タブの[ターゲット フィールド式]

ウィザードを使用して、一度に 1 レコードずつターゲット データをマップする手順については、『Intermediate and Advanced Mapping Guide』の データのマッピング を参照してください。

このオプションにより、データをソース データ ファイルにあるとおりに変換したり、任意のフィールドの実データを変形させたりすることができます。たとえば、計算の実行や、既存データへのデータの連結、複数フィールドのデータの結合、Map Designer による空白フィールドへのデータの入力、その他多数の変更を行うことができます。データに対してこれらの変更を加えるには、対象フィールドの[ターゲット フィールド式]セルに式を記述します。マッピング式の記述の詳細については、『RIFL Programmer's Reference Manual』の 式の記述 を参照してください。

データ型

ターゲット データ テーブルに格納されるデータ型です。

新規テーブルへ書き込む場合は、フィールドの[種類]セルで下矢印をクリックして表示される一覧から、使用可能なデータ型を任意に選択できます。

ODBC 接続で使用できるデータ型はテキスト型のみです。

既存テーブルにデータを追加する場合は、選択したテーブルのデータ型が各フィールドにデフォルトで設定されます。

サイズ

ソース データ ファイルまたはソース データ テーブルに保存されるフィールドのサイズです。このサイズは、Map Designer がプロパティ オプションの 1 つである StyleSampleSize に設定されたレコード数をスキャンした後に設定されます。サイズは必要に応じて変更できます。また、フィールドの型を変更すると、自動的に変更される場合もあります。

ターゲット ファイルでのフィールドのサイズを変えたい場合は、[ターゲット接続]タブまたは[マップ]タブから呼び出した[ターゲット スキーマ]グリッドで新しいフィールド サイズを設定します。


前へ

Navision Financials(ODBC 3.x)

次へ

NonStop SQL/MX(ODBC)