Гектор: как запрашивать части составного типа

У меня есть данные, хранящиеся с использованием CompositeType, которые выглядят следующим образом:

RowKey: 101390
=> (column=1320987600000:P:350.0:symbol, value=AAPL/F6LbE.O, timestamp=1320771711561000)
=> (column=1320987600000:P:355.0:symbol, value=AAPL/F6LfE.O, timestamp=1320771711569000)
=> (column=1320987600000:P:360.0:symbol, value=AAPL/F6LjE.O, timestamp=1320771711576000)
=> (column=1320987600000:P:365.0:symbol, value=AAPL/F6LnE.O, timestamp=1320771711586000)
=> (column=1320987600000:P:370.0:symbol, value=AAPL/F6LrE.O, timestamp=1320771711592000)
=> (column=1320987600000:P:460.0:symbol, value=AAPL/F6LzF.O, timestamp=1320771711607000)
=> (column=1320987600000:C:350.0:symbol, value=AAPL/FuLbE.O, timestamp=1320771712117000)
=> (column=1320987600000:C:355.0:symbol, value=AAPL/FuLfE.O, timestamp=1320771712120000)
=> (column=1320987600000:C:360.0:symbol, value=AAPL/FuLjE.O, timestamp=1320771712123000)
=> (column=1320987600000:C:365.0:symbol, value=AAPL/FuLnE.O, timestamp=1320771712128000)

Композиция состоит из четырех частей: [отметка времени: тип: цена: имя_атрибута]

Можно ли запросить 1, 2 или все части компонентов, используя SliceQuery?

  • Например, я хочу запросить временную метку T1 -> T2 (это отлично работает)
  • Также нужно указать временную метку T1 --> T2 и Type = "C" и только "C"
  • Отметка времени T1 --> T2, тип = "C" И цена = "365,0"

Можно ли таким образом запрашивать части композита? В моем тестировании до сих пор мне не удавалось, и кажется, что композит сравнивается, как если бы это был только длинный массив байтов, а не отдельные компоненты.


person iganza    schedule 08.11.2011    source источник


Ответы (2)


От ответа ML: Вот пример такого, который вроде как наполовину запущен. Здесь в комментариях должно быть достаточно, чтобы вы начали: https://github.com/zznate/cassandra-tutorial/blob/master/src/main/java/com/datastax/tutorial/StaticCompositeIndex.java

Дайте мне знать, если это поможет.

person zznate    schedule 08.11.2011

Да, вы можете искать части композита. Если вы используете Cassandra 0.8.1 и выше, вам необходимо указать в вашей схеме компаратор CompositeType. Вот полное руководство по программированию запроса диапазона с использованием CompositeType: http://randomizedsort.blogspot.com/2011/11/cassandra-range-query-using.html

person Nehc    schedule 21.11.2011