Я хотел бы сделать точную копию (домены, наборы классов объектов, классы объектов и т. Д.) Базы данных SDE в файловую базу геоданных.
Я испробовал несколько возможностей, в том числе:
- используя процесс копирования (управления данными)
- создание новой GDB и ручное копирование каждого набора классов объектов из SDE
- экспорт документа рабочей области xml из SDE и импорт его в GDB
Copy_management
Процесс не кажется , что это будет работать для копирования SDE к БГД, так как типы данных , входные и выходные должны совпадать.
Процесс импорта каждого набора классов объектов в новую GDB, вероятно, можно автоматизировать с помощью Copy_management, перебирая каждый набор классов объектов, хотя, по-видимому, это может вызвать проблемы с неполной копией, если в одном из процессов произошла ошибка.
Экспорт и импорт рабочих пространств xml, похоже, работает, хотя этот процесс создает невероятно большие файлы, когда процесс используется в больших базах геоданных.
Есть ли более простой способ скопировать содержимое и схему SDE в GDB, чем упомянутые способы, способом, который можно автоматизировать?
Если нет, есть ли причины, по которым вышеуказанные возможности не следует использовать в этом процессе?
Ответы:
Единственный способ получить точную копию данных (домены, наборы данных, отношения и т. Д.) - это использовать метод ручного копирования и вставки внутри каталога. ESRI еще не дал нам возможность передавать эти данные любым другим способом с помощью одной операции, которая может быть легко написана.
У меня есть ночной процесс, который копирует мои две основные базы данных SDE в файловые базы геоданных для обеспечения непрерывности операций. Это сделано для того, чтобы в случае чрезвычайной ситуации мои сотрудники могли работать с некоторыми данными, пока мой ИТ-магазин не сможет восстановить мой SDE из резервной копии. После долгих проб и ошибок я решил, что мы можем жить с ограничениями использования FeatureClassToFeatureClass_conversion и TableToTable_conversion для передачи наших данных каждую ночь.
Да, мы утратили некоторые функции базы геоданных, но теперь она будет работать без присмотра ночью и будет готова к работе, как только я ее получу. В моем случае единственная функциональность, которую нам действительно не хватает (при условии работы в аварийном режиме), состоит в том, что мои классы отношений нарушены, потому что преобразование сбрасывает ObjectID, которые связывают две таблицы.
Пока ESRI не предоставит нам больше возможностей, вам придется посмотреть, чем вы готовы пожертвовать в данный момент; время и усилия или функциональность?
источник
Я знаю, что этот пост немного староват, но я хотел бы поделиться своим ответом, поскольку столкнулся с той же проблемой. Следующий скрипт ДОЛЖЕН скопировать все таблицы, классы пространственных объектов и связи, не входящие в набор данных, а также скопировать все наборы данных, включая классы пространственных объектов, топологию и т. Д. В наборе данных. Он пропустит любые ошибки во время копирования и продолжения работы. Он создаст файл журнала, который содержит такие данные, как количество элементов в исходной БД и количество пунктов назначения, чтобы вы могли сравнить копию, и он также будет регистрировать ошибки, с которыми он сталкивается.
Мне очень повезло с этим. Я реплицировал базу данных SDE в файловую базу геоданных. Я не слишком много тестировал этот скрипт, так как он удовлетворял все мои потребности. Я протестировал его с помощью ArcGIS 10.3. Кроме того, следует отметить, что я разговаривал с кем-то, кто использовал этот сценарий, и у них возникла проблема с ошибкой при копировании определенных наборов данных из-за неправильных разрешений и пустых таблиц.
Лемур - почему бы не создать свои отношения на основе глобального идентификатора вместо идентификатора объекта? Это вы ваши отношения будут сохранены. Если вы не создали глобальные идентификаторы, я очень рекомендую это.
-Обновить
Я добавил немного больше логики в код для обработки неправильных путей соединения с базой данных и лучшей регистрации и обработки ошибок:
источник
Я использовал сценарий, похожий на сценарий Питера, и мне повезло, хотя он лучше. Следует отметить, что если кто-то использует геообработку на 64-битном питоне и у вас загружен ArcFM поверх ESRI, он не будет работать на всех объектах, для которых было установлено использование ArcFM или Designer с ОШИБКОЙ 000260. потому что вы должны использовать 32-битный Python, иначе ArcFM не будет правильно лицензироваться.
Более подробное описание использования 32-битной ArcPy см. В первых двух комментариях к этой теме в Exchange.
https://infrastructurecommunity.schneider-electric.com/docs/DOC-2563
источник
Если у вас есть права администратора, вы можете использовать простые команды копирования и вставки, чтобы экспортировать или импортировать sde в файл гео-базы данных, и посмотрите здесь для получения дополнительной информации.
источник