首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kinetica多头查找

Kinetica多头查找
EN

Stack Overflow用户
提问于 2021-03-02 20:58:47
回答 1查看 64关注 0票数 0

我目前正在评估一个3节点集群上的Kinetica DB for analytics项目,以便在其上构建一个自定义仪表板。

据我所知,有一种直接从数据节点检索记录的方法,称为“多头查找”。

在使用Java API时,它似乎只连接并请求来自第一个节点的数据(也使用Wireshark进行了检查)。你知道哪里出问题了吗?

该表在vendor_id和rate_code_id上被分片,当在管理UI中按下"dist"-button时,它显示所有内容都已正确分配。

这是我的DDL:

代码语言:javascript
复制
CREATE TABLE "demo"."nyctaxi_sharded"
(
   "vendor_id" VARCHAR (4, shard_key) NOT NULL,
   "pickup_datetime" TIMESTAMP NOT NULL,
   "dropoff_datetime" TIMESTAMP NOT NULL,
   "passenger_count" TINYINT NOT NULL,
   "trip_distance" REAL NOT NULL,
   "pickup_longitude" REAL NOT NULL,
   "pickup_latitude" REAL NOT NULL,
   "rate_code_id" SMALLINT (shard_key) NOT NULL,
   "store_and_fwd_flag" VARCHAR (1) NOT NULL,
   "dropoff_longitude" REAL NOT NULL,
   "dropoff_latitude" REAL NOT NULL,
   "payment_type" VARCHAR (16) NOT NULL,
   "fare_amount" REAL NOT NULL,
   "surcharge" REAL NOT NULL,
   "mta_tax" REAL NOT NULL,
   "tip_amount" REAL NOT NULL,
   "tolls_amount" REAL NOT NULL,
   "total_amount" REAL NOT NULL,
   "cab_type" TINYINT NOT NULL
)
TIER STRATEGY (
( ( VRAM 1, RAM 5, PERSIST 5 ) )
);

这是截取的Java代码:

代码语言:javascript
复制
GPUdb gpudb = new GPUdb("http://myserver:9191", new GPUdbBase.Options().setUsername("user").setPassword("pw"));
        Type tableType = Type.fromTable(gpudb, "demo.nyctaxi_sharded");
        RecordRetriever<GenericRecord> recordRetriever = new RecordRetriever<>(gpudb, "demo.nyctaxi_sharded", tableType);
        List<List<Object>> lookupValues = Arrays.asList(
                        Arrays.asList("VENDOR1", 0),
                        Arrays.asList("VENDOR2", 0),
                        Arrays.asList("VENDOR3", 0),
                        Arrays.asList("VENDOR1", 1),
                        Arrays.asList("VENDOR2", 1),
                        Arrays.asList("VENDOR3", 1),
                        Arrays.asList("VENDOR1", 2),
                        Arrays.asList("VENDOR2", 2),
                        Arrays.asList("VENDOR3", 2));
        
        lookupValues.forEach(lookup -> {
           try {
               GetRecordsResponse<GenericRecord> record = recordRetriever.getByKey(lookup, "");
               System.out.println(record);
           } catch (GPUdbException e) {
               e.printStackTrace();
           }
        });

一旦它起作用了,我想在一个预先计算的物化视图上使用这个查找。这个是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-03 02:21:19

确认核心文件(在服务器上,通常位于/opt/gpudb/ gpudb.conf /etc)具有:

enable_worker_http_servers = true

缺省情况下,这可以是"false“,如果是"false”,那么Java的RecordRetriever将只使用一个节点,这就是您所描述的您所看到的节点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66439890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档