О Java Cassandra Client, какой из них лучше? Как насчет CQL?
Я пытаюсь разработать приложение, используя Hive в качестве базы данных, а затем я также найду noSQL-решения в качестве альтернативы ему.
Теперь решили разработать с использованием Cassandra, моя следующая проблема заключается в том, какой клиент мне использовать? который лучше, Гектор - чистые Java-решения, или Kundera с JPA, как разработка?
Я предпочитаю Гектора, но мне интересно узнать о Кундере. Кто-нибудь использует Кундера? Что лучше?
Мне интересно, как CQL (Cassandra Query Language). Может ли он интегрироваться с Hector?
Ответы
Ответ 1
Гектор медленно движется к интеграции CQL. Первые шаги были сделаны, но из-за опыта нестабильного API разработчики, похоже, отложили новый выпуск. CQL API довольно новый, так как он должен быть почти эквивалентен синтаксису SQL. Я сделал некоторые основные шаги с CRUD-операциями, чтобы проверить, что данные могут быть записаны и прочитаны через CQL.
Тем не менее, CQL JAR не используется из коробки, как стандартный драйвер JDBC, и пропускает некоторые важные аспекты функции. Взглянув на более или менее трудный для понимания API бережливости и не намного более простой API-интерфейс hector, я убежден, что CQL будет установлен как современный API доступа для Cassandra в версиях 0.8.1 и 1.0, где бережливость будет оставаться естественным, необработанным доступом в течение некоторого времени.
Конкурс между обоими API не имеет ничего общего с решением Гектора. Сам Гектор предоставляет дополнительные сервисы, такие как сбой и обработка соединений в кластере. Это функции, которые не рассматриваются ни бережливо, ни CQL.
Я действительно не верю во всех других маркерах O/R или даже тех, кто утверждает, что предоставляет полноценную JPA. Я не могу представить, как это должно работать.
Ответ 2
Отвечая на ваш вопрос о клиентах - Гектор по сути обеспечивает доступ к собственному API-интерфейсу Cassandra (столбцы, семейства столбцов, строки и т.д.), тогда как Kundera стремится скрыть эти данные и предоставить сопоставление объектов и баз данных.
Таким образом, Kundera упрощает быстрое сохранение целого ряда Java-объектов в Cassandra, но не может обеспечить эффективное сопоставление, возможно, потеряв часть производительности, которую обеспечивают подходы noSQL.
Гектор ожидает, что вы адаптируетесь к модели данных Cassandra - это будет труднее, но, скорее всего, принесет больше производительности.
Ответ 3
Теперь появился новый клиент Astyanax, выпущенный Netflix в январе 2012 года.
"Astyanax - клиент Java Cassandra. Он заимствует многие концепции из Гектор, но расходится в реализации пула соединений, а также клиентский API. Одним из основных соображений, чистая абстракция между пулом соединений и API Cassandra, поэтому что каждый может быть настроен и улучшен отдельно. Astyanax обеспечивает беглый API стиля, который позволяет вызывающему абоненту сузить запрос от ключ к столбцу, а также предоставление запросов для более сложных вариантов использования с которыми мы столкнулись. Эксплуатационные преимущества Astyanax Гектор включает более низкую задержку, уменьшенную дисперсию латентности и лучшую обработки ошибок".
Исходный код для Astyanax размещен в Github: https://github.com/Netflix/astyanax
Ответ 4
Подробнее об использовании CQL с Cassandra и Hector см.
https://github.com/rantav/hector/wiki/Using-CQL
Следующая ветка списка рассылки - хорошая дискуссия о том, где мы будем работать с CQL как API:
http://groups.google.com/group/hector-users/browse_thread/thread/540dc9c3908fbb44/f5ee488f2178e2f4
Ответ 5
Для полноты я думаю, что следует упомянуть библиотеку Pelops. Гектор, кажется, наиболее часто используется, но у Пелопса есть более простой API. Pelops не поддерживает CQL.
Исходя из Ruby, я считаю, что оба они чрезвычайно подробные и императивные.
Ответ 6
Kundera больше не полагается на Solandra для подхода к индексированию. Он позволяет вам использовать дополнительную поддержку индексирования, предоставляемую Cassandra, а также дает вам возможность запускать jpa-запросы через OPP (например, запросы диапазона и т.д.). Мы работаем над поддержкой поддержки CQL.
Взгляните на:
http://mevivs.wordpress.com/2012/02/13/how-to-crud-and-jpa-association-handling-using-kundera/
для более подробной информации.
-Vivek
Ответ 7
Нет java-клиента на одном уровне с hector, hector - лучший, и в стороне hector работает поддержка cql. Я видел, что в этом месяце cql фиксирует для hector в github, но не знает его окончательного состояния. Вы можете задать его группе пользователей hector http://groups.google.com/group/hector-users
Также есть очень простой объект mapper в hector
https://github.com/rantav/hector/wiki/Hector-Object-Mapper-%28HOM%29
Мой лучший,
Сердар Ирмак
Ответ 8
Kundera выпущен 2.0.4:
Основные изменения в этой версии:
- Перенасыщение перекрестного хранилища данных (простое для запуска существующего приложения mysql поверх nosql)
- поддержка реляционных баз данных (например, Mysql и т.д.)
- заменить solandra на индексирование на основе lucene.
- Поддержка добавлена для двунаправленных ассоциаций.
- Исправлены улучшения производительности.
Мы протестировали и 1 миллион вставок с правильной индексацией произошло через 6 минут.
Вивек
Ответ 9
Мне еще предстоит попробовать Гектор, но я участвую в последнем выпуске Kundera 2.0.1. Я предлагаю вам попробовать. С момента своего создания произошли серьезные изменения, и вы можете увидеть множество новых функций, добавляемых и исправленных ошибок. В настоящее время он поддерживает JPA 1.0 и Cassandra 0.7.6, но мы планируем добавить поддержку Cassandra 0.8 и JPA 2.0 в ближайшее время. Здесь есть довольно хороший пример: https://github.com/impetus-opensource/Kundera/wiki/Getting-started, который может помочь вам приступить к работе.
Ответ 10
Astyanax api создает человеко-читаемый код и включает объединение пулов.
Ответ 11
Поддержка CQL над cassandra была интегрирована в kundera 2.0.6 (еще не выпущена). Теперь он позволяет выполнять CQL как native файл.
-Vivek