Я использую Cassandra 3.11.4 и Spark 2.3.3.Когда я запрашиваю множество ключей раздела (в течение 3 месяцев, когда минута - это ключ раздела = 3 * 30 * 24 * 60 ключей раздела) с помощью joinWithCassandraTable , я вижу множество журналов медленного времени ожидания в cassandra debug.log вроде:
<SELECT * FROM event_keyspace.event_table WHERE partitionkey1, partitionkey2 = value1, value2 AND column_key = column_value1 LIMIT 5000>, time 599 msec - slow timeout 500 msec
<SELECT * FROM event_keyspace.event_table WHERE partitionkey1, partitionkey2 = value5, value6 AND column_key = column_value5 LIMIT 5000>, time 591 msec - slow timeout 500 msec/cross-node
Я использую repartitionByCassandraReplica перед joinWithCassandraTable .
Я вижу, что дисковый ввод-вывод идет в100%.Если я изменю модель данных, в которой вместо ключа используется час, а не минуты, будут созданы большие разделы, что неприменимо.
Я подозреваю, что это ограничение 5000 может быть причиной этого, но даже я установил input.fetch.size_in_rows этот журнал не изменился.
sparkConf.set("spark.cassandra.input.fetch.size_in_rows", "20000");
Как мне установить это LIMIT 5000 предложение?