キャッシュの制限事項

TDV は、さまざまなソースからさまざまなキャッシュ ターゲットにデータをキャッシュできます。非常に多数のシステムを扱っていると、ちょっとした制限に直面することがあります。ここでは、データ キャッシングに関するそのような制限について説明します。

キャッシュされるビューには、cachekey と呼ばれるカラムがあってはなりません。
キャッシュ ターゲットがソースで使用可能なデータ タイプをサポートしていない場合、サポートされていないデータ タイプをキャッシュに格納しようとすると、エラーが発生します。ただし、キャッシュ ターゲットに送信する前に、サポートされていないデータ タイプをサポートされているデータ タイプにキャスト (たとえば、BOOLEAN を INTEGER 型にキャスト) できる場合があります。
テーブルにキャッシュする場合、ARRAY データ タイプはサポートされていません。
次のリソースは、ビューまたはプロシージャでラップされていない場合にはキャッシュできません。
出力のないプロシージャ。つまり、キャッシュするデータはありません。
キャッシュ ポリシーの使用を必要とする入力パラメーターを含むプロシージャ。
イントロスペクトされた XML ファイル。
システム テーブル。
フォルダーや定義セットなどの非データ ソース。

インクリメンタル キャッシュ 制限事項

インクリメンタル キャッシュでは、キャッシュ ポリシーは使用できません。

マルチ テーブル キャッシュ制限事項

マルチ テーブル キャッシングは、プロシージャではなく、テーブルとビューで使用できます。

Apache Hive キャッシングの制限事項

Hive をキャッシュ ターゲット データ ソースとして使用する場合は、cache_status/cache_tracking に別のデータ ソースを使用することをお勧めします。

Hive はデータ タイプ BLOB、CLOB をサポートしていません。したがって、Hive をキャッシュ ターゲットとして使用する場合、これらのデータ タイプのテーブルはキャッシュできません。

Microsoft SQL Server キャッシング 制限事項

bcp ユーティリティで Microsoft SQL Server を使用している場合、BLOB または CLOB データ タイプのデータ タイプ不一致エラーが発生する場合があります。

SQL Server データ ソースの場合、データをキャッシュする前に、DBO スキーマをリソースとして選択してイントロスペクトする必要があります。

<TDV_install_dir>/cacheloading/sqlserver フォルダーにあるバッファー ファイルに一時データが蓄積される場合があります。実行中のキャッシュ更新プロセスがない場合は、このフォルダーの内容を安全に削除できます。

MySQL キャッシング 制限事項

MySQL は、大文字と小文字が混在する文字列を二重引用符で囲んでも、Windows で実行されている場合は名前を小文字に設定します。MySQL テーブルをキャッシュ ターゲットとして使用する場合は、TDV ブラウズ オプションを使用してテーブルを選択するか、小文字の名前をテーブルに割り当てるようにしてください。

TDV ネイティブ ロード オプションでは、バイナリ データをロードできません。

MySQL をキャッシュ ターゲットとして使用する場合は、次の表に示すデータ ソースごとのデータ タイプの制限に注意してください。また、MySQL 5.5 がキャッシュ ターゲットの場合、時間とタイム スタンプのデータ タイプは、ミリ秒およびその他の小数秒の精度を失います。

キャッシュ データ ソース

サポートされないデータ タイプ

キャッシュ ターゲット

DB2 9.5

BLOB

MySQL 5.5

Oracle 11g

BLOB

LONGRAW

MySQL 5.5

Sybase 15

BINARY、IMAGE、VARBINARY、または TIMESTAMP

MySQL 5.5

SQL Server 2008

BINARY、IMAGE、VARBINARY、または TIMESTAMP

MySQL 5.5

SQL Server 2012

画像

MySQL 5.1

Oracle キャッシング制限事項

同じ Oracle データベース インスタンスが、キャッシュされたデータのソースおよびターゲットとして機能している場合、次のようになります。

LONG および LONG RAW データ タイプ。SQL*Plus は LONG RAW カラムを選択できません。この問題を回避するには、LONG RAW データ タイプを BLOB に変換します。
INTERVAL DAY TO SECOND および INTERVAL YEAR TO MONTH は、INSERT および SELECT ステートメントを使用してキャッシュされると、精度が失われます。

SAP HANA キャッシングの特徴

SAP HANA のキャッシュ ターゲット テーブルは、リレーショナル データベースでより一般的に使用される行ストア テーブルではなく、列ストア テーブルとして作成されます。パーティションが使用されている場合、SAP HANA はラウンド ロビン パーティショニングを使用して、行をパーティションに均等に分散します。キャッシングに使用されるテーブルは、マスター キーを持つ必要はありません。

Teradata キャッシング制限事項

Teradata には、TDV の データ キャッシュに影響する既知の問題があります。この問題により、データをキャッシュできず、TDV で [Trailing Spaces を無視] が FALSE に設定されている場合、Teradata に対して誤った クエリ結果が得られる可能性があります。この問題は、UTF-8 文字セットを使用する場合の Teradata ドライバーによる文字データの管理が原因で発生します。

キャッシュとクエリの問題の両方を解決するには、次のいずれかを実行できます。

[Trailing Spaces を無視] のグローバル サーバー設定を true に変更します。(Studio で、[管理] > [構成] を選択します。[末尾のスペースを無視] を見つけて選択し、[値] で [True] をクリックします。)
CHARSET=UTF8 を CHARSET=UTF16 に置き換えて、UTF-16 を使用するように Teradata 接続文字列を変更し、データ ソースを保存します。次に、cache_status テーブルを再作成し、キャッシュを更新します。
CHARSET=UTF8 を CHARSET=ASCII に置き換えて Teradata 接続文字列を ASCII を使用するように変更し、データ ソースを保存します。次に、cache_status テーブルを再作成し、キャッシュを更新します。文字が正しく保存または取得されないため、このソリューションはマルチ バイト国際文字を含むデータには機能しません。

キャッシュの問題だけを解決するには、 (Teradata ではなく) 別のデータ ソースにデータをキャッシュします。

クエリの問題だけを解決するには、フィルターが CHAR カラムにある Teradata に対するクエリでクエリ ヒントを提供します (「クエリ ヒントの指定」を参照)。

{ OPTION IGNORE_TRAILING_SPACES="True" }  

Teradata Multi-Table キャッシングの制限事項

Teradata Fast Export および Fast Load 機能は、TDV マルチ テーブル キャッシング オプションを使用したキャッシングでサポートされています。キャッシュにはデータの重複行がなく、「マルチ テーブル キャッシュ ターゲットとして使用するための Teradata の構成」で指定されているように構成されている必要があります。

Teradata FastLoad では、ターゲット テーブルが空である必要があります。
Teradata には、同時に実行できる FastLoad および FastExport タスクの数に制限があります。パラレル処理は、MaxLoadTasks および MaxLoadAWT パラメーターによって制御されます。制限を超える FastLoad タスクは拒否されます。
Teradata の場合、各 FastLoad または FastExport ジョブの最大セッションは、Teradata データベースの AMP の数に制限されます。通常、ほとんどのシナリオでは 8 つのセッションが適切に機能します。
Teradata の場合、行フェッチ サイズが 64 KB を超えると、Teradata エラーが発生します。Teradata ビッグ オブジェクトは、Teradata を使用して異なる転送モードでデータを返すように構成できます。64 KB 以上のデータを返すデータ行がある場合は、Teradata のドキュメントを参照して最適なソリューションを判断してください。
次のデータ タイプと関数のサポート制限があります。

データ ソース

キャッシュ ターゲット

サポートされないデータ タイプ

サポートされていない機能

Oracle

Teradata

BLOB、CLOB、LONG、LONGRAW、NCLOB

INTERVALDAYTOSECOND および INTERVALYEARTOMONTH に対してキャッシュを更新しても結果が返されません。

SQL Server 2008

Teradata

BINARY、IMAGE、NTEXT、TEXT、VARBINARY

 

Sybase

Teradata

BINARY、IMAGE、TEXT、VARBINARY

 

Teradata

Teradata

BYTE、BLOB、CLOB、LONGVARCHAR

 

Vertica 5.0 および 6.1

Teradata

BINARY、VARBINARY

 

Vertica キャッシングの制限事項

Vertica の長さの制限により、長さが 65000 を超える Vertica キャッシュに任意のデータ タイプ (BINARY、CHAR、VARCHAR、BLOB など) をマッピングすると、データ ソースに関係なくエラーが発生します。

同様に、Vertica は最大 15 桁の 精度のみをサポートします。16 桁を超えるデータは、Vertica によって丸められます。この精度の制限は、REAL、FLOAT、および DOUBLE データ タイプを扱う場合に特に顕著です。