Инструмент геообработки Изменить тип хранения (Migrate Storage) можно использовать, чтобы переносить двоичные, пространственные и растровые столбцы из одного типа хранения в другой. Для этого необходимо указать ключевое слово конфигурации, содержащее параметр ATTRBUTE_BINARY, GEOMETRY_STORAGE или RASTER_STORAGE, указывающий новый тип хранения, в который требуется преобразовать данные.
Важно создать ключевое слово конфигурации, содержащее правильный параметр и его значение. Если указать ключевое слово с неправильной информацией или не указать часть данных, сведения считываются из ключевого слова 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
Доступ к информации в базе геоданных через SQL позволяет внешним приложениям (разработанным не в среде ArcObjects) работать с табличными данными, управляемыми базой геоданных. Если этим приложениям требуется доступ к пространственным или растровым данным в базе геоданных, вы должны сохранить их в типах данных, предоставляющих доступ через SQL. Например, использование типа хранения ST_Raster позволяет получить доступ к растровым данным с помощью SQL, что не так просто при хранении растровых данных в поле BLOB, LONG RAW, IMAGE, BINARY или BYTEA.
Перенос из типов данных, которые не будут поддерживаться в будущих версиях
Oracle рекомендует использовать типы данных BLOB или BFILE вместо LONG RAW в своих базах данных. Хотя столбцы LONG RAW все еще поддерживаются, если у вас есть атрибут, геометрия или растровые поля типа LONG RAW в текущей базе геоданных на Oracle, вы должны перенести их в другой формат, чтобы подготовиться к тому, что они больше не будут поддерживаться.
Хранением атрибутов, геометрии и растровых столбцов в базе геоданных управляют параметры DBTUNE: ATTRIBUTE_BINARY, GEOMETRY_STORAGE и RASTER_STORAGE соответственно. Значения по умолчанию для этих параметров в ключевом слове DBTUNE DEFAULTS зависят от версии ArcGIS, использованной при создании базы геоданных. В следующей таблице показаны значения параметров ключевого слова DEFAULTS по умолчанию в таблице DBTUNE баз геоданных на Oracle.
Параметр | Стандартное значение в ArcGIS 9.3 и более новых версиях | Стандартное значение в ArcGIS 9.2 | Стандартное значение в версиях до ArcGIS 9.2 |
---|---|---|---|
ATTRIBUTE_BINARY | BLOB | BLOB | LONG RAW |
GEOMETRY_STORAGE | ST_GEOMETRY | LONG RAW (SDEBINARY) | LONG RAW (SDEBINARY) |
RASTER_STORAGE | BLOB | LONG RAW | LONG RAW |
Данные, созданные в новых базах геоданных версии 9.3 (не обновленной) с применением параметров по умолчанию, не используют тип хранилища LONG RAW. Однако существующие данные, созданные со всеми этими параметрами или их частью, заданными как LONG RAW, или новые данные в обновленных базах геоданных с такими параметрами, заданными как LONG RAW, все равно будут содержать столбцы LONG RAW. Чтобы изменить типы данных для этих столбцов, необходимо поменять настройки DBTUNE и перенести данные.
Начиная с версии ArcGIS 10.1, классы объектов, созданные в базах геоданных в SQL Server, по умолчанию используют тип Microsoft Geometry. Для перемещения существующих классов объектов в тип хранения геометрии используйте инструмент геообработки Изменить условия хранения (Migrate Storage) или скрипт Python.
Перед переносом данных...
Перед преобразованием данных необходимо выполнение следующих условий:
- Вы должны создать резервную копию данных перед тем, как их переносить.
- При преобразовании типа данных пространственного столбца данные должны храниться в пространственной привязке высокой точности. Если данные хранятся в базовой точности, сначала их нужно перевести в высокую точность, перед изменением типа хранения. Для перехода к высокой точности используйте инструмент геообработки Обновить пространственную привязку (Upgrade Spatial Reference).
- Таблица или класс объектов должны быть зарегистрированы в базе геоданных.
- Ключевое слово конфигурации, указываемое при переносе типа данных, должно содержать правильное значение параметра GEOMETRY_STORAGE, ATTRBUTE_BINARY или RASTER_STORAGE. Например, если требуется перенести столбец геометрии LONG RAW в ST_GEOMETRY, но указано ключевое слово с параметром GEOMETRY_STORAGE, заданным как SDO_GEOMETRY, перенос данных завершится ошибкой, так как такой путь переноса не поддерживается.
- Вы должны войти в систему как владелец таблицы, содержащей переносимый столбец.
- Для переноса класса объекта в тип SQL Server GEOGRAPHY, данные должны быть в одной из систем координат, поддерживаемых типом GEOGRAPHY.
- Если база геоданных работает на SQL Server 2008 или 2008 R2, классы объектов, переносимые в тип SQL Server GEOGRAPHY, не могут содержать значения z- или m-координат.