Инструмент геообработки Изменить тип хранения можно использовать, чтобы переносить двоичные, пространственные и растровые столбцы из одного типа хранения в другой. Это можно сделать, задав ключевое слово конфигурации, содержащее параметр 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, вы должны перенести их в другой формат, чтобы подготовиться к тому, что они больше не будут поддерживаться.
Хранением атрибутов, геометрии и растровых столбцов в базе геоданных управляют параметры конфигурации: ATTRIBUTE_BINARY, GEOMETRY_STORAGE и RASTER_STORAGE соответственно. Значения по умолчанию для этих параметров в ключевом слове конфигурации DEFAULTS базы геоданных зависят от версии ArcGIS, использованной при создании базы геоданных. В следующей таблице представлены настройки по умолчанию ключевого слоя конфигурации DEFAULTS для баз геоданных в 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 |
Если ваша база геоданных в Oracle была создана в ArcGIS 9.3 или более поздней версии (не обновленной с версии ArcGIS 9.2 или более ранней), создаваемые вами данные не будут использовать тип хранения long raw. Однако существующие данные, созданные со всеми этими параметрами или их частью, заданными как LONG RAW, или новые данные в обновленных базах геоданных с такими параметрами, заданными как LONG RAW, все равно будут содержать столбцы long raw. Чтобы изменить типы данных для этих столбцов, необходимо поменять настройки ключевого слова конфигурации и перенести данные.
Начиная с версии ArcGIS 10.1, классы объектов, созданные в базах геоданных в SQL Server, по умолчанию используют тип Microsoft Geometry. Для перемещения существующих классов объектов в тип хранения Geometry используйте инструмент геообработки Изменить условия хранения или скрипт Python.
Перед переносом данных...
Перед преобразованием данных необходимо выполнение следующих условий:
- Вы должны создать резервную копию данных перед тем, как их переносить.
- При преобразовании типа данных пространственного столбца данные должны храниться в пространственной привязке высокой точности. Если данные хранятся в базовой точности, сначала их нужно перевести в высокую точность, перед изменением типа хранения. Для перехода к высокой точности используйте инструмент геообработки Обновить пространственную привязку.
- Таблица или класс объектов должны быть зарегистрированы в базе геоданных.
- Ключевое слово конфигурации, указываемое при переносе типа данных, должно содержать правильное значение параметра GEOMETRY_STORAGE, ATTRIBUTE_BINARY или RASTER_STORAGE. Например, если требуется перенести столбец геометрии long raw в ST_Geometry, но указано ключевое слово с параметром GEOMETRY_STORAGE, заданным как SDO_GEOMETRY, перенос данных завершится ошибкой, так как такой путь переноса не поддерживается.
- Вы должны войти в систему как владелец таблицы, содержащей переносимый столбец.
- Для переноса класса объекта в тип SQL Server Geography, данные должны быть в одной из систем координат, поддерживаемых типом Geography.