Добавление CSV в Accumulo / GeoMesa с файлами конвертера - PullRequest
0 голосов
/ 29 марта 2019

Каков наилучший способ добавления (пространственных) данных в стек GeoMesa / Accumulo?

(1) Если я правильно понимаю, для добавления данных необходимо создать файл создания SimpleFeature и файл конвертера. Сами данные хранятся в формате CSV. Я прав, что мы должны построить эти файлы для каждого CSV, который мы хотим добавить?

(2) Верны ли приведенные ниже примеры? Например, геометрия в файлах CSV сохраняется следующим образом. "MULTILINESTRING ((2.0116069 48.9172785,2.0116474 48.9172131,2.0117161 48.917135,2.011814 48.9170714,2.0118996 48.9170489))"

(3) Как добавить эти файлы конвертера в процесс добавления данных в стек GeoMesa / Accumulo?

Цель в конце состоит в том, чтобы (простая) процедура добавить данные в стек и на следующем шаге открыть данные через геосервер.

Любая помощь приветствуется. Заранее спасибо.

Файл создания простого объекта:

geomesa.sfts.links_geom = {
      attributes = [
        { name = "id", type = "Long" }
        { name = "length",     type = "Float" }
        { name = "number", type = "Integer" }
        ...
        { name = "geom", type = "MultiLineString", srid = 4326 }
      ]
} ```


Converter file:
geomesa.converters.links_geom = {
      type = "delimited-text",
      format = "CSV",
      id-field = "toString($id)",
      fields = [
        { name = "id", transform = "$1::long" }
        { name = "length",     transform = "$2::float" }
        { name = "number", transform = "$3::int" }
        ...
        { name = "geom", transform = "multilinestring($11)" }
      ]
}

1 Ответ

1 голос
/ 29 марта 2019

Не существует «лучшего» способа ввода данных в GeoMesa, это зависит от вашего конкретного варианта использования. Инструменты командной строки обеспечивают удобную точку входа, но в более сложных сценариях может использоваться Apache NiFi, инфраструктура потоковой обработки, например Apache Storm, или собственные облачные инструменты, такие как AWS Lambda.

GeoMesa - это хранилище данных GeoTools, поэтому вы можете записывать данные, используя API DataStore, без каких-либо определений конвертера. Примеры этого есть в проекте geomesa-tutorials . Однако конвертеры предоставляют декларативный способ определения типа данных без какого-либо кода. Они также могут быть повторно использованы в разных средах, поэтому, если вы разрабатываете Конвертер для инструментов CLI, вы можете легко использовать то же определение, например, например, Apache NiFi, позволяющий масштабировать и переносить данные по мере необходимости.

Как правило, для конвертеров вам нужно определить по одному для каждого формата файла. GeoMesa предлагает вывод типов для файлов CSV, как описано здесь , что может позволить вам загружать данные без конвертера или, по крайней мере, предоставить начальный шаблон, который вы можете настроить в соответствии со своими потребностями. Информация о добавлении ваших конвертеров в classpath здесь и здесь .

При разработке исходного определения преобразователя может быть полезно использовать команду CLI convert с режимом ошибок для «ошибок повышения», как описано здесь . Как только ваше определение станет четким, вы сможете приступить к приему внутрь.

...