如何为 cassandra-stress 配置文件定义多个 table 定义和多列规范?

How do I define multiple table definitions and multiple column specs for cassandra-stress profile file?

# Keyspace Name
keyspace: demo1

# The CQL for creating a keyspace (optional if it already exists)
keyspace_definition: |
  CREATE KEYSPACE demo1;
# Table name
table: sample_test

# The CQL for creating a table you wish to stress (optional if it already exists)
table_definition: |
    CREATE TABLE sample_test (
        key1 blob PRIMARY KEY,
        value1 blob
    )

### Column Distribution Specifications ###

columnspec:
  - name: hash
    size: fixed(96)       #domain names are relatively short

  - name: body
    size: gaussian(100..300)    #the body of the blog post can be long
    population: uniform(1..10M)  #10M possible domains to pick from

现在如何在同一键空间内定义另一个 table?所有的例子都是关于定义一个 table。我还尝试像上面一样定义另一个 table 定义及其列规范,但随后出现以下错误 "com.datastax.driver.core.exceptions.InvalidQueryException: Batch too large"

很遗憾,你不能。压力曲线只能包含一个 table_definition,并且只能在其中定义一个 table。它甚至验证只有一个定义匹配 table 声明。您可以同时尝试 运行 压力工具的两个实例来获得该行为,这很不方便,但我认为这是除了编写自己的基准测试(这很棘手)之外唯一可用的解决方法。

此问题已在 Cassandra 上提出https://issues.apache.org/jira/browse/CASSANDRA-8780

它已经修复,但只会在下一个主要版本的 Cassandra (4.0) 中发布。