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