Я использую Couchbase Java SDK для запроса службы аналитики couchbase. Этот процесс описан в этом руководстве: https://docs.couchbase.com/java-sdk/2.7/analytics-using-sdk.html
Java SDK предоставляет объект Bucket
как средство доступа к couchbase. Однако корзина - это отдельный объект от набора данных аналитики. Например, моя корзина называется data
, и у меня есть набор аналитических данных, который я хочу запросить, с именем requests
.
Я не могу найти способ подключиться только к набору данных requests
. SDK будет подключаться только к корзине data
. Оттуда я могу запросить requests
набор данных, написав немного N1QL. Этот обходной путь означает, что учетные данные пользователя, которые я использую для выполнения аналитических запросов, также должны иметь доступ к моему основному производственному ведру data
, что я бы предпочел предотвратить.
Есть ли способ подключиться к простому набору данных аналитики с помощью SDK?
Код, который я сейчас создаю для подключения, выглядит так:
public class CouchbaseConfig {
@Bean
public Bucket bucket(CouchbaseProperties properties) {
return cluster().openBucket("data"); // Changing this to the data-set name returns error
}
private Cluster cluster() {
Cluster cluster = CouchbaseCluster.create("localhost");
cluster.authenticate("Administrator", "password");
return cluster;
}
}
Использование имени набора данных requests
в имени сегмента приводит к этой ошибке:
Failed to instantiate [com.couchbase.client.java.Bucket]: Factory method 'bucket' threw exception; nested exception is com.couchbase.client.java.error.BucketDoesNotExistException: Bucket "requests" does not exist.
Использование имени сегмента data
, но имя пользователя / пароль для аутентификации "analytics-reader" / "пароль" (только с Analytics Reader
) приводит к этой ошибке:
Could not load bucket configuration: FAILURE({"message":"Forbidden. User needs one of the following permissions","permissions":["cluster.bucket[data].settings!read"]})
Единственное, что я нашел, - это предоставить analytics-reader
пользователю «доступ к приложению» к корзине данных ????