API-интерфейс Cassandra, эквивалентный «SELECT… FROM… WHERE id IN (’…’, ‘…’, ‘…’);»
Вопрос
Предположим следующий набор данных:
id age city phone
== === ==== =====
alfred 30 london 3281283
jeff 43 sydney 2342734
joe 29 tokyo 1283881
kelly 54 new york 2394929
molly 20 london 1823881
rob 39 sydney 4928381
Чтобы получить следующий набор результатов..
id age phone
== === =====
alfred 30 3281283
joe 29 1283881
molly 20 1823881
..используя SQL, можно было бы выдать ..
SELECT id, age, phone FROM dataset WHERE id IN ('alfred', 'joe', 'molly');
Какой соответствующий вызов API Cassandra даст тот же набор результатов в одной команде?
Решение
CQL (SQL-подобный язык запросов Cassandra) теперь поддерживает это:
SELECT ... WHERE keyalias IN ('key1', 'key2', 'key3', ...);
Другие советы
вы бы сделали multiget_slice с ключами Альфреда, Джо и Молли и SlicePredicate columns_names с идентификатором, возрастом, телефоном
Эквивалент Cassandra можно смоделировать, как описано ниже:
Users = { //this is a ColumnFamily
"alfred": { //this is the key to this Row inside the CF
"age":"30",
"city":"london",
"phone":"3281283"
}, // end row
// more rows...
}
где «alfred» — ваш ключ (строки), а строка состоит из трех столбцов;возраст, город и телефон.(Поле метки времени опущено (для простоты) для трех столбцов)
Не связан с StackOverflow