Virtual DataPort 5.5 の変更点

Virtual DataPort 5.5 の変更点は以下のとおりです。

SQL 3 値論理への準拠

Denodo 5.5 以降、Virtual DataPort は、SQL 標準で定義されている 3 値論理に完全に準拠しています。Denodo Platform の以前のバージョンは、この標準に準拠していません。この変更により、クエリが異なる結果を返す可能性があります。

3 値論理では、boolean データ型は、値 TrueFalse 、および Unknown (NULL 値として表される) で構成されると定義しています。 null 値または Unknown 値を使用する比較演算は Unknown 結果を返します。

以下の例は、この変更がどのようにして異なる結果をもたらすかを説明しています。たとえば、次のようなクエリを実行するとします。

SELECT ... WHERE NOT (a = b)

結果の行のいずれかで、 aNULL そして b1 になっています。

Virtual DataPort の以前のバージョンでは、 (a = b)false に評価され、 NOT(a = b)true に評価されます。したがって、この行は結果に追加されます。

SQL 標準で示されているように、Virtual DataPort では (a = b)Unknown に評価します。これは aNULL であるためです。NOT (Unknown) を評価した結果も Unknown です。そのため、この行は結果に追加されません。

詳細については、VQL ガイドの「 3 値論理 」を参照してください。

キャッシュ - デフォルトのフェッチサイズ

Denodo 5.5 以降、キャッシュデータソースからデータを取得する際のデフォルトのフェッチサイズは、1,000 に設定されています。Denodo 4.7 以前では 10 に設定されています。

ほとんどの場合、フェッチサイズを 1,000 にすると、データの取得スピードが大幅に向上します。ただし、データの行数は少ないがサイズが非常に大きい場合、この値がパフォーマンスのニーズを満たすかどうかをテストすることをお推めします。数メガバイトを占める blob 型のフィールドをいくつか含んでいると、行のサイズは大きくなります。blob フィールドに大きな画像、長い PDF 文書などが含まれている場合、このようなことが発生します。

CAST 関数

Denodo 5.5 以降、以下の 2 つの条件を満たしている場合、 CAST 関数は、値をテキストに変換する際に出力を切り詰めます。

  1. ターゲットのデータ型に長さが指定されている。

  2. かつ、この長さが入力値の長さより短い。

たとえば、 CAST ("Denodo" AS VARCHAR(2)) は、ターゲットの型で入力値の長さよりも短い長さを指定しているため、「De」を返します。

Virtual DataPort 5.0 では、値を切り詰めないように CAST 関数の動作を変更できます。上位のバージョンでは、CAST 関数の動作は変更できず、必要に応じて文字列が切り詰められます。

予約語の追加

Virtual DataPort 5.5 では新しい予約語 (ビューの名前またはフィールドの名前として使用できない語) が定義されています。したがって、現在のバージョンで使用するビューは Virtual DataPort 5.5 で作成できない可能性があります。VQL ガイドの図「 VQL ステートメントを指定するための基本プリミティブ」には、Virtual DataPort の予約語の一覧が記載されています。

互換性のないソース型プロパティの設定禁止

Virtual DataPort バージョン 5.0 では、ビューのフィールド型を型 T に設定でき、フィールドの「ソース型プロパティ」では互換性のないサブタイプを選択できます。Denodo 5.5 以降、Virtual DataPort でこのようなことはできなくなりました。つまり、サブタイプが INTEGERtext 型のフィールドは使用できません。

互換性のないサブタイプが設定されたフィールドを持つビューは、Virtual DataPort 8.0 にインポートできます。ただし、これらのビューを編集する際は、互換性のあるサブタイプをフィールドに割り当てなければ、ウィザードで変更を保存できません。