Рекомендации по перемещению больших наборов схематических данных

Перед перемещением набора схематических данных, в котором содержится большое количество схематических представлений, рекомендуется проверить размер схематических представлений, которые вы хотите переместить, и проанализировать, как сконфигурирован этот набор схематических данных.

Процесс перемещения занимает много времени и требует много памяти в следующих ситуациях:

Для таких ситуаций рекомендуется выполнять перенос набора схематических данных в соответствии с правилами, содержащимися в разделе Перемещение больших наборов схематических данных шаг за шагом (Migrating large schematic datasets step by step) .

Раздел О параллельном выполнении операций по переносу схематических представлений (About performances when executing parallel processes for migrating schematic diagrams) содержит некоторые рекомендации по количеству компьютеров и числу процессов, которые будут выполняться параллельно для переноса большого числа схематических представлений в приемлемые сроки.

Перемещение больших наборов схематических данных шаг за шагом

Этап №1 – подготовка набора схематических данных к перемещению

Первый этап заключается в анализе настроек набора схематических данных pre-10, который необходимо переместить, и подготовке его к перемещению:

  1. Запустите ArcCatalog на клиенте pre-10, где установлено расширение ArcGIS Schematics.
  2. Найдите и выберите набор схематических данных pre-10, который вы хотите перенести, и отредактируйте его в Schematic Designer.
  3. Проанализируйте каждое определение класса объектов схемы и проверьте, имеются ли в классе объектов схемы атрибуты типа Query, Function, Formatted или Script.
  4. Как описывается в разделе Подготовка наборов схематических данных pre-10 (Preparing pre-10 schematic datasets):
    • Убедитесь, что пространственная привязка задана для каждого класса объектов схемы.
    • Настройте атрибут ContainerMark для каждого класса объектов узлов схемы, который должен быть перенесен как контейнер.
  5. Дополнительно, создайте в своем наборе схематических данных pre-10 временные папки схемы и переместите в них поднаборы схематических представлений.

Этап №2 – перенос определений наборов схематических данных

Второй этап заключается в переносе определений набора схематических данных:

  1. Запустите ArcCatalog
  2. В дереве Каталога щелкните правой кнопкой мыши на наборе схематических данных pre-10, который вы хотите перенести, и выберите Перенести в текущую версию Schematics (Migrate to the current Schematics version).
  3. В открывшемся диалоговом окне Выбрать тип геометрии (Select Geometry Type) укажите тип геометрии узла схемы и классов прорисовки, которые необходимо перенести.
  4. В открывшемся диалоговом окне Перенести в текущую версию Schematics (Migrate To The Current Schematics Version):
    • Укажите выходной набор схематических данных, в который вы хотите выполнить перемещение.
    • Отметьте Определения (Definitions) в секции Операция вывода (Output Activity).
    • Нажмите ОК.
Начнется процесс перемещения. Когда он будет завершен, определения набора схематических данных будут перенесены.

Этап №3 – одновременное перемещение разных поднаборов схематических представлений

Третий этап заключается в переносе схематических представлений, содержащихся в наборе схематических данных pre-10.

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

На каждом компьютере с версией 10 необходимо запустить один или несколько процессов перемещения, как следует ниже:

  1. Запустите ArcCatalog
  2. В дереве Каталога щелкните правой кнопкой мыши на наборе схематических данных pre-10 и выберите Перенести в текущую версию Schematics (Migrate to the current Schematics version).
  3. Закройте диалоговое окно Выбрать тип геометрии (Select Geometry Type).
  4. В открывшемся диалоговом окне Перенести в текущую версию Schematics (Migrate To The Current Schematics Version):
    • Укажите выходной набор схематических данных, в который вы хотите выполнить перемещение.
    • В секции Операция вывода (Output Activity) выполните следующее:
      • Отметьте Схемы (Diagrams).
      • Отметьте Задать фильтры (Specify filters) и настройте фильтры, которые будут применены, чтобы определить, какой поднабор схематических представлений будет перенесен в этом процессе; например, создайте выражение SQL на основе FOLDERID, соответствующего временной папке, которую вы создали на этапе №1.
      • Для схематических представлений, в которых содержатся объекты схемы с атрибутами типа Query, Function, Formatted или Script, снимите отметку С оценками атрибутов (With attribute evaluations).
        ПримечаниеПримечание:

        Если в определении набора схематических данных атрибуты типа Query, Function, Formatted или Script отсутствуют, то поле С оценками атрибутов (With attribute evaluations) может быть оставлено отмеченным. Продолжительность процесса переноса схем в этом случае не будет зависеть от того, была ли эта опция отмечена во время переноса.

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

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

Этап №4 – Обновление атрибутов объектов схемы в перемещенных схематических представлениях (дополнительно)

Если в процессе перемещения поднабора схем отключить опцию С оценками атрибутов (With attribute evaluations), то не будет оцениваться ни один из атрибутов типа Query, Function, Formatted или Script, заданных для объектов схем в перемещенных схемах. В этом случае впоследствии необходимо обновить такие атрибуты.

Что касается схематических представлений на основе стандартного компоновщика (Standard builder) или настроенных пользовательскими запросами, то простой и быстрый способ обновления таких атрибутов иллюстрирует следующий пример скрипта Python. Он основан на инструменте Обновить схемы GP (Update Diagrams GP) и работает в разных ситуациях:

  • Ситуация А – Обновление атрибутов на всех схематических представлениях, которые вы перенесли в определенную папку схемы
  • Ситуация Б – Обновление атрибутов на всех перенесенных схематических представлениях, которые основаны на определенном шаблоне схемы
  • Ситуация В – Обновление атрибутов на всех перенесенных схематических представлениях, которые не обновлялись n-ное количество дней
# Name: RefreshingAttributesInMigratedDiagrams.py
# Description: Refreshing attributes on schematic features contained in migrated diagrams
# Requirement: ArcGIS Schematics extension

# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics extension license required"

try:
    # Checks out the ArcGIS Schematics extension license
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)

    # Sets Schematics general settings
    dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
    gdbName="ElecDemo.gdb"
    in_schDataset="ElecDemo"
    in_schFolder="MyTemporaryFolderName"
    in_diagTempName="GeoSchematic"
    updateOption="REFRESH"
    recOption1="RECURSIVE"
    nbDays="60"

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName

    # Case A - Refreshing attributes on schematic diagrams that were migrated on a particular schematic folder.
    arcpy.UpdateDiagrams_schematics(in_schDataset + "/" + in_schFolder1,"REFRESH")

    # Case B - Refreshing attributes on all migrated schematic diagrams that are based on a specified diagram template.
    arcpy.UpdateDiagrams_schematics(in_schDataset, "REFRESH", "RECURSIVE", in_diagTempName)

    # Case C - Refreshing attributes on all migrated schematic diagrams that have not been updated for N days.
    arcpy.UpdateDiagrams_schematics(in_schDataset, "REFRESH", "RECURSIVE", "#", nbDays)

    # Returns the ArcGIS Schematics extension license
    arcpy.CheckInExtension("Schematics")

    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occurred on line %i" % tb.tb_lineno
    print str(e)
Этот образец скрипта поможет вам при написании собственного скрипта для обновления атрибутов на объектах схем, которые содержатся в перенесенных схемах.
ПримечаниеПримечание:

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

Более подробно об обновлении схем с помощью опции Обновить атрибуты (Refresh attributes)

Для того, чтобы атрибуты перемещенных схем обновились, сделайте следующее:

  1. Запустите ArcCatalog
  2. Скопируйте и вставьте свой скрипт в окно Python.
  3. Нажмите ENTER.

Этап №5 – реорганизация перемещенного набора схематических данных (дополнительно)

Когда вы создавали временные папки схемы в наборе схематических данных pre-10 для более простого перемещения схематических представлений в каждой из этих папок, временные папки также имелись и в перемещенном наборе схематических данных. Теперь вы можете перенести схематические представления, которые были перемещены в эти папки, в нужное вам местоположение схемы, а временные папки удалить.

О параллельном выполнении операций по переносу схематических представлений

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

Системные требования к клиентскому компьютеру ArcGIS Desktop 10.2

  • Процессор: минимум двух-ядерный (Dual-core)
  • Установленная память (RAM): минимум 4 GB для поддержки перемещения 1000 крупных схематических представлений, выполняя два параллельных процесса, каждый процесс выполняется на 500 схематических представлениях.

    Рекомендуется запуск с 8 GB инсталлированной памяти для уровня загруженности ЦП при выполнении четырех параллельных процессов и перемещении 2000 крупных схем, по 500 схем на процесс.

Требования к компьютеру-серверу баз данных

  • Инсталлированная память (RAM):минимум 16 GB
  • Размер базы данных: С учетом того, что 1000 схем, в которых содержится 2000 объектов схемы, для каждой из которых требуется около 1,5 ГБ дискового пространства, размер базы данных должен быть корректно рассчитан так, чтобы поддерживался размер перемещаемых схем.

Определение размеров параллельно перемещаемых поднаборов

Скорость перемещения схематических представлений pre-10 из файловых в файловые или SDE базы геоданных весьма высокая – за один час перемещается 500 крупных схематических представлений. Много времени занимает перемещение в базы геоданных SDE схем, содержащихся в наборах схематических данных pre-10 и хранящихся в базах геоданных SDE – 500 крупных схем перемещаются около шести часов. Это время удваивается – примерно до 12 часов – в случае, если имеются атрибуты схем типа Query, Function, Formatted или Script, и в процессе переноса производится их оценка.

Если вам требуется перенести большое число схематических представлений, например – 10000 схем, то все эти схемы вы сможете перенести за одну ночь следующим образом:

  • Разделите эти 10000 схематических представлений на 20 поднаборов, создав для них 20 временных папок схем.
  • Установите 4 или 5 клиентских компьютеров Desktop 10.2.
  • Запустите 4 или 5 параллельных процессов перемещения на каждом клиентском компьютере Desktop 10.2, чтобы каждый процесс выполнялся на определенном поднаборе схем, например, на определенной папке схем.

5/10/2014