Копирование и вставка данных между базами данных в ArcGIS
Вы можете копировать данные из базы данных и вставлять их в другую базу данных или геоданных через ArcGIS for Desktop.
При перемещении данных из одного типа базы данных в другой, типы данных, используемые для атрибутов в вашей таблице, могут изменяться. Например, если вы копируете таблицу из SQL Server с полем UniqueIdentifier, то при вставке ее в базу данных PostgreSQL это поле будет иметь имя Varchar.
Помните, что ArcGIS не может вставлять типы данных или определения, которые она не поддерживает. Это означает, что таблица или класс пространственных объектов, созданные в вашей целевой базе данных, будет содержать:
- Типы данных, поддерживаемые в ArcGIS
Все столбцы, которые не совпадают с типом данных ArcGIS, не будут созданы в классе пространственных объектов целевой базы данных. Список поддерживаемых типов данных приведен в разделе Типы данных СУБД, поддерживаемые в ArcGIS.
- Один пространственный столбец
Для классов пространственных объектов используется первый встретившийся пространственный столбец; второй столбец в целевом классе пространственных объектов создан не будет. Если вы хотите использовать второй пространственный столбец, то вам необходимо задать вид или слой запроса в таблице источника, которая содержит второй пространственный столбец. Если вы создаете вид, то вы можете скопировать его из базы данных источника, а затем вставить в другую целевую базу данных. Если вы задали слой запроса, то вы можете экспортировать данные из него в новый класс пространственных объектов целевой базы данных.
- Один тип геометрии
Если ваш исходный класс пространственных объектов содержит несколько типов геометрии (точки, линии, полигоны, мультиточки), то ArcGIS будет использовать тип геометрии первой строки исходного класса пространственных объектов при вставке класса объектов в целевую базу данных. Если вы хотите управлять используемым в целевом классе пространственных объектов типом геометрии, то вам необходимо создать слой запроса исходного класса пространственных объектов и определить используемый тип геометрии, затем выполнить экспорт данных из слоя запроса в целевую базу данных. Когда вы сделаете это, класс пространственных объектов в целевой базе данных будет содержать только записи типа геометрии, которые вы определили для слоя запроса.
- Одна размерность
Если записи в исходном классе пространственных объектов определены с различными размерностями (xy, xyz, xym, xyzm), то ArcGIS будет использовать размерность первой строки исходного класса объектов; записи, которые на совпадают с этой размерностью, не будут созданы в целевом классе пространственных объектов. Если вы хотите указать используемую в целевом классе пространственных объектов размерность, то вам необходимо создать слой запроса исходного класса пространственных объектов и определить используемую размерность. Затем выполните экспорт данных из слоя запроса в целевую базу данных. Когда вы сделаете это, все записи в классе пространственных объектов, созданные в целевой базе данных, будут использовать указанную размерность. Например, если вы задали слой запроса, имеющий размеры z, но не имеющий размеры m, то все записи, не имеющие информации о размере m в исходном классе пространственных объектов, не будут иметь ее и в целевом классе пространственных объектов. Аналогично, любая запись, которая имеет только координаты x,y в исходном классе пространственных объектов, будет иметь координаты x,y и z в целевом классе пространственных объектов (значение координаты z равно 0).
- Одна пространственная привязка
Если ваш исходный класс пространственных объектов имеет пространственную привязку, определяемую ArcGIS, то аналогичная пространственная привязка используется для класса пространственных объектов в целевой базе данных. Если пространственная привязка не определена для класса пространственных объектов, то ArcGIS будет использовать пространственную привязку из первой строки таблицы. Записи, не совпадающие с данной пространственной привязкой, не будут созданы в классе пространственных объектов целевой базы данных. И наоборот, если пространственная привязка не может быть определена для таблицы или первой строки (например, при использовании пользовательской пространственной привязка), то пространственная привязка, используемая в целевом классе пространственных объектов, зависит от вашей СУБД. Дополнительные сведения см. в разделе "Как система пространственных привязок используется в ArcGIS" главы Пространственные привязки.
Приведенные ниже шаги объясняют процедуру перемещения таблицы, класса пространственных объектов или вида между базами данных или из базы геоданных в базу данных с использованием операций копирования и вставки.
- Запустите ArcMap и откройте окно Каталога (Catalog).
- В дереве Каталог (Catalog) выполните подключения к исходной и целевой базе данных.
Убедитесь, что вы подключаетесь к исходной базе данных как пользователь с правами доступа к данным в ней, и подключитесь к целевой базе данных как пользователь с правами, достаточными для создания таблиц.
- При необходимости подготовьте данные для перемещения или несколько пространственных столбцов в классе пространственных объектов, и включите их для определения свойств и столбцов, которые будут созданы для свойств исходного класса пространственных объектов.
Если вы создаете слой запроса, выполните шаги по перемещению ваших данных в целевую базу данных.
- Если вы хотите переместить класс пространственных объектов, содержащий записи с различной размерностью, типами геометрии или пространственными привязками, перетащите таблицу на документ карты и измените результирующий слой запроса, выбрав одну размерность, тип геометрии или пространственную привязку. Для перемещения данных в целевую базу данных выполните экспорт слоя запроса. (Для слоя запроса операции копирования и вставки неприменимы.)
- Если класс пространственных объектов имеет несколько пространственных столбцов, создайте вид базы данных, который включает только один из пространственных столбцов и выполните операции копирования и вставки.
- Щелкните правой кнопкой мыши на таблице, классе пространственных объектов или виде в исходной базе данных и выберите Копировать (Copy).
- Щелкните правой кнопкой мыши на целевой базе данных в дереве каталога и выберите Вставить (Paste).
Владельцем данных в целевой базе данных является пользователь, имя которого использовалось для подключения к ней.
Примечание:Для того чтобы вставить данные в PostgreSQL и SQL Server, пользователь, подключенный к целевой базе данных, должен иметь схему с именем, равным имени пользователя базы данных.
- Если вы перемещаете класс пространственных объектов, появляется диалоговое окно Перенос данных (Data Transfer), в котором вы можете выбрать используемый пространственный тип для пространственного столбца в целевой базе данных. Щелкните столбец Ключевое слово конфигурации (Config Keyword), выберите пространственный тип из раскрывающегося списка, а затем нажмите OK.
Новая таблица или класс пространственных объектов создана в вашей целевой базе данных.