Таможенный разделитель в Кассандре - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть таблица Кассандры с тремя столбцами: devid, эпоха, измерениеТеперь для аналитических целей в Spark я хотел, чтобы все данные конкретного devid отправлялись на один и тот же узел независимо от измерения и эпохи, чтобы была хорошая локальность данных, а для аналитики одного devid я мог избежать перетасовки сетевых данных вSpark.

Однако объем данных для каждого устройства будет слишком велик, чтобы быть эффективным в одном разделе.Следовательно, я не могу определить первичный ключ, например (devid, dimension, epoch).Поэтому мне нужно выбрать ключ типа ((Devid, Dimension), Epoch), который будет управляемым.Однако это приведет к тому, что данные одного devid будут размещены на нескольких узлах (и тогда Spark потребуется перестановка данных по сети для аналитики по одному devid).

Могу ли я создать настраиваемый parititioner, который будет учитывать devid иигнорировать измерение в ключе ((devid, dimension), эпоха) для генерации маркера разделения?Желательно ли это сделать?

1 Ответ

0 голосов
/ 15 февраля 2019

Не уверен, что вы пытаетесь сделать, но звучит так, как будто вы намерены иметь несколько разделов, но вынуждаете их все еще находиться на одном узле? ... если ваш коэффициент репликации не равен 1, вы все равно будете помещатьВ любом случае, я не уверен, почему вы хотите это сделать?

Вы смотрели на разъем Spark cassandra или другие подобные вещи?

Это также может быть полезно:https://docs.datastax.com/en/latest-java-driver-api/com/datastax/driver/core/policies/TokenAwarePolicy.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...