Вы можете подключиться из клиентов ArcGIS и работать с данными в системах управления базами данных или устройствах хранения данных, перечисленных здесь. Описания функциональности, доступной при работе с базами данных в ArcGIS см. в разделе Базы данных и ArcGIS.
Системы управления базами данных отличаются своей реализацией и предоставляемой функциональностью. В результате иногда они выдают предупреждения или устанавливают необходимые правила, которые необходимо учитывать при работе с каждым типом баз данных в ArcGIS. Они перечислены в следующих разделах.
ALTIBASE
Пространственные данные хранятся в ALTIBASE с использованием геометрии типа ALTIBASE Geometry. Тип Geometry присутствует в ALTIBASE по умолчанию, но для того, чтобы использовать его в ArcGIS, вы должны создать две системные таблицы для хранения геометрии и информации о пространственной привязке. Обратите внимание, что тип геометрии ALTIBASE Geometry поддерживает только координаты x и y.
Dameng
Пространственные данные хранятся в типе Dameng geometry. Обычная установка Dameng включает пространственный тип; однако чтобы его использовать, его необходимо инициализировать.
См. какие версии Dameng поддерживаются в ArcGIS 10.4.1.
IBM DB2
DB2 проверяет подлинность подключения к базе данных при помощи учетных записей операционной системы. Однако при подключении к DB2 из диалогового окна Подключения к базам данных или при помощи инструмента геообработки Создать подключение базы данных можно задать опцию Аутентификация базы данных. Это позволит сохранить определенное имя пользователя и пароль учетной записи, которая необходима, если подключение к базе данных будет регистрироваться в ArcGIS for Server.
Для запроса данных об объектах в ArcGIS требуется, чтобы таблица содержала поле уникального идентификатора. ArcGIS ссылается на базу данных, чтобы вставить значения в поле уникального идентификатора при создании новых объектов. В силу того что в DB2 z/OS нет типа данных или встроенного механизма для заполнения значений в поле ID, инструменты ArcGIS, создающие новые строки в таблице базы данных, не могут использоваться базами данных DB2 z/OS. Также, из-за того что невозможно вставить объекты в таблицу DB2 z/OS из ArcGIS, невозможно публиковать сервисы объектов, содержащие данные из базы данных DB2 z/OS.
Если вам необходима такая функциональность как вложения, архивирование, топология, версии базы данных для одновременного редактирования, возможность репликации данных, или вы хотите публиковать сервисы объектов, содержащие данные из DB2 z/OS, можно включить базу геоданных в вашу базу данных DB2.
См. какие версии DB2 поддерживаются в ArcGIS 10.4.1.
IBM Informix
Informix проверяет подлинность подключения к базе данных при помощи учетных записей операционной системы. При подключении к Informix из диалогового окна Подключения к базам данных или при помощи инструмента геообработки Создать подключение базы данных можно задать опцию Аутентификация базы данных. Это позволит сохранить определенное имя пользователя и пароль учетной записи, которая необходима, если подключение к базе данных будет регистрироваться в ArcGIS for Server.
Если вам необходима такая функциональность как вложения, архивирование, топология, версии базы данных для одновременного редактирования или возможность репликации данных, можно включить базу геоданных в вашу базу данных Informix.
База данных Microsoft Azure SQL
База данных Microsoft Azure SQL – это базирующийся на облаке сервис базы данных. Для того, чтобы работать в ArcGIS с базой данных Azure SQL установите поддерживаемый Microsoft ODBC драйвер для SQL Server на клиентском компьютере с ArcGIS.
При работе с базой данных Azure SQL в ArcGIS нужно учитывать следующее:
- По соображениям производительности вам следует использовать клиенты ArcGIS в облаке Microsoft Azure и использовать тот же регион, в котором хранится ваша база данных Azure SQL, когда это возможно.
- Реализации баз данных Azure SQL и SQL Server настолько похожи, что отдельной опции База данных Azure SQL нет в диалоговом окне Подключения к базам данных или в инструменте геообработки Создать подключение базы данных. Укажите SQL Server при подключении к базе данных Azure SQL и следуйте инструкциям по созданию подключения к SQL Server из ArcGIS.
- Необходимо ввести имя базы данных в диалоговое окно Подключение к базе данных. Вы не можете выбрать базу данных из списка и не можете оставить поле База данных пустым.
- Когда требуется загрузить большой объем данных (несколько миллионов записей или больше) в класс пространственных объектов, необходимо оценить пространственный экстент (x,y) данных и создать в классе объектов подходящий пространственный индекс до загрузки данных. Операция создания пространственного индекса в классе объектов, содержащем несколько миллионов записей, может быть прервана, если Microsoft Azure определит, что операция потребляет чрезмерно много ресурсов сервера. Из-за этого класс пространственных объектов может остаться без индекса. Поэтому Esri рекомендует сначала создавать подходящий пространственный индекс, а затем загружать данные.
См. какие версии базы данных Azure SQL поддерживаются в ArcGIS 10.4.1.
База данных Windows Azure SQL вне ArcGIS
Есть несколько задач, которые выполняются отдельно от ArcGIS, непосредственно в системе управления базы данных. Если вы знакомы с SQL Server, не забывайте о том, что существуют некоторые различия, если вы собираетесь использовать базы данных Azure SQL вместо SQL Server. Информацию об этих различиях см. в статье Microsoft TechNet "Comparison of SQL Server with Azure SQL Database". Кроме того, поскольку база данных Azure SQL является многопользовательским сервисом, в некоторых случаях подключения могут закрываться, чтобы освободить ресурсы для других пользователей. См. Azure SQL Database Resource Management в документации Microsoft Azure, где перечислены обстоятельства, которые могут вызвать закрытие подключения.
Microsoft SQL Server
Несмотря на то, что Microsoft позволяет SQL Server учетным записям пользователей записывать данные в схему под любым именем, для ArcGIS необходимо, чтобы пользовательские учетные записи, под которыми создаются таблицы, представления или другие объекты базы данных, имели одинаковые имена пользователей и имена схем. Например, нельзя подключиться из ArcGIS как elmer и вести запись в схему с названием dataowner.
Если вам необходима такая функциональность как вложения, архивирование, топология, версии базы данных для одновременного редактирования или возможность репликации данных, можно включить базу геоданных в вашу базу данных SQL Server.
Устройство хранения данных Netezza
Устройства хранения данных обычно хранят большой объем данных. Для того, чтобы использовать ArcGIS для визуализации, выполнения анализа или публикации данных устройства хранения данных Netezza, используйте поднабор данных. То как вы будете это выполнять, предопределяется тем, что вы будете делать с данными.
- Если вы добавляете данные в ArcMap для их просмотра и анализа на карте, добавьте слой запроса и задайте выражение слоя запроса, чтобы выбрать поднабор данных.
- Если вы добавляете данные в ArcMap для публикации картографического сервиса, задайте вид базы данных, который содержит поднабор данных. Представления базы данных хранятся в базе данных. Можно воспользоваться инструментом геообработки Создать представление базы данных или клиентским приложением SQL, чтобы задать представление.
- Если вы добавляете данные в ArcMap для публикации сервиса объектов, отключите опцию Делать вновь добавляемые слои видимыми по умолчанию перед добавлением данных на карту. Далее откройте Свойства слоя и создайте Определяющий запрос, указывающий поднабор данных при помощи SQL. После того как вы ограничили данные, которые отобразятся в ArcMap, сделайте слой видимым и подготовьте свою карту к публикации.
При использовании устройства хранения данных Netezza существует два ограничения, специфичных для ArcGIS:
- Если вы используете устаревший пространственный тип Netezza, имена пространственных столбцов в таблицах должны содержать shape или иметь псевдоним, содержащий shape.
Устаревший пространственный тип использует тип данных VARCHAR; следовательно, имя shape столбца или его псевдоним указывает для ArcGIS, что в столбце хранятся пространственные данные, а не текстовые. Если у пространственного столбца в таблице другое имя, создайте представление таблицы и назначьте пространственному столбцу псевдоним shape.
- Для запроса данных об объектах в ArcGIS требуется, чтобы таблица содержала поле уникального идентификатора.
ArcMap предложит указать это поле ID при добавлении пространственной таблицы на карту.
Инструменты ArcGIS не вставляют новые значения в поля уникальных идентификаторов базы данных; наоборот, они опираются на базу данных для вставки значений в поле. Пока Netezza не имеет типа данных или встроенного механизма заполнений значений в поле идентификатора, инструменты ArcGIS, которые создают новые строки в базе данных, не могут использоваться для Netezza. Также, из-за того что невозможно вставлять объекты в таблицу Netezza из ArcGIS, невозможно публиковать сервисы объектов, содержащие данные из Устройства хранения данных Netezza.
Другие ограничения, связанные именно с Netezza.
- Так как пространственные пакеты Netezza используют различные типы данных, используемый пространственный пакет влияет на то, как вы настроите драйвер Netezza ODBC для подключения к Netezza из клиентского приложения.
- Если вы регулярно работаете с Netezza, вы знаете, что в хранилищах Netezza Spatial хранятся простые данные. Следовательно, вам не удастся вставить сложные данные из базы геоданных или другой базы данных в Netezza.
- Как пользователь Netezza вы также знаете, что длина строк ограничена 65,535 байтами. Для вычисления размеров строк можно использовать следующую таблицу. В ней описаны типы данных Netezza, которые создает ArcGIS, и дисковое пространство, которое они занимают:
Тип поля ArcGIS | Тип данных Netezza | Объем |
---|---|---|
DATE | timestamp | 8 байт |
DOUBLE | numeric(p,s) По умолчанию p (разрядность) = 38, а s (точность) = 8. | Точность от 9 и ниже = 4 байта Точность от 10 до 18 = 8 байт Точность от 19 до 38 = 16 байт |
FLOAT | Если задана точность 6 или ниже, создаются данные numeric(p,s) Если задана точность от 7 до 15, создаются данные типа double. | numeric = 4 байта double = 8 байт |
GEOMETRY | Если вы используете устаревший Netezza Spatial Package, создается столбец переменной длины (до 64,000 знаков). Если вы используете Netezza Spatial Esri Package, создается столбец ST_Geometry. | Для устаревшего Netezza Spatial Package
Для устаревшего Netezza Spatial Esri Package
|
GUID | Символы фиксированной длины (38) | 40 байт |
LONG INTEGER | Если масштаб больше 0, создаются числовые данные (p,s). Если масштаб равен 0, создается целочисленное значение. | integer = 4 байт числовое значение с точностью 9 или ниже = 4 байта числовое значение с точностью от 10 до 18 = 8 байт числовое значение с точностью от 19 до 38 = 16 байт |
OBJECTID | integer | 4 байта |
SHORT INTEGER | smallint | 2 байта |
TEXT | Переменная длина, Unicode(p) P – это длина, заданная для поля TEXT. Значение, предлагаемое по умолчанию, равно 50. | p x 4 = используемое количество байт. |
См. какие версии Netezza Data Warehouse Appliance поддерживаются в ArcGIS 10.4.1.
Oracle
ArcGIS поддерживает в базах данных Oracle пространственные типы Oracle SDO_Geometry и Esri ST_Geometry. SDO_Geometry – это отдельный продукт сторонней разработки. Если для хранения пространственных данных вы хотите использовать тип Esri ST_Geometry, копируйте библиотеку ST_Geometry на ваш компьютер Oracle и запустите инструмент геообработки Создать пространственный тип, чтобы получить тип, подтипы и функции ST_Geometry.
Если вам необходима такая функциональность как вложения, архивирование, топология, версии базы данных для одновременного редактирования или возможность репликации данных, можно включить базу геоданных в вашу базу данных Oracle.
См. какие версии Oracle поддерживаются в ArcGIS 10.4.1.
PostgreSQL
ArcGIS поддерживает в базах данных PostgreSQL пространственные типы PostGIS Geometry и Esri ST_Geometry. PostGIS – это отдельный продукт сторонней разработки. Если для хранения пространственных данных вы хотите использовать тип Esri ST_Geometry, копируйте библиотеку st_geometry в установленный PostgreSQL и запустите инструмент геообработки Создать пространственный тип, чтобы получить тип, подтипы, представления и функции ST_Geometry.
Несмотря на то, что PostgreSQL позволяет учетным записям пользователей записывать данные в схему под любым именем, для ArcGIS необходимо, чтобы пользовательские учетные записи, под которыми создаются таблицы, представления или другие объекты базы данных, имели одинаковые имена пользователей и имена схем. Например, нельзя подключиться из ArcGIS как vlad и вести запись в схему с названием public.
Если вам необходима такая функциональность как вложения, архивирование, топология, версии базы данных для одновременного редактирования или возможность репликации данных, можно включить базу геоданных в вашу базу данных PostgreSQL.
См. какие версии PostgreSQL и PostGIS geometry поддерживаются в ArcGIS 10.4.1.
SAP HANA
При использовании SAP HANA помните о следующем:
- SAP HANA использует столбчатый формат хранения данных, который служит собственным индексом. Поэтому, пространственные столбцы в таблицах SAP HANA не требуют пространственного индекса для запросов.
- Поскольку SAP HANA не использует пользовательских индексов, вам не нужно обслуживать и перестраивать индексы для таблиц SAP HANA.
- При загрузке данных в SAP HANA, пространственная привязка, используемая данными, должна существовать в системной таблице SAP HANA.
- SAP HANA переопределяет их систему пространственной привязки EPSG ID 4326 из представления WGS84 на плоскости в представление на сфере. Таблицы, хранящие пространственные данные в SAP HANA с системой пространственной привязки 4326, в ArcGIS могут повести себя неожиданно.
Представление WGS84 на сфере (EPSG ID: 4326) в SAP HANA содержит ключевые ограничения, делающие его неприемлемым при работе с определенными типами данных. Например, глобальные наборы данных, выходящие за границы полушария, или линии, пересекающие границы полушария, приводят к противоречивым результатам. Данные, созданные или загруженные при помощи ArcGIS, продолжают храниться в версии системы координат WGS84 на плоскости (EPSG ID 1000004326), чтобы в ArcGIS можно было работать со всеми типами данных. Тем не менее, ArcGIS может считывать данные WGS на сфере, которые созданы в SAP HANA при помощи SQL или сторонних продуктов.
- SAP HANA хранит информацию о каждой системе пространственной привязки в системном представлении ST_SPATIAL_REFERENCE_SYSTEMS. Пространственные данные, загружаемые в SAP HANA, должны или иметь пустую пространственную привязку, или использовать пространственную привязку, существующую в системном представлении ST_SPATIAL_REFERENCE_SYSTEMS. Если это представление не содержит пространственную привязку загружаемых данных, используйте оператор SAP HANA CREATE SPATIAL REFERENCE SYSTEM, чтобы обновить представление необходимой системой пространственной привязки.
Если у импортируемых или копируемых в базу данных SAP HANA пространственных данных нет определенной пространственной привязки, SAP HANA по умолчанию назначит SRID значение 0, Декартову систему координат для работы с данными на двумерной плоскости.
SQLite
ArcGIS поддерживает базы данных SQLite со следующими расширениями файлов и содержащими один из следующих типов хранения:
- Esri ST_Geometry – Файл базы данных должен иметь расширение .sqlite.
- SpatiaLite – Файл базы данных должен иметь расширение .sqlite.
- GeoPackages – Файл GeoPackage должен иметь расширение .gpkg.
В каждой базе данных SQLite можно использовать только один тип пространственного хранения. См. Включение пространственных функций в базе данных SQLite для получения сведений о добавлении пространственного типа хранения в имеющуюся базу данных.
Для создания базы данных SQLite, использующей хранение ST_Geometry или SpatiaLite, или создания GeoPackage, используйте инструмент геообработки Создать базу данных SQLite.
См. какие версии SQLite поддерживаются в ArcGIS 10.4.1.
Доступ к данным
Управление доступом к базе данных SQLite или GeoPackage осуществляется с помощью разрешений для папки, в которой она хранится. В отличие от других баз данных, вы не создаете пользователей, которые аутентифицируются базой данных, или не предоставляете права на доступ к определенным наборам данных для других пользователей.
SQLite и GeoPackage могут читаться несколькими пользователями, но если кто-либо редактирует данные или обновляет базу данных, то в этот момент обновить базу данных или любое ее содержимое невозможно. Например, не присоединяйте данные в имеющуюся таблицу и не создавайте новую таблицу в базе данных, пока другой пользователь делает то же самое.
Типы данных
SQLite также отличается от других баз данных тем, что полям не присваиваются различные типы данных, а определения типов данных задаются не жестко. Вместо этого SQLite использует несколько классов, в которых могут храниться значения различных типов данных.
Однако ArcGIS может работать только с одним типом данных в поле и жестко ограничивает типы данных. Следует учитывать эти различия в обработке типов данных при просмотре данных SQLite в ArcGIS.
В следующем примере создается таблица с целочисленными и текстовыми полями:
CREATE TABLE mytable (
id INTEGER PRIMARY KEY NOT NULL,
item TEXT,
weight INTEGER,
store TEXT;
Несмотря на то, что поле Вес целочисленное, SQLite позволяет хранить в нем десятичные значения. Он даже позволяет хранить текст. Например, можно ввести следующие записи:
INSERT INTO mytable (id, item, weight, store) VALUES( 1, “magnetic dual elliptical trainer with seat”, 75, “CardioPlus Equipment”
);
INSERT INTO mytable (id, item, weight, store) VALUES( 2, “superfit treadmill4000”, 81.2, “Sports Pit”
);
INSERT INTO mytable (id, item, weight, store) VALUES( 3, “serenity yoga mat”, .4588, “Aerobic Angels Sporting Goods”
);
INSERT INTO mytable (id, item, weight, store) VALUES( 4, “swim fins”, "two", “The Plunge”
);
Однако поскольку поле Вес считается целочисленным, эти значения в ArcGIS будут отображаться так:
Идентификатор | элемент | вес | хранилище |
---|---|---|---|
1 | magnetic dual elliptical trainer with seat | 75 | CardioPlus Equipment |
2 | superfit treadmill4000 | 81 | Sports Pit |
3 | serenity yoga mat | 0 | Aerobic Angels Sporting Goods |
4 | swim fins | 0 | The Plunge |
Список соответствия типов данных SQLite и ArcGIS находится в разделе Типы данных DBMS, которые поддерживаются ArcGIS.
Устройства хранилища данных Teradata
Чтобы подключиться из ArcGIS к базе данных Teradata, необходимо установить клиент Teradata GSS, библиотеку ICU и драйвер ODBC на компьютере клиента ArcGIS в определенном порядке. Более подробно см. в разделе Подключение к Teradata.
Ниже приведен перечень основных принципов использования Teradata Data Warehouse Appliance с ArcGIS:
- Имена пространственных столбцов в таблицах должны называться shape или в представлении иметь псевдоним shape.
Базовое хранение для типа Teradata ST_Geometry это CLOB; поэтому имя или псевдоним столбца (shape) – единственный способ для ArcGIS определить, что в нем содержатся пространственные данные.
- Когда вы добавляете таблицы в Teradata из клиента ArcGIS, ArcGIS всегда создает таблицы в базе данных, которой владеет пользователь. ArcGIS не поддерживает создание таблиц в базе данных, которая пользователю не принадлежит. (У пользователя и у базы данных должно быть одинаковое имя.) На таблицы, добавленные за пределами ArcGIS, это правило не распространяется, и пользователи, подключенные к Teradata в ArcGIS, могут просматривать и публиковать данные. Если вы публикуете редактируемый сервис объектов, пользователи смогут редактировать данные.
- Для создания и обработки пространственного индексов столбце Teradata ST_Geometry следует использовать мозаичные функции Teradata.
Teradata использует мозаичный пространственный индекс с заданной областью интереса. Поэтому мозаичный индекс не может использоваться пространственными операциями ArcGIS, основанными на динамичных входных данных, такими как масштабирование и панорамирование. Однако мозаичный индекс может использоваться в слое запроса, если SQL-выражение для задания слоя запроса используется исключительно с мозаичным индексом для запроса поднабора данных, основанных на области интереса.
- ArcGIS необходимо поле с уникальными идентификаторами для отображения объектов на карте и публикации веб-сервисов. ArcMap предложит вам указать это уникальное поле идентификатора при добавлении пространственной таблицы на карту.
Инструменты ArcGIS не вставляют новые значения в поля уникальных идентификаторов базы данных; наоборот, они опираются на базу данных для вставки значений в поле. Пока у данных Teradata нет типа данных или встроенного механизма заполнений значений в поле идентификатора, инструменты ArcGIS, которые создают новые строки в базе данных, не могут использоваться для Teradata.
- Как пользователь Teradata вы знаете, что Teradata 14.x ST_Geometry поддерживает только двухмерные пространственные данные; поэтому вы не можете вставить пространственные данные, содержащие z- или m-координаты в Teradata 14.x. Teradata 15.0 ST_Geometry поддерживает только z-координаты, но не m-координаты; поэтому вы не можете вставить пространственные данные, содержащие m-координаты в Teradata 15.0.
- В большинстве случаев большие объемы
данных вы храните в устройствах хранения данных Teradata.
Для визуализации, выполнения анализа или публикации данных из ArcGIS, используйте поднабор данных. То как вы будете это выполнять, предопределяется тем, что вы будете делать с данными.
- Если вы добавляете данные в ArcMap для их просмотра и анализа на карте, добавьте слой запроса и задайте выражение слоя запроса, чтобы выбрать поднабор данных.
- Если вы добавляете данные в ArcMap для публикации картографического сервиса, задайте вид базы данных, который содержит поднабор данных. Представления базы данных хранятся в базе данных. Можно воспользоваться инструментом геообработки Создать представление базы данных или клиентским приложением SQL, чтобы задать представление.
- Если вы добавляете данные в ArcMap для публикации сервиса объектов, отключите опцию Делать вновь добавляемые слои видимыми по умолчанию перед добавлением данных на карту. Далее откройте Свойства слоя и создайте Определяющий запрос, указывающий поднабор данных при помощи SQL. После того как вы ограничили данные, которые отобразятся в ArcMap, сделайте слой видимым и подготовьте свою карту к публикации.
- Если вы используете ArcGIS для добавления класса объектов в базу данных Teradata, и пространственная привязка класса объектов отсутствует в системной таблице Teradata, ArcGIS добавит запись в таблицу Teradata SPATIAL_REF_SYS и, соответственно, в таблицу GEOMETRY_COLUMNS.
Это позволяет использовать больше пространственных привязок, чем предлагается в Teradata по умолчанию. Однако обновления большинства версий Teradata приводит к сбросу и перепостроению этих таблиц со значениями по умолчанию.
Перед обновлением Teradata следует всегда создавать резервную копию базы данных. Убедитесь, что в нее включены записи этих таблиц, чтобы вы могли восстановить их, если понадобится, после обновления Teradata. Вы можете следовать этой процедуре архивации и восстановления записей SPATIAL_REF_SYS и GEOMETRY_COLUMNS во время обновления базы данных:
- Создайте резервную копию базы данных.
- Подключитесь к базе данных, в которой вы будете делать копии таблиц SPATIAL_REF_SYS и GEOMETRY_COLUMNS.
В этом примере база данных называется mybackupdb.
database mybackupdb;
- Создайте резервные копии таблиц.
В этом примере исходные таблицы находятся в базе данных sysspatial.
CREATE TABLE mybackupdb.spatial_ref_sys AS sysspatial.spatial_ref_sys WITH DATA; CREATE TABLE mybackupdb.geometry_columns AS sysspatial.geometry_columns WITH DATA;
- Обновите исходную базу данных Teradata.
- Подключитесь к базе данных, в которую вы скопировали таблицы.
- Восстановите таблицы в обновленную базу данных.
--Restore the geometry columns table. INSERT INTO sysspatial.geometry_columns SELECT * FROM mybackupdb.geometry_columns; --Restore the spatial_ref_sys table. INSERT INTO sysspatial.spatial_ref_sys SELECT * FROM mybackupdb.spatial_ref_sys MINUS SELECT * FROM sysspatial.spatial_ref_sys;
- После восстановления таблиц можно удалить архивные копии.
DROP TABLE mybackupdb.spatial_ref_sys; DROP TABLE mybackupdb.geometry_columns;
- Если необходимо, снова предоставьте права доступа к этим таблицам для пользователей, которые будут создавать данные в базе данных.