Данные из баз данных и облачных хранилищ данных и ArcGIS

При подключении к источнику данных ArcGIS применяет некоторые правила. Когда ArcGIS подключается и считывает данные из базы данных или и облачного хранилища данных, применяются следующие правила:

Имена объектов

СУБД и облачные хранилища данных имеют различные требования к символам, используемым для названий объектов. Иногда база данных позволяет вам использовать неподдерживаемые символы в именах объектов, если вы предоставляете имя объекта, заключенное в разделители, такие как двойные кавычки. Однако ArcGIS не разграничивает имена объектов, поэтому не может распознать эти имена. Дополнительные сведения см. в разделе Ограничения имен объектов.

Длина имени

ArcGIS может считывать и (в некоторых случаях) создавать объекты базы данных, такие как таблицы, виды и пользователи. Максимальная длина имени, которую ArcGIS допускает для этих объектов, указана в следующей таблице вместе с исключениями, когда они могут применяться.

Примечание:

Если ваша база данных позволяет использовать меньше символов, чем позволяет ArcGIS, вы будете ограничены именно количеством символов, разрешенным базой данных. Для определения ограничений имен объектов обратитесь к документации по используемой вами СУБД.

Указанное число знаков предполагает использование однобайтовых символов.

Тип объектаМаксимальное число символов, создаваемых ArcGIS*Максимальное число символов, считываемых ArcGISИсключения

Имя базы данных

Не применимо ни к какой базе данных, кроме SQLite.

250 при создании в SQLite.

250 при чтении из SQLite.

31 - при чтении из других баз данных.

127 при считывании из Amazon Redshift и Snowflake.

ArcGIS может считать имя базы данных, максимально допускаемое Oracle.

Значения имен баз данных не применимы для SAP HANA.

Имя базы данных для SQLite состоит из пути к файлу, имени файла и расширения файла. Если база данных SQLite настроена на использование ST_Geometry или пространственного типа SpatiaLite, то расширение файла будет (.sqlite). Если база данных SQLite настроена как OGC GeoPackage, то расширение файла будет (.gpkg).

Имя таблицы, класса объектов или представления

128

158 при создании в SQLite.

128

158 при чтении из SQLite.

127 при считывании из Redshift.

Имя индекса

16 во всех базах данных, за исключением SQL Server и SQLite, для которых вы можете создать имена индексов длиной до 128 символов.

До ограничения базы данных.

Имена индексов не применяются в SAP HANA или облачных хранилищах данных.

Имя поля (столбца)

31 при создании в SQL Server, PostgreSQL, SAP HANA, Teradata и SQLite.

30 - при создании в Db2 и Oracle.

31 - при чтении из PostgreSQL и SQLite.

30 - при чтении из Db2 и Oracle 12.1 и более ранних версий.

128 при чтении из Snowflake или Google BigQuery.

127 при считывании из Redshift.

Для других баз данных до ограничения в базе данных.

Имя пользователя

ArcGIS создает пользователей только в следующих базах данных. Показана максимальная длина имени пользователя.

  • Oracle - 30 в 12.1 или более ранних версиях; 31 - 12.2 и выше
  • PostgreSQL - 31
  • SAP HANA - 31
  • SQL Server - 128

Зависит от того, как вы подключаетесь; в диалоговом окне Подключение к базе данных поддерживается до 31 символа.

Инструмент геообработки Создать подключение к базе данных поддерживает количество, соответствующее ограничению базы данных, но поддерживается только базами данных, а не облачными хранилищами данных.

Значения имен пользователей не применимы для SQLite или BigQuery.

Пароль

ArcGIS создает пароли для пользователей только в следующих базах данных. Показана максимальная длина пароля.

  • Oracle - 30
  • PostgreSQL - 75
  • SAP HANA - 31
  • SQL Server - 128

256 для всех поддерживаемых баз данных и облачных хранилищ данных, за исключением Teradata, для которых поддерживается только 31 символ и Redshift, для которых поддерживаются только 64 символа.

Значения паролей не применимы для SQLite или BigQuery.

*Вы не можете использовать ArcGIS для создания объектов в облачных хранилищах данных.

Для BigQuery максимальная поддерживаемая длина имени набора данных по умолчанию составляет 31 символ. Максимальная поддерживаемая длина имени проекта - 30 символов.

Проверка геометрии

Когда вы создаете данные в базе с помощью клиента ArcGIS, ArcGIS проверяет геометрию на основе определенных правил. Если создаваемая в клиенте ArcGIS геометрия является недопустимой, ArcGIS не позволит разместить ее в базе данных.

Функции конструктора Esri и IBM ST_Geometry, а также ArcGIS API, используют для проверки геометрии данных библиотеку геометрии Esri. Поэтому даже если вы создаете геометрию Esri или IBM ST_Geometry с помощью SQL, применяются правила проверки и недопустимая геометрия не будет размещена в базе.

Другие пространственные типы, такие как SDO_Geometry, PostGIS geometry или geography и Microsoft SQL Server geometry или geography, имеют собственные функции конструктора и используют собственные правила проверки геометрии. Эти правила могут не совпадать с правилами ArcGIS. Клиенты ArcGIS проверяют геометрию при чтении данных и не отображают такую геометрию, которая нарушает правила проверки ArcGIS. Если вы подключаетесь к базе данных, которая содержит данные, созданные не в ArcGIS, необходимо помнить о применении правил ArcGIS.

Правила проверки для точек

  • Площадь и длина точек равны 0,0.
  • Конверт одной точки равен значениям X, Y этой точки.
  • Конверт из нескольких точек равен минимальному прямоугольнику, ограничивающему точки.

Правила проверки для простых линий или последовательностей линий

  • Каждая часть линии должна иметь, по меньшей мере, две различные точки.
  • Каждая часть линии не должна пересекать сама себя. Начальная и конечная точка линии могут быть одинаковыми, но полученное замкнутое кольцо не будет считаться полигоном.
  • Части линии могут касаться друг друга в конечных точках.
  • Длина линии равна сумме длин всех ее частей.

Правила проверки для линий или слабо структурированных последовательностей линий

  • Линии могут пересекать сами себя.
  • Каждая часть линии должна иметь, по меньшей мере, две различные точки.
  • Длина линии равна сумме длин всех ее частей.

Правила проверки и операции для полигонов

  • Висячие узлы недопустимы.
  • Сегменты линий, составляющие полигон, должны быть замкнуты (при этом z-координаты начальной и конечной точек также должны совпадать) и не должны перекрещиваться.
  • Если полигоны содержат пробелы, они должны полностью располагаться внутри внешней границы площади. Пробелы, находящиеся за пределами внешней границы, недопустимы.
  • Пробел, имеющий одну общую точку с внешней границей, преобразуется в полигон.
  • Несколько пробелов, имеющих общие точки, объединяются в один пробел.
  • Составные полигоны не могут перекрываться. Однако две части могут касаться в одной общей точке.
  • Составные полигоны не могут иметь общих границ.
  • Если два кольца имеют общую границу, они сливаются в одно кольцо.
  • В качестве длины геометрии рассчитывается общий периметр, включая границы всех пробелов в полигонах с пробелами.
  • Вычислена площадь.
  • Вычислен конверт.
  • Точки полигона хранятся в базе по направлению против часовой стрелки, хотя клиенты ArcGIS могут обратить точки в любом направлении. Если создается полигон, содержащий координаты в направлении по часовой стрелке, ArcGIS изменяет это направление и записывает координаты против часовой стрелки.

    Вершины полигона хранятся по направлению против часовой стрелки

    В этом примере начальная точка – a, и координаты должны быть перечислены в порядке a,b,c,d,a.

  • Полигон может иметь выемки, в тех местах, где пустоты внутри полигона касаются внешней границы.

    Порядок следования вершин полигона с выемками

  • Полигоны с выемками имеют внутреннее кольцо, касающееся внешней границы. Они не считаются полигонами с пробелами.
  • Если в полигоне имеется пробел, в первую очередь считывается внешняя граница. Точки пробелов хранятся в направлении, противоположном направлению внешней границы.

    В примере на следующем рисунке внешняя граница описана в порядке a,b,c,d,a, а пробел – в порядке e,f,g,h,e. Весь полигон, как объект, хранится в виде a,b,c,d,a,e,f,g,h,e.

    Порядок следования вершин полигона с выемкой

  • Если два пробела касаются в одной общей точке, они считаются за один пробел, а не за два.

    Порядок следования вершин полигона с двумя пробелами, имеющими общую точку

    В приведенном примере две внутренние области являются единым пробелом, так как они имеют общую точку g.

  • Как показано на следующем рисунке, сочетания обычных полигонов и полигонов с пробелами могут иметь достаточно сложную структуру. Внешняя граница представляет озеро с островом. На острове тоже есть небольшое озеро.

    Вложенные полигоны

    Можно представить такие полигоны как один, два или три объекта. Каждый полигон может храниться как отдельный объект. Большое озеро является полигоном с пробелом. Граница большого озера является внешней границей формы, тогда как остров представлен границей ее единственного пробела. Остров также является полигоном с пробелом. Граница острова является внешней границей, тогда как маленькое озеро представлено пробелом. Маленькое озеро является одним полигоном.

    Если озера являются важными объектами, один полигон с пробелом может представлять большое озеро, а второй полигон – малое озеро. Также для отображения объектов можно использовать составные полигоны. Первой частью полигона будет большое озеро с пробелом, представляющим остров. Второй частью будет малое озеро.

  • Нулевая геометрия допустима и действует как заполнитель. Они позволяют хранить атрибутивную строку без соответствующей геометрии. Например, нулевая геометрия может появиться как результат запроса пересечения двух непересекающихся полигонов.

    Не пересекающиеся полигоны приводят к появлению нулевой геометрии

    Так как площади A и B не касаются друг друга, в результате запроса их пересечения будет возвращена пустая геометрия.

  • Объекты обладают размерами. Объект, обладающий только координатами x и y, считается двухмерным. Объекты с z-координатами и измерениями являются трехмерными. Объект также может иметь нулевое измерение.

Пространственные метаданные

Базы данных хранят метаданные пространственных данных. Клиенты ArcGIS могут считывать информацию о типе классов объектов (например, точки, линии и полигоны), размерности (x, y, z и m координаты), пространственной привязке, уникальном идентификаторе и экстенте класса объектов из системных таблиц базы геоданных. Эти таблицы недоступны, если ArcGIS подключается к классу объектов в базе данных. Поэтому ArcGIS должен получать эти сведения из других источников.

При перетаскивании класса пространственных объектов (пространственной таблицы) на карту в ArcGIS Pro создается слой запроса. Определение слоя запроса в ArcGIS Pro происходит следующим образом:

  1. В базе данных запрашивается информация о пространственной таблице, в частности, размерность, пространственная привязка и тип геометрии.
  2. Если эта информация не определена для всей таблицы, ArcGIS Pro считывает первую строку таблицы и использует информацию, указанную для этого объекта.
  3. Если пространственная привязка, тип геометрии или размерность таблицы не могут быть определены по первой строке – например, таблица является пустой, или эта строка имеет пользовательскую пространственную привязку – нужная информация для определения слоя будет запрошена у пользователя.
  4. ArcGIS Pro запрашивает базу данных, чтобы найти непустую колонку для использования ее данных в качестве уникального идентификатора записей в определенной таблице. Если подходящий столбец не найден, определение ObjectID таблицы будет запрошено у пользователя.
  5. Наконец, ArcGIS Pro вычислит экстент данного слоя при добавлении его на карту.

Поскольку данные, отображаемые на карте, зависят от запроса, можно открыть определение слоя запросов и изменить его вручную. К примеру, если класс пространственных объектов содержит как точки, так и полигоны, можно выбрать нужный тип геометрии, открыв определение слоя запросов. Кроме того, если класс пространственных объектов содержит несколько пространственных столбцов, можно открыть определение слоя запроса и изменить запрос так, чтобы использовался другой столбец. Имейте в виду, что путем изменения запроса нельзя отобразить не поддерживаемые типы данных.