【问题标题】:Nodejs + Cassandra driver --- getting error 'unconfigured table' when trying to create materialized viewNodejs + Cassandra 驱动程序 --- 尝试创建物化视图时出现错误“未配置的表”
【发布时间】:2018-07-31 21:08:29
【问题描述】:

我在 Nodejs 8.9 和最新的 Datastax Cassandra 驱动程序上运行。 在服务启动时,我正在执行 2 个查询,一个创建一个表(以防它不存在),另一个创建一个物化视图。

表创建查询通过没有任何问题,但是当我为物化视图执行查询时,我收到“未配置表”错误。

我尝试调试它,并看到(通过终端)在查询执行后该表确实没有出现在 Cassandra 中,它只有在我完全停止服务后才会出现。我尝试在创建表并重新创建后关闭连接,但仍然出现相同的错误。

这就是我执行查询的方式:

try{
     let respose = await client.execute(query, null, queryOptions);    
   }catch(error){
     throw (error);
   }

更改 CONSISTENCY_POLICY 也无济于事。

请指教。

【问题讨论】:

    标签: node.js cassandra


    【解决方案1】:

    通常,当所有节点之间的架构不一致时,就会发生这种情况。默认情况下,驱动程序应等待 10 秒,直到达成一致。这个时间是由ClientprotocolOptions.maxSchemaAgreementWaitSeconds参数控制的——试着增加这个参数试试。

    另外,您需要检查您的集群是否一致 - 请运行 nodetool describecluster as described in documentation

    【讨论】:

    • 我明白了,即使 CONSISTENCY_POLICY 设置为 1 也适用吗?
    • 架构更改与读/写操作是分开的。更多详情请见stackoverflow.com/questions/41248615/…
    • 为什么要增加呢?而不是减少它?另外,也许我应该在尝试创建物化视图之前将我的服务设置为等待几秒钟?
    • 有时八卦的发生速度不够快...通常,对于具有 DDL 操作的查询,响应具有指示架构更改的特殊标志 - 在这种情况下,调用内部函数 _waitForSchemaAgreement 等待最大指定时间.
    • 我尝试将保管库增加到 20 秒,但仍然出现同样的错误。
    猜你喜欢
    • 2019-06-04
    • 1970-01-01
    • 2013-10-06
    • 2015-08-16
    • 2017-08-08
    • 2011-12-30
    • 2017-04-07
    • 2017-04-27
    • 1970-01-01
    相关资源
    最近更新 更多