Мне нужно прочитать 3 ТБ производственных данных из базы данных Cassandra.
Я реализовал пейджинг с использованием драйвера java, но в этом методе используется значение смещения, что означает, что я снова и снова отслеживаю свои данные, чтобы достичь определенногострока и этот процесс использует кучу памяти, что не является хорошей практикой.Я хочу читать данные, не используя много кучи памяти
Как правило, я хочу получить 10000 строк в пакете, а затем снова прочитать следующие 10000, не читая первые десять тысяч чтений снова
Я немне не нужна высокая задержка чтения, моя единственная проблема - чтение данных без использования большого количества кучи памяти ...
вот мой код в части Statement select = QueryBuilder.select().all().from("demo", "emp");
, и вот как я выполняю пейджинг
List<Row> secondPageRows = cassandraPaging.fetchRowsWithPage(select, 100001, 25000);
printUser(secondPageRows);
Где 100001 - это начальное значение, из которого я хочу вывести строку, а 25000 - размер страницы.поэтому здесь я должен сначала достичь 100000, а затем я напечатаю 100001-е значение.это вызывает у меня проблему с кучей, плюс в моем случае, я не хочу, чтобы в конце одной страницы была указана первая запись для другой страницы.