2015-03-25 2 views
4

Я пытаюсь понять основы модели данных Кассандры. Я использую CQL. Как я знаю, схема должна быть определена до того, как кто-либо сможет вставить в новые столбцы. Если кому-то нужно добавить любой столбец, можно использовать ALTER TABLE и значение INSERT для этого нового столбца.Можно ли вставить/записать данные без определения столбцов в Кассандре?

Но в окончательном руководстве cassandra написано, что Cassandra меньше схемы.

 
In Cassandra, you don’t define the columns up front; you just define the column 
families you want in the keyspace, and then you can start writing data without defining 
the columns anywhere. That’s because in Cassandra, all of a column’s names are 
supplied by the client. 

Я смущаюсь и не нахожу ожидаемого ответа. Может кто-нибудь, пожалуйста, объясните мне это или скажите мне, если мне что-то не хватает?

Заранее спасибо.

ответ

4

Вы здесь: "Кассандра, окончательный путеводитель": книга 3/4 лет, в которой говорится о том, что изменилось давно. Теперь вы должны определить структуру таблиц, прежде чем сможете записывать данные.

Here вы можете найти некоторые причины внедрения CQL и отказ от схемы.

The official Datastax documentation должно быть вашим окончательным руководством.

НТН,
Карло

4

Theres два различных API-интерфейсы для взаимодействия с Кассандрой для записи данных. Сначала есть API-интерфейс, который всегда позволял создавать столбцы динамически, но также поддерживает добавление метаданных для ваших столбцов. Далее theres новый API на основе CQL. CQL был создан, чтобы обеспечить еще один уровень абстракции, который сделает его более удобным для работы с Cassandra. С CQL вам необходимо определить схему для ваших имен столбцов и типов данных. Однако это не означает, что нельзя использовать динамические столбцы с использованием CQL.

См. Здесь отличия: http://www.datastax.com/dev/blog/thrift-to-cql3