Являются ли индексы Geomesa надежными и синхронизированы ли они с основной таблицей? - PullRequest
0 голосов
/ 29 мая 2019

Для создания индексов Geomesa создает несколько таблиц в HBase.У меня есть несколько вопросов:

  1. Что делает Geomesa для синхронизации этих таблиц?
  2. Как это повлияет на запрос Geomesa, если таблицы индексов не синхронизированы?
  3. Что произойдет (с вызовами записи), если Geomesa не сможет записать одну из таблиц индекса?
  4. Синхронизация между таблицами - лучшее усилие, или Geomesa обеспечит доступность данных с возможной согласованностью?

Я планирую использовать комбинацию Geomesa с Hbase (при поддержке S3) для хранения моих геопространственных данных;размер данных может возрасти от терабайтов до петабайт

Я исследую, насколько надежна Geomesa с точки зрения синхронизации между основной и индексной таблицами?

HBase Tables:

catalog1
catalog1_node_id_v4(основная таблица)
catalog1_node_z2_geom_v5 (Указатель)
catalog1_node_z3_geom_lastUpdateTime_v6 (Указатель)
catalog1_node_attr_identifier_geom_lastUpdateTime_v8 (Указатель)

Geomesa схема

1030 * geomesa-hbase description-schema -c catalog1 -f node

INFO Описание атрибутов элемента 'node'

key |String
namespace |Строка
идентификатор |String (Атрибут проиндексирован)
versionId |String
nodeId |Строка
широта |Целая долгота |Integer lastUpdateTime |Дата (пространственно-временная индексация)
теги |Карта
geom |Точка (пространственно-временная индексация) (пространственная индексация)

Данные пользователя: geomesa.index.dtg |lastUpdateTime
geomesa.indices |* 3: 6: 3: геом: lastUpdateTime, * 2: 5: 3: геом, ID: 4: 3:, атр: 8: 3: Идентификатор: геом: lastUpdateTime * * тысяча сорок-семь

1 Ответ

0 голосов
/ 29 мая 2019

GeoMesa ничего не делает для синхронизации индексов - как правило, об этом нужно позаботиться в вашем конвейере загрузки.

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

Для HBase, когда вы вызываете flush или closeв конструкторе объектов ожидающие мутации будут отправлены в кластер.После успешного возврата этого метода данные сохраняются в HBase.Если выдается исключение, вам следует повторить попытку неисправных функций.При последующих сбоях HBase может потребоваться восстановление журналов опережающей записи (WAL) в соответствии со стандартной операцией HBase.

Функция также может не записываться из-за проверки (например, нулевая геометрия).В этом случае вы не захотите повторно использовать эту функцию, поскольку она никогда не будет успешно принята.Если вы используете инфраструктуру конвертера GeoMesa, вы можете предварительно проверить функции , чтобы убедиться, что они будут нормально работать.

Если у вас еще нет конвейера загрузки, вы можете проверитьout geomesa-nifi , что позволит вам преобразовывать и проверять входные данные и автоматически повторять попытки сбоев через потоки Nifi.

...