Marklogic データベース (コンテンツ データベース) からすべてのコンテンツを一度に抽出できますか? ML は、そのようなすぐに使えるソリューションを提供しますか。mlcpについて読みました。これは、私にはコマンド ライン ユーティリティのように見えました。私が欲しいのは、モジュール DB に xquery として含めることができる関数です。
3 に答える
「抽出」の意味によって異なります...それはどのように結果が欲しいですか? 1 つの大きな連結ファイル ? ディレクトリツリー?zipファイル?また、DB 全体をメモリに格納することはできないため、データベース サイズがかなり小さい場合を除き、これを段階的に行う必要があることにも注意してください。
これを達成する方法を探す場所は次のとおりです。
https://docs.marklogic.com/xdmp:zip-create
すべてのドキュメントの単一の ZIP ファイルを作成し、それをファイル システムに保存できます。
https://docs.marklogic.com/xdmp:save これは、データベース全体をメモリに保持できる場合にのみ機能します。
または、すべてのドキュメントを繰り返し処理し、xdmp:save を使用して 1 つずつ保存することもできます
私の知る限り、MarkLogic のディストリビューションには、mlcp やバックアップなどを除いて、すぐに使用できるエクスポート ソリューションはありません。Information Studio のようなものがあればよかったのですが、インポートではなくエクスポート用です。
ただし、必要なすべての要素を利用できるので、これを行うコードを比較的簡単に作成できます。このために通常実行する基本的な手順は次のとおりです。
- 必要なドキュメントを特定し、できればURIレキシコンを介してそれらのURIを取得します
- このリストを 100 個のドキュメントに分割します
- @daldei が提案するように、データベースからドキュメントを読み取り、xdmp:zip-create や xdmp:save などの関数を使用してディスクに書き込むサブタスクをチャンクごとに生成します。
- おそらく、メインタスクとサブタスクが統計をデータベースに書き込むようにします。info: および infodev: ライブラリは、「チケット」を操作する機能を提供し、その目的に役立ちます。
チッ!