1

ETL プロセスの一環として、Couchbase バケット (Couchbase Enterprise 4.5) からすべてのドキュメント キー ID を読み取ろうとしています。このバケットには、数千万のドキュメントが含まれる場合があります。これをテストするために (この段階では、このアプローチがニーズに十分に対応できるかどうかを確認しようとしています)、次のようなコードを使用して大きな serverSideTimeout 値を設定しています。

final N1qlParams n1qlParams = N1qlParams.build().serverSideTimeout(1L, TimeUnit.DAYS);
aBucket.query(N1qlQuery.simple("select meta(b).id from `my_bucket` as b", n1qlParams))

これは実行を開始し、サブスクライバーはクエリから ID を取得し始めますが、次のエラーが発生します。

{"msg":"Index scan timed out - cause: Index scan timed out","code":12015}

実際にはプライマリ インデックスのすべてを読み込もうとしているので、インデックス スキャンを実行する必要があることに驚きはありません。「インデックス スキャンのタイムアウト」に関する明らかな関連する質問では、インデックス スキャンのタイムアウト値を調整する設定があるとコメントに記載されていますが、この設定がどこにあるのかわかりません。N1qlParams オブジェクト、CouchbaseEnvironment、および Couchbase Admin UI の Cluster 設定の Index Settings セクションを調べましたが、この設定がどこにも見つかりません。フル インデックス スキャンを実行する予定のクエリに対して、インデックス スキャン タイムアウトをより長い値に設定するにはどうすればよいですか?

4

1 に答える 1