データ移動アルゴリズム
転送するデータのタイプと転送の方向 (インポートまたはエクスポート) に応じて、2 種類のプロセスがデータの移動に使用されます。
- テキスト形式になっていて、パーティション化もクラスター化もされていないデータは、単純なアルゴリズム を使用して両方向に移動できます。このアルゴリズムでは、データを直接ターゲット・ディレクトリーに移動します。BigSQL でのデータ移動には、このアルゴリズムだけがサポートされていることに注意してください。
- Hadoop 固有の形式で格納されているデータや、Hive パーティション化表またはクラスター化表に格納されているデータは、Hive エンジンを使用した 2 段階のアルゴリズム を使用して両方向に転送されます。このプロセスの一部に、Hive 上で実行される INSERT SELECT 操作があります。
データのインポート
- テキスト形式になっているデータや、パーティション化もクラスター化もされていない表には、単純なアルゴリズムを使用します。このアルゴリズムでは、データ・ファイルは直接 HDFS に転送され、元の形式で格納されます。
- Hadoop 固有の形式や、Hive パーティション化表やクラスター化表の場合は、2 段階のアルゴリズムが使用されます。
- 最初に、データはテキスト形式で HDFS に送信され、HDFS で一時表が作成されます。
- 次に、データがテキストから Hadoop 形式またはパーティション化/クラスター化表に変換され、テキスト・データが削除されます。
fq.debug.keep.tmptable = true パラメーターを使用して、トラブルシューティングなどの詳しい分析を行うために一時テキスト表を保持できることに注意してください。詳しくは、中間テキスト・データ・ファイルの検査 を参照してください。
fq.data.directmovement = true プロパティーを設定して、選択した Hadoop 形式の表かパーティション化表に直接データを書き込むこともできますが、この設定ではパフォーマンスが低下する可能性があります。詳細については、直接データ移動の施行を参照してください。
データのエクスポート
- テキスト形式 (以前に単純なアルゴリズムを使用して Hadoop にインポートされたデータか、
fq.input.path
パラメーターで指定された HDFS ディレクトリーに格納されたテキスト・ファイルのみ) には、単純なプロセスを使用します。 ファイルは Db2® Warehouse に直接ロードされます。 - 以前に 2 段階のプロセスを使用してインポートされたデータや、
fq.hive.tablename
パラメーターで指定された Hive 表 (単純なアルゴリズムを使用して NPS からインポートされており、そのメタデータが HDFS ディレクトリー内にある場合を除く) には、2 段階のアルゴリズムが使用されます。2 段階のプロセスには、以下のステップが含まれます。- Hive エンジンを使用して、データがテキスト形式に変換されます。一時 Hive 表が作成され、ソースの Hive 表から挿入されます。
- テキスト・データが Db2 Warehouse にロードされます。