Couchbase Analytics Java SDK 连接创建 + 安全角色
Couchbase Analytics Java SDK connection creation + Security Roles
我正在使用 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
存储桶。从那里我可以通过编写一些 N1QL 来查询 requests
数据集。此解决方法意味着我用于 运行 分析查询的用户凭据还必须能够访问我的主要生产 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" / "password"(仅 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
用户 'Application Access' 提供给数据` 存储桶
使用 SDK3 和 Couchbase 6.5 可以直接连接到分析。在所有以前的版本(包括 SDK 2.7)中,查询分析的唯一方法是先连接到存储桶。
我正在使用 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
存储桶。从那里我可以通过编写一些 N1QL 来查询 requests
数据集。此解决方法意味着我用于 运行 分析查询的用户凭据还必须能够访问我的主要生产 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" / "password"(仅 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
用户 'Application Access' 提供给数据` 存储桶
使用 SDK3 和 Couchbase 6.5 可以直接连接到分析。在所有以前的版本(包括 SDK 2.7)中,查询分析的唯一方法是先连接到存储桶。