Большинство организаций хранят важные данные в нескольких различных системах, а инструменты загрузки или интеграции данных, такие как конвейеры и инструменты извлечения, преобразования и загрузки (ETL), имеют решающее значение для перемещения данных между этими различными системами, чтобы их можно было объединять и анализировать с другими источниками или использовать для поддержания актуальности других важных данных.
Для перемещения данных можно использовать множество различных технических решений: от ручных решений, где данные копируются по требованию, до автоматизированных систем, выполняющих сложные преобразования данных.
Использование термина «интеграция» в отношении конвейеров данных или ETL затруднено, поскольку интеграция обычно подразумевает более тесный или более оперативный доступ к данным. ETL являются подходящим инструментом для перемещения данных между системами, когда изменения происходят нечасто или когда доступ к данным не зависит от наличия самой последней копии данных, например, когда достаточно синхронизации каждую ночь. На этом уровне они выполняют многие требования интеграции, даже несмотря на то, что подключение носит асинхронный характер.
ArcGIS Data Pipelines – это возможность ArcGIS Online, которая обеспечивает встроенную поддержку интеграции для подключения ваших данных к ArcGIS. С помощью Data Pipelines вы можете подключаться к данным и считывать их оттуда, где они хранятся, выполнять операции по подготовке данных и записывать данные в размещенный векторный слой, который легко доступен в ArcGIS. Вы можете использовать интерфейс Data Pipelines, не требующий написания кода, для создания, запуска, планирования и воспроизведения рабочих процессов подготовки данных.
Data Pipelines работает с векторными данными (например, точками, линиями и полигонами) и табличными данными (например, данными, представленными в виде таблицы). Вы можете подключаться к различным источникам данных, включая Amazon S3, Google BigQuery, Snowflake, слои объектов, загруженные локальные файлы и многое другое. После подключения вы можете использовать инструменты для смешивания, создания и интеграции наборов данных для использования в ваших рабочих процессах.
Инструменты, доступные в Data Pipelines, сгруппированы в наборы инструментов по такими возможностям, как очистка, конструирование, интеграция и форматирование. Например, инструменты Data Pipelines поддерживают следующие рабочие процессы:
При построении конвейера данных и настройке инструментов вы можете просматривать результаты на каждом этапе обработки в виде карты или таблицы, при необходимости сортируя столбцы таблицы для проверки строк, например, минимальных, максимальных и пустых значений. Итеративная проверка и применение инструментов подготовки данных могут помочь улучшить качество и надежность данных на протяжении всего процесса.
После завершения настройки конвейера данных вы можете запустить его для создания или обновления векторного слоя ArcGIS, который будет доступен в ваших ресурсах. Вы можете настроить геометрические и временные свойства выходного слоя объектов, чтобы он был готов к использованию в дополнительных рабочих процессах, таких как пространственный или временной анализ, операционные панели или веб-карты.
Конвейеры данных могут быть подходящим выбором, когда:
Дополнительные сведения о конвейерах данных см. в разделе Введение в конвейеры данных.
Дополнительный модуль ArcGIS Data Interoperability – это набор инструментов пространственного извлечения, преобразования и загрузки (ETL) для ArcGIS Pro и ArcGIS Enterprise, который работает либо с помощью отдельных инструментов, либо в среде геообработки. Взаимодействие данных создано на основе продукта FME компании Safe Software и совместимо с ним.
Совместимость данных предоставляет пользователям возможность создания проектов без написания кода с помощью настольного приложения Workbench, при этом результаты работы сохраняются в локальных файлах Workbench или в виде инструментов Spatial ETL в наборе инструментов проекта. Рабочие среды могут подключаться к широкому спектру источников данных, выполнять простые или сложные операции с передаваемыми данными, а затем записывать данные в самые разные места назначения. Это полнофункциональная система ETL, в которой рабочие среды можно запускать вручную для проверки или тестирования, автоматически запускать на регулярной основе или вызывать как часть сервиса геообработки.
Data Interoperability предоставляет три настольных приложения (Workbench, Data Inspector и Quick Translator), доступ к которым можно получить из ArcGIS Pro. Результаты инструмента ETL также можно публиковать на ArcGIS Server в виде веб-инструментов, как и любые другие результаты геообработки. Это позволяет публиковать ETL, к которым можно получить доступ как к веб-сервисам, например, в виджете геообработки Web AppBuilder.
Data Interoperability может быть подходящим вариантом, когда:
Дополнительные сведения о взаимодействии данных см. в следующих ресурсах:
Еще одним распространенным подходом к построению ETL является использование Python, обычно в сочетании с arcpy и модулем arcgis API ArcGIS Python. Сообщество разработчиков Python, наряду со многими коммерческими поставщиками, создало сотни библиотек, которые помогают подключаться практически ко всем мыслимым источникам данных, от клиентов баз данных до типов хранилищ, парсеров файлов и веб-клиентских библиотек. Это означает, что любой источник данных, к которому вы можете подключиться, может быть перенесен в Python, преобразован или изменен, а затем отправлен на выход, который в системе на основе ArcGIS часто представляет собой редактируемый векторный слой, файл изображения или набор 3D-данных.
Популярным шаблоном является использование ноутбука, который использует стандартные отраслевые протоколы доступа к данным. Например, при интеграции с облачным хранилищем установите пакет доступа к базе данных, совместимый с PEP 249 , чтобы блокнот мог использовать стандартный SQL или обработку на основе курсора.
Новая тенденция заключается в написании ETL на основе Python, которые используют преимущества удаленного доступа к файлам по протоколу HTTP с использованием API S3, который в настоящее время распространен среди поставщиков отраслевых хранилищ. Этот шаблон применяется к облачным хранилищам объектов, в которых размещаются известные типы файлов, такие как Apache Parquet, GeoParquet, JSON или CSV, и которые обеспечиваются расширением среды Python. Такой подход позволяет читать и записывать файлы так, как если бы они находились в базе данных, совместимой с SQL, с поддержкой разбиения одной логической таблицы на любое количество физических файлов, чтобы воспользоваться преимуществами параллельной обработки всего набора файлов. Вместе эти два подхода позволяют выполнять ETL-транзакции в отношении облачных хранилищ и облачных объектных хранилищ с высокой производительностью и полным набором функций.
ETL на основе Python может подойти, когда:
Многие другие предложения ETL доступны у поставщиков облачных услуг, у независимых поставщиков программного обеспечения и через инструменты с открытым исходным кодом. Каждое из этих предложений будет поддерживать различные входные данные, процессоры и выходные данные, поэтому перед выбором предложения важно учитывать требования к перемещению данных для вашей системы. Как ArcGIS Data Pipelines, так и ArcGIS Data Interoperability предлагают работу без программирования и включают предварительно созданные соединения для записи данных в ArcGIS, что может стать важным повышением эффективности при создании системы, реализующей шаблон без кода.
В этом разделе приведены несколько примеров стратегий работы с рабочими процессами переноса данных с использованием различных технологий, а также полезные советы и рекомендации по каждой стратегии. Эти примеры следует использовать для построения рабочих процессов миграции данных вашей организации, а не использовать их как есть или без проверки.
Этот шаблон основан только на ArcGIS Pro.
Одним из наиболее распространенных форматов общих файлов является CSV — значения, разделенные запятыми, также известные как ASCII или текстовые файлы, за которыми следуют книги Microsoft Excel. Файлы CSV и Excel популярны благодаря простоте совместного использования, чтения (в том числе людьми) и записи во многих приложениях. Файлы CSV и Excel со столбцами координат можно использовать непосредственно в Pro, возможно, после преобразования записи координат или геокодирования. Разделы справки, ссылки на которые приведены выше, содержат хорошее руководство по стандартному использованию файлов. Однако в контексте ETL, т.е. когда вы хотите получить доступ к данным, а затем подготовить их к использованию, существуют и другие распространенные проблемы, которые необходимо преодолеть:
В этом примере показано, как справиться с этими проблемами с минимальными усилиями с помощью основных инструментов.
В основе этой модели лежит ArcGIS Pro и расширенная среда Python Notebook.
Облачные хранилища объектов, такие как Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage, MinIO и другие, предлагают экономичный и производительный механизм обмена файлами с поддержкой защищенного или общего доступа. Рассматривайте хранилище объектов иначе, чем «удалённую файловую систему» в облачном хранилище, которое для целей ETL можно считать локальными данными. В настоящее время подключения к облачному хранилищу в Pro поддерживают только растровые данные, поэтому возможности каталогизации в ArcGIS Pro, включая подключения к папкам, не отображают размещенные в облаке векторные данные, такие как Apache Parquet или GeoParquet, JSON, GeoJSON, CSV или Excel, все распространенные исходные форматы ETL. Это ограничение можно обойти, расширив среду Pro Python, чтобы обеспечить поддержку виртуальной файловой системы для облачных хранилищ и обрабатывать удаленные файлы как объекты реляционной базы данных, а именно DuckDB. Издатели данных могут работать в любом масштабе, как и вы, поэтому размещенный в облаке известный файл ETL должен поддерживать:
В этом примере показано, как выполнить эти требования с помощью тех же гибких инструментов.
Этот шаблон использует конвейеры данных для поддержки существующих слоев объектов, созданных другими способами.
ArcGIS Data Pipelines может выступать в качестве самостоятельного решения ETL, но есть два случая, когда его можно рассматривать как инструмент обслуживания размещенных векторных слоев, созданных другими способами:
Существующие рабочие процессы могут быть достаточными или даже необходимыми для создания ваших слоев, но не обеспечивать такие преимущества Data Pipelines, как простота использования, модель организационного обмена, хостинг SaaS и возможности планирования. В этой ситуации вы можете рассматривать Data Pipelines как инструмент обслуживания.
В этом примере показан простой пример обслуживания размещенного слоя.
В этом шаблоне используется размещенный Python Notebook в ArcGIS Online со средой выполнения Python, расширенной для доступа к облачному хранилищу объектов, содержащему данные в формате GeoParquet.
Расширение сред выполнения для ArcGIS Pro и ArcGIS Enterprise Notebook Server — это распространенные шаблоны, но менее известный шаблон может обеспечить тот же результат в блокноте, размещенном на ArcGIS Online. Доступные библиотеки Python в стандартных средах выполнения Python включают в себя менеджеры пакетов conda и pip, при этом pip обычно является более простым вариантом. Если вам потребуется подключение к внешней системе, которая предлагает интерфейс Python, то, скорее всего, он будет доступен и просто установлен из PyPi.
В этом примере pip используется для расширения локальной среды выполнения блокнота и DuckDB для доступа к данным из темы Places от Overture Maps Foundation (пример доступа к хранилищу объектов Amazon S3 с помощью запроса раздела hive), что означает, что в этом случае доступ к любому количеству файлов GeoParquet осуществляется с помощью запроса с подстановочными знаками. После доступа к данным и их запроса они используются для обновления размещенного векторного слоя достопримечательностей в Лондоне, Англия (и может поддерживать любое другое местоположение по всему миру).
В этом шаблоне используется онлайн-блокнот с расширенной средой выполнения для поддержки чтения и записи Snowflake. Аналогичным образом можно получить доступ к любому облачному хранилищу.
Этот шаблон похож на блокноты ArcGIS Online и облачный GeoParquet в том, что он использует расширенный контейнер времени выполнения, но добавляет вычислительную мощность облачного хранилища. ArcGIS Pro и Enterprise поддерживают подключение к Snowflake и другим облачным хранилищам данных для создания слоев запросов, которые можно использовать в качестве входных данных для инструментов геообработки или визуализировать в картах ArcGIS Pro или веб-картах, но использование этого шаблона привносит возможности SQL в обработку ваших онлайн-блокнотов. Помимо того, что облачное хранилище является базой данных, оно также представляет собой экосистему обмена данными — другие организации могут размещать в хранилище данные любого масштаба и объединять их для получения аналитических сведений и новых результатов.
Этот пример поддерживает размещенный векторный слой достопримечательностей в Сан-Франциско, Калифорнии (или в любом другом месте мира, который вы укажете). Данные получены из набора данных Places бизнес-партнера Esri SafeGraph.
Этот шаблон использует ArcGIS Pro и дополнительный модуль ArcGIS Data Interoperability для автоматизации создания или импорта метаданных во время обработки ETL.
Документирование содержимого и этапов обработки элементов в ArcGIS является ключом к удобству использования и доверию, но это легко упустить из виду, поэтому автоматизация этапов генерации данных очень ценна. В ETL вы часто работаете с внешними данными, что является еще одним распространенным разрывом связи с потоком метаданных ArcGIS.
В этом примере показано, как встраивать создание или сбор метаданных в рабочие процессы ETL, которые поддерживают размещенный сервис объектов, но одинаково корректны с другими выходными данными, такими как базы геоданных.
Этот шаблон использует соединения ArcGIS Pro и OLE DB для подключения к внешнему ODBC-совместимому источнику данных.
Несмотря на то, что ArcGIS поддерживает многие популярные платформы баз данных, в ArcGIS Pro можно установить больше подключений к реляционным данным, локальным или удаленным, используя стандартные отраслевые источники данных OLE DB. Они расширяют возможности подключения к базе данных в ArcGIS Pro, делая дополнительные источники данных доступными для картографирования, data engineering и аналитических рабочих процессов, включая ETL. Подключения могут совместно использоваться в вашей сети. Если вам необходимо работать с данными во внешней базе данных, подключения OLE DB являются простым и обычно доступным вариантом. Помимо встроенной поддержки в ArcGIS, некоторые облачные озера и хранилища данных также предлагают драйверы ODBC для упрощения подключения.
В этом примере показано, как инструменты ArcGIS могут использовать подключение к OLE DB для обогащения неподдерживаемых табличных данных, применяя желаемую схему и отправляя результат в виде класса объектов базы геоданных.
Этот шаблон использует ArcGIS Pro и дополнительный модуль ArcGIS Data Interoperability для взаимодействия с API, который возвращает большие ответы через разбиение на страницы - в виде фрагментов JSON, которые затем требуют анализа.
REST API на основе HTTP часто возвращают ответ JSON, популярный благодаря сочетанию удобочитаемости (для людей или машин) и гибкости, но объекты JSON слабо типизированы и часто неструктурированы и неупорядочены. По причинам оперативности API-интерфейсы могут возвращать логический набор данных по частям («страницам»), генерируемый последовательно, но который должен быть агрегирован на клиенте. Эти две проблемы, разбиения на страницы и анализа, в определенной схеме легко решаются с помощью стратегии low-code.
В этом примере показано, как взаимодействовать с API разбиения на страницы для ежедневной синхронизации данных с размещенным векторным слоем ArcGIS Online.
Этот шаблон использует ArcGIS Pro, веб-инструменты ArcGIS Enterprise и, дополнительно, ArcGIS Data Interoperability.
Возможно, наиболее распространенным организационным подходом к любой работе, компьютеризированной или нет, является повторение по расписанию. Начиная с ArcGIS Pro 3.4 и ArcGIS Enterprise 11.4, веб-инструменты (сервисы геообработки), созданные в ArcGIS Pro, также могут быть запланированы в ArcGIS Pro. Инструменты геообработки, выполняющие работу ETL, могут быть созданы в виде инструментов Python script, моделей ModelBuilder или пространственных инструментов ETL Data Interoperability, опубликованы в виде веб-инструментов, а затем запланированы в меню инструмента Выполнить в ArcGIS Pro. Ключом к тому, чтобы этот шаблон работал, является обеспечение того, чтобы параметры входного и выходного набора данных были зарегистрированы или доступны для ArcGIS Enterprise, а не загружены в виде статических копий во время публикации.
В этом примере представлен пример пространственного веб-инструмента ETL, который должен запускаться два раза в день для зеркального отображения RSS-канала в векторном слое, размещенном в ArcGIS Online.