Я относительно новичок в Apache Beam, поэтому, пожалуйста, потерпите меня.
BigQuery недавно анонсировал поддержку геопространственных типов данных. Геопространственные данные доступны во многих вариантах, и BigQuery может обрабатывать данные только в формате Well-Known-Text (WKT) или GeoJSON. GeoJSON предпочтительнее, поскольку BigQuery может интерпретировать данные в географии (геодезические, изогнутые линии на карте, прямые на глобусе) и в геометрии (негеодезические, прямые на карте, изогнутые линии на глобусе)
Моя цель - создать инструмент обработки данных, который хорошо масштабируется и преобразует геопространственные типы данных, такие как Geopackage или Shapefiles, в формат Bigquery GeoJSON или WKT.
Некоторые предположения:
- Для эффективной обработки: каждая функция в коллекции FeatureCollection может обрабатываться отдельно. Другими словами, каждый объект в шейп-файле или геопакете можно обрабатывать и загружать в bigquery отдельно. Порядок результата может отличаться от порядка ввода. Severless является предпочтительным.
- Геометрия каждого объекта будет переведена в GeoJSON или WKT.
- Python
Я исследовал использование Apache Beam и подумал, могу ли я использовать геопространственный тип данных в качестве входного источника. вместо
from apache_beam.io import ReadFromText
есть ли метод в Beam, который может взять геопакет или шейп-файл в качестве источника?
Затем он должен запустить параллельные процессы для каждого объекта, преобразовать геометрию в GeoJSON или WKT и использовать bigquery в качестве приемника.
Если источника для геопакетов не существует, каков был бы подходящий подход для передачи данных геопакета / шейп-файла в диаграмму балок?