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

时间:2016-01-20 00:31:07

标签: cassandra cassandra-2.1 cassandra-stress

# 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

现在如何在同一个键空间中定义另一个表?所有示例都谈到仅定义一个表。我也试过像上面那样定义另一个表定义及其列规范,但后来我得到以下错误" com.datastax.driver.core.exceptions.InvalidQueryException:批量太大"

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

此问题已经被提出于卡桑德拉https://issues.apache.org/jira/browse/CASSANDRA-8780

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