2013-05-08 4 views
0

Я пытаюсь получить все столбцы строки в Кассандре, используя Thrift 1.0 lib. Я нашел несколько примеров прибегая к помощи, в частности:Cassandra createSliceQuery clear

SliceQuery<String, String, String> sliceQuery = hectorTemplate.createSliceQuery(
    StringSerializer.get(), StringSerializer.get(), StringSerializer.get()); 
sliceQuery.setColumnFamily("myname"); 
sliceQuery.setKey("myid"); 
sliceQuery.setRange(null, null, false, 20); 
QueryResult<ColumnSlice<String,String>> queryResult = sliceQuery.execute(); 
ColumnSlice<String,String> slice = queryResult.get(); 
List<HColumn<String, String>> retrievedColumns = slice.getColumns(); 
for (HColumn<String, String> column : retrievedColumns) { 
    System.out.println(column.getName() +"::"+ column.getValue()); 
} 

Однако, я не мог найти какую-либо информацию о том, что эти параметры и типы в объектах Hector являются ??

Например, здесь:

SliceQuery<String, String, String> 
  • все типы здесь String - каковы они типа? Тип имени столбца? типы значений столбцов?

Затем мы указываем параметры в createSliceQuery():

hectorTemplate.createSliceQuery(
    StringSerializer.get(), StringSerializer.get(), StringSerializer.get()); 

снова - что эти сериализаторов для? почему существуют только 3 сериализатора - есть ли для первого и последнего столбцов и что-то еще? Что делать, если я получаю много столбцов, как указать для них сериализаторы?

Затем мы получаем

List<HColumn<String, String>> 

- опять же, что эти строковые типы для? Если у меня есть столбец типа BytesType - где это указать?

Если есть некоторые достойные документы API (а не только сигнатуры методов без объяснения их параметров), можете ли вы указать мне их?

спасибо! Марина

+0

Ohhhhh .. держаться. подождите, пожалуйста. вы можете задать один вопрос одновременно? Скорее выберите API, может быть astyanax, hector, родной двоичный драйвер или черепа и можете задать вопрос на их основе? – abhi

+0

Это хороший вопрос о API-интерфейсе Hector (я не понимаю, почему вам непонятно, какой API находится под вопросом). Действительно, Гектор javadoc, похоже, не документирует общие типы. – Tom

+0

Для чего это стоит, взгляните на Пелопса. Это превосходно разработанная и документированная клиентская библиотека Cassandra. Я никогда не понимал, почему большинство людей идут на Гектора. – Tom

ответ

1

В случае SliceQuery<K, C, V>, вот параметры типа:

К - тип ключа

C - тип имени столбца

V - Тип значения столбца

Опять же в случае HColumn<N,V> введите параметры

N - тип имени столбца

V - тип значения столбца

Похожие случай createSliceQuery

+0

Спасибо, абхи, это имеет смысл. Еще одно уточнение: в случае SLiceQuery мы возвращаем список столбцов, и их типы, скорее всего, будут разными. Однако мы указываем этот список как: List >, который для меня выглядит так, будто мы ожидаем, что все столбцы будут иметь тип ... Как будут работать разные типы в этом случае ? Благодаря!! – Marina

+0

просмотрите этот блог http://stackoverflow.com/questions/12086186/reading-columns-with-different-valuetypes. Еще если вам это не ясно, то дайте мне знать – abhi

+0

спасибо, abhi, этот пост объясняет это отлично – Marina