ユーザーガイド > データシップパフォーマンスの最適化 > データシップの制限
 
データシップの制限
一部のリソースの制約により、データシップの最適化の使用が制限されます。ほとんどの制限は、データタイプの不一致に関連しています。データタイプの不一致はデータの変換によって処理されますが、さまざまなソースからの特定のデータタイプは、選択したターゲットと互換性がありません。通常、このようなデータタイプの不一致は、数値精度で最も顕著です。
次に、データシップの最適化の使用が推奨されないケースのリストを示します。
データソースタイプ
制限
Microsoft SQL Server
bcpユーティリティでMicrosoft SQL Serverを使用している場合、BLOBまたはCLOBデータタイプを使用していると、データタイプの不一致エラーが発生する可能性があります。
Netezzaへ
Netezzaは、BINARYまたはVARBINARYタイプ(Oracleなど)のデータを含むソーステーブルのデータシップターゲットにすることはできません。
Netezzaは、64 KBを超えるLONGVARCHAR列またはVARCHAR列があるテーブルのデータシップターゲットにすることはできません。一時テーブルの作成に失敗するためです。
Netezzaがデータシップソースである場合、FLOATまたはDOUBLEデータタイプは、異なるタイプのターゲットに送信されると値が丸められるため、精度を失う可能性があります。
NetezzaからSybase IQへ
NetezzaからSybase IQへのデータシップでは、NULL値がゼロに置き換えられます。これにより、データシップが無効になっている場合とは異なるクエリー結果が得られます。
Sybase QまたはNetezzaからOracleへ
Sybase IQまたはNetezzaデータソースがOracleをデータシップターゲットとして使用する場合、送信されるテーブルにある末尾のスペースは、Oracleテーブルを含む結果セットでトリミングされます。
Sybase IQからNetezzaへ
Sybase IQデータソースがデータシップターゲットとしてNetezzaを使用する場合、Netezzaデータベースは結果セットデータにパディングスペース文字を追加するため、データの不一致が発生する可能性があります。
Oracleへ
Oracleデータベースがデータシップターゲットで、転送されたデータにUTF-8でエンコードされた東アジア文字が含まれている場合、列長制限の例外が発生する可能性があります。
UTF-16文字セットを使用するOracleデータベースには、この問題はありません。
Sybase IQへ
FLOATタイプのデータをSybase IQデータベースに移動する場合、Sybase IQ JDBCドライバーがFLOATデータタイプを処理する方法が原因で、データのスケールが失われる可能性があります。
Sybase IQ Type4ドライバー
Sybase IQ Type4ドライバーは、タイムスタンプ列の精度を上げ下げします。これにより、精度が失われる可能性があります。この問題を回避するには、Sybase IQ Type2ドライバーを使用します。
Teradata
Teradataは、MaxLoadTasksおよびMaxLoadAWTパラメーターを使用して、FastLoadおよびFastExportタスクの同時実行数を制御します。過剰なFastLoadまたはFastExportタスクは拒否されます。
各FastLoadまたはFastExportジョブのセッションの最大数は、TeradataデータベースのAMPの数に制限されます。ほとんどのシナリオでは、8つのセッションが適切に機能します。
TeradataのUNIONの実装はSQL標準に準拠していないため、データがTeradataに送信されたときにデータの不一致が発生する可能性があります。
行フェッチサイズが64 KBを超える場合、Teradataエラーが発生します。この問題の最善の解決策については、Teradataのドキュメントを参照してください。
Teradata FastLoadでは、ターゲットテーブルが空である必要があります。ターゲットのTeradataテーブルが空でない場合、JDBCを使用してデータをテーブルにロードします。
Verticaへ
Verticaの場合、BINARY列またはVARBINARY列の最大長は65000です。