Инструмент геообработки Изменить тип хранения можно использовать, чтобы переносить двоичные, пространственные и растровые столбцы из одного типа хранения в другой. Это можно сделать, задав ключевое слово конфигурации, содержащее параметр ATTRBUTE_BINARY, GEOMETRY_STORAGE или RASTER_STORAGE для нового типа хранения, в который вы собираетесь выполнить преобразование.
Вы также можете использовать инструмент геообработки Изменить условия хранения , чтобы изменить формат хранения атрибутов геометрии для параметрических объектов и патчей поверхности в базах геоданных в SQL Server.
Важно создать ключевое слово конфигурации, содержащее правильный параметр и его значение. Если указать ключевое слово с неправильной информацией или не указать часть данных, сведения считываются из ключевого слова DEFAULTS. Esri рекомендует создать пользовательское ключевое слово специально для переноса данных. Убедитесь, что ключевое слово содержит параметр и значение, используемые для переноса данных, а также параметр UI_TEXT. Параметр UI_TEXT позволяет использовать ключевое слово в клиентах ArcGIS.
Далее представлены поддерживаемые каждой системой управления базами данных (СУБД) пути переноса данных:
СУБД | Параметр конфигурации | Перенос из/в |
---|---|---|
Oracle | ATTRIBUTE_BINARY | Long raw в BLOB |
GEOMETRY_STORAGE | Long raw (SDEBINARY) в BLOB (SDELOB) | |
Long raw (SDEBINARY) в ST_Geometry | ||
BLOB (SDELOB) в ST_Geometry | ||
SDO_Geometry в ST_Geometry | ||
RASTER_STORAGE | Long raw в BLOB | |
Long raw в ST_Raster* | ||
BLOB в ST_Raster* | ||
PostgreSQL | RASTER_STORAGE | Bytea в ST_Raster* |
SQL Server | RASTER_STORAGE | Image в ST_Raster* |
GEOMETRY_STORAGE | SDEBINARY в Geometry | |
SDEBINARY в Geography | ||
OGCWKB в Geometry | ||
OGCWKB в Geography | ||
Атрибуты геометрии хранятся в таблице, привязанной к атрибутам геометрии, хранящимся в столбце базовой таблицы |
*ST_Raster должен быть установлен в базу геоданных. Инструкции см. в разделах Установка ST_Raster в Oracle, Установка ST_Raster в PostgreSQL или Установка ST_Raster в SQL Server.
Зачем нужен перенос данных?
Далее приведены причины для переноса ваших данных:
- Если вы хотите получить доступ к пространственным или растровым данным с использованием Structured Query Language (SQL).
- Для переноса из типа данных, который не будет поддерживаться в будущем, в поддерживаемый тип
- Для переноса атрибутивной информации о геометрии из вспомогательной таблицы в SQL Server в столбец в базовой таблицы для улучшения производительности набора данных участков.
Доступ к данным с помощью SQL
Доступ к информации в базе геоданных через SQL позволяет внешним приложениям (разработанным не в среде ArcObjects) работать с табличными данными, управляемыми базой геоданных. Если этим приложениям требуется доступ к пространственным или растровым данным в базе геоданных, вы должны сохранить их в типах данных, предоставляющих доступ через SQL. Например, использование типа хранения ST_Geometry позволяет получить доступ к векторным данным с помощью SQL, что не так просто при хранении данных в полях типа BLOB или long raw.
Перенос из типов данных, которые не будут поддерживаться в будущих версиях
Начиная с версии ArcGIS 10.1, классы объектов, созданные в базах геоданных в SQL Server, по умолчанию используют тип Microsoft Geometry. Для перемещения существующих классов объектов в тип хранения Geometry используйте инструмент геообработки Изменить условия хранения или скрипт Python.
Перенесите атрибуты геометрии для повышения производительности
Начиная с версии ArcGIS 10.5, хранение атрибутов геометрии для параметрических объектов (например, истинных кривых) и для патчей поверхности (таких, как pointID и мультипатчи) было улучшено: они хранятся непосредственно в бизнес-таблице. В ранних версиях эти атрибутивные данные хранились в связанной таблице, которая была присоединена к бизнес-таблице. Это соединение могло приводить к низкой производительности, что можно было часто заметить при работе с наборами данных участков.
Если ваш существующий класс объектов участвует в наборе данных участков или хранит истинную кривую, мультипатчи или pointID, и вам не нравится производительность отображения, рассмотрите вопрос переноса хранилища для этих атрибутов геометрии. Поддерживаемые пути переноса данных для существующих классов объектов следующие:
- Типом хранения является Microsoft Geometry и вы хотите продолжить использовать тип Geometry.
Чтобы перенести атрибуты геометрии из связанной таблицы в новый столбец в бизнес-таблице класса объектов, укажите ключевое слово конфигурации, которое для параметра GEOMETRY_STORAGE имеет значение Geometry, и запустите инструмент Изменить условия хранения.
- Типом хранения является Microsoft Geography и вы хотите продолжить использовать тип Geography.
Чтобы перенести атрибуты геометрии из связанной таблицы в новый столбец в бизнес-таблице класса объектов, укажите ключевое слово конфигурации, которое для параметра GEOMETRY_STORAGE имеет значение Geography, и запустите инструмент Изменить условия хранения.
- Типом хранения является SDEBINARY и вы хотите изменить тип хранения на Microsoft Geometry. В этом случае укажите ключевое слово конфигурации, которое для параметра GEOMETRY_STORAGE имеет значение Geometry, и запустите инструмент Изменить условия хранения. Как тип пространственных данных, так и атрибуты геометрии будут переведены в новый формат хранения.
В этом случае укажите ключевое слово конфигурации, которое для параметра GEOMETRY_STORAGE имеет значение Geography, и запустите инструмент Изменить условия хранения. Атрибуты геометрии будут переведены в новый формат хранения.
- Типом хранения является SDEBINARY и вы хотите изменить тип хранения на Geography.
В этом случае укажите ключевое слово конфигурации, которое для параметра GEOMETRY_STORAGE имеет значение Geography, и запустите инструмент Изменить условия хранения. Как тип пространственных данных, так и атрибуты геометрии будут переведены в новый формат хранения.
Требования при переносе данных
Перед преобразованием данных необходимо выполнение следующих условий:
- Вы должны создать резервную копию данных перед тем, как их переносить.
- При преобразовании типа данных пространственного столбца данные должны храниться в пространственной привязке высокой точности. Если данные хранятся в базовой точности, сначала их нужно перевести в высокую точность, перед изменением типа хранения. Для перехода к высокой точности используйте инструмент геообработки Обновить пространственную привязку.
- Таблица или класс объектов должны быть зарегистрированы в базе геоданных.
- Ключевое слово конфигурации, указываемое при переносе типа данных, должно содержать правильное значение параметра GEOMETRY_STORAGE, ATTRIBUTE_BINARY или RASTER_STORAGE. Например, если требуется перенести столбец геометрии long raw в ST_Geometry, но указано ключевое слово с параметром GEOMETRY_STORAGE, заданным как SDO_GEOMETRY, перенос данных завершится ошибкой, так как такой путь переноса не поддерживается.
- Вы должны войти в систему как владелец таблицы, содержащей переносимый столбец.
- Для переноса класса объекта в тип SQL Server Geography, данные должны быть в одной из систем координат, поддерживаемых типом Geography.