4

私はMarkLogicを初めて使用し、条件に基づくフィルターなどの変換を使用して巨大なcsv /テキストデータをダンプするように評価しています。私が知る限り、2つの方法を使用してデータをダンプできます。

1) Using java api for MarkLogic in a multi-threaded environment.
2) MLCP with custom transformation.

これを達成するためのより良い方法はどれですか?または、私が知らない他のものがある場合。

前もって感謝します。

4

1 に答える 1

4

あなたが言及した両方の方法が機能します。1 つは実装が簡単ですが、もう 1 つはパフォーマンスを向上させる可能性があります。

カスタム変換で MLCP を使用するのは簡単です。MLCP は、CSV データを処理して XML または JSON に変換する方法を既に知っています。カスタム変換を使用すると、単一の XML または JSON ドキュメントを入力として取得し、必要に応じて変更できます。実装は非常に簡単です。注意事項は次のとおりです。

変換を使用する場合、バッチ サイズは常に 1 に設定され、-batch_size オプションは無視されます。

大規模なデータ セットでは、これはデータが読み込まれる速度に顕著な影響を与えます。変換で URI をいじるつもりがない場合は、-fastloadオプションを検討してください。

代わりに Java API を使用する場合は、CSV を解析し (ライブラリが存在すると確信しています)、目的の変換を適用して挿入を行う必要があります。それはあなたが書く必要があるコードです(そして、これを時間をかけて行う場合はおそらく維持する必要があります)が、すでに変換されたドキュメントの束を挿入するので、複数のドキュメントを単一のドキュメントに挿入できます取引

これが 1 回限りのプロセスである場合、コンテンツが大規模でない限り、MLCP に傾倒します (大規模と定義するように求めないでください)。このジョブを長期にわたって複数回実行する場合は、Java レイヤーで実行する方が価値がある可能性が高くなります。

いずれにしても、MarkLogic サーバーへのコンテンツのロード ガイドの「コンテンツのロード戦略の設計」セクションを確認することをお勧めします。

于 2016-06-10T14:24:41.473 に答える