Как получить доступ к локальным данным узла Cassandra - PullRequest
1 голос
/ 13 февраля 2012

Из того небольшого понимания Cassandra, которое у меня есть, кажется, что локальность данных в основном прозрачна для клиентского приложения, которое обращается к узлу, как и должно быть.

Однако, что если я явно хотел получить доступ только к данным семейства столбцов, локальных для узла, к которому я подключен? Это возможно? Я не нашел способа получить это из клиентского API из коробки, но кажется, что я мог бы получить часть этой информации через системные таблицы, но я не совсем понимаю, как это сделать .

Идея состоит в том, чтобы выполнить mapreduce, но без использования Hadoop. Локальный клиент будет подключаться к своему локальному узлу кассандры, выполнять агрегацию локальных данных и затем передавать их обратно в восходящий поток.

Такое вообще возможно? Судя по всему, это кажется возможным, поскольку я видел доказательства того, что Hadoop может использовать Cassandra, но примеры, похоже, направлены на Hadoop, а не на общий клиент. Локальный клиент (немного говорящий с Касандрой) будет на Java. В настоящее время я использую Hector, но не уверен, что он предоставит какую-либо информацию о местонахождении данных.

1 Ответ

2 голосов
/ 29 марта 2012

A недавняя статья в Netblix Techblog представляет Aegisthus, проект, который считывает SSTables, хранящиеся на диске в кластере, и объединяет их в единое согласованное представление данных (в MapReduce). Я предположил бы, что механика тогда будет тривиально существовать для генерации представления данных на одном узле.

К сожалению, я не думаю, что они открыли этот инструмент, поэтому вы не сможете его использовать. Максимум, что может быть на данный момент, - проблеск того, что да, можно естественным образом читать таблицы SSTable, используя код не-Кассандры.

Возможно, вы сможете взломать что-нибудь вместе, используя исходный код Cassandra, который читает SSTables и который питает локальный клиент, который вы надеетесь построить. Хорошей отправной точкой было бы рассмотрение источника org.apache.cassandra.tools.SSTableExport, который используется в инструменте sstable2json.

...