Мне нужно смоделировать и хранить финансовые данные в Apache Cassandra.Моделирование анализа финансовых данных в Apache Cassandra?
Доступ к данным осуществляется по дате и бизнес-единицам, поэтому в настоящее время моя модель использует идентификатор даты и бизнес-единицы в качестве составной строки.
Я хочу использовать широкие ряды, чтобы я мог потянуть фигуры на целый день (и единицу) в одном запросе.
В любой день, для конкретного бизнес-единицы, мне нужно хранить серию более гранулированных срывов, как и (игнорировать цифры, они чисто иллюстративный):
| rowkey | USD | GBP | JPY | etc ....
|-------------|-------|------|------|----------
| 31122014-1 | 112 | 3006 | 234 |
| 31122014-2 | 3378 | -12.4| 998 |
| 31122014-3 | -456 | 2034 | 127 |
, а затем более подробная разбивка, используя соединение колонки:
| rowkey | USD-D1 | USD-D2 | GBP-D1 | GBP-D2 | etc ....
|-------------|--------|--------|--------|------------------
| 31122014-1 | 65 | 54 | 175 | 29 |
| 31122014-2 | 2003 | -6.4 | 603 | 349 |
| 31122014-3 | -230 | -198 | -53 | 217 |
А потом еще более подробную разбивку:
| rowkey | USD-D1-X1 | USD-D1-X2 | USD-D1-X3 | USD-D2-X1 | etc ....
|-------------|-----------|-----------|-----------|-----------|-------
| 31122014-1 | 23 | 16 | 98 | 29 |
| 31122014-2 | 389 | -3.2 | 237 | 119 |
| 31122014-3 | -105 | -67 | -28 | 178 |
Это лучший способ моделирования этих сбоев с использованием трех отдельных семейств столбцов (как показано здесь)?
Или имеет смысл хранить только наиболее гранулированную разбивку, а затем использовать некоторую форму агрегации столбцов (если она существует) для извлечения менее гранулированных наборов данных?
Я знаю, что агрегация Cassandra ограничена/не существует, я не нашел ничего в API, чтобы предложить, как я могу заполнить столбцы, подобные этому.
Я знаю, что мог бы выполнить агрегацию в уровне приложения, но тогда возникает вопрос о компрометации между получением ненужных данных, перемещением вычислительных издержек и сохранением дополнительных семейств столбцов. Я надеюсь, что Cassandra предоставит некоторый способ решения этого вопроса на уровне данных.
Cassandra не поддерживает вид агрегатов вы спрашиваете о и, вероятно, никогда будем. Однако есть полные пакеты аналитики, которые могут интегрироваться с Cassandra для обеспечения этих возможностей. Ваши лучшие ставки - DataStax Enterprise, используя их интеграцию Hadoop/Spark или выясняя, как использовать сам разъем OSS Spark-Cassandra на вершине вашего кластера Cassandra. – mildewey