ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Переход от команд администрирования ArcSDE

  • Администрирование базы геоданных
  • Управление данными

Для администрирования баз геоданных и управления данными, которые вы выполняли командами администрирования ArcSDE, используйте инструменты геообработки, скрипты Python или инструменты администрирования баз геоданных в ArcGIS Desktop.

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

Администрирование базы геоданных

Некоторые задачи администрирования требуют подключения из-под администратора баз геоданных; некоторые – подключения из-под администратора баз данных. Во многих случаях, если вы будете записывать в скрипте задачи администрирования, потребуется создать файл подключения к базе данных (.sde), который создает подключение как для обязательного пользователя. Чтобы создать файл, используйте инструмент геообработки Создать Подключение базы данных или диалоговое окно Подключение к базе данных в ArcGIS Desktop.

Создание базы геоданныхИнструмент

Создание базы геоданных в Microsoft SQL Server, Oracle или PostgreSQL

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

Создание базы геоданных в IBM DB2 или IBM Informix

Инструмент геообработки Включить многопользовательскую базу геоданных

Контроль конфигурации базы геоданныхИнструмент

Добавление ключевых слов и редактирование параметров в DBTUNE

Инструменты геообработки Экспортировать ключевые слова конфигурации баз геоданных и Импортировать ключевые слова конфигурации баз геоданных

Измените конфигурацию таблицы файла журнала в DB2, Informix или Oracle.

Инструмент геообработки Настроить таблицы файлов журнала базы геоданных

Удаление схемы базы геоданных из Oracle

Инструмент геообработки Удалить схему базы геоданных

Обновление базы геоданных

Инструмент геообработки Обновить базу геоданных

Управление версионными базами геоданныхИнструмент

Создание версии базы геоданных

Инструмент геообработки Создать версию или диалоговое окно Менеджер версий в ArcGIS Desktop

Согласование версии

Инструмент геообработки Согласовать версии или с помощью функции Согласовать в ArcMap

Закрепление изменений в родительской версии

Инструмент геообработки Закрепить версию или с помощью функции Закрепить в ArcMap

Сжатие версионной базы геоданных

Инструмент геообработки Сжатие или функция Сжать базу данных в ArcGIS Desktop

Удаление версии базы геоданных

Инструмент геообработки Удалить версию или диалоговое окно Менеджер версий в ArcGIS Desktop

Диагностика и восстановление версии таблиц метаданных и системных таблиц

Инструменты геообработки Диагностировать метаданные версии, Восстановить метаданные версии, Диагностировать таблицы версии и Восстановить таблицы версии

Обновление индексов для версии системных таблиц

Откройте инструмент геообработки Перестроить индексы

Обновление статистики для версии системных таблицах

Инструмент геообработки Анализировать наборы данных

Управление подключениямиИнструмент

Получение списка текущих подключений баз геоданных

На вкладке Подключения в диалоговом окне Администрирование базы геоданных в ArcGIS DesktopListUsers или с помощью функции Python

Можно просмотреть все блокировки для подключений на вкладке Блокировки диалогового окна Администрирование базы геоданных.

Сброс подключений из базы геоданных

На вкладке Подключения в диалоговом окне Администрирование базы геоданных в ArcGIS Desktop или DisconnectUserс помощью функции Python

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

На вкладке Подключения в диалоговом окне Свойства базы данных в ArcGIS Desktop или AcceptConnectionsс помощью функции Python

Управление данными

При загрузке данных в много пользовательскую базу геоданных пользователь, из-под которого вы подключаетесь, будет владельцем данных в базе геоданных. Некоторые задачи управления базой геоданных, например, назначение прав доступа или перестроение индексов, можно выполнять, только являясь владельцем данных. До выполнения этих задач убедитесь, что был создан файл подключения к базе данных (.sde), который подключается с под правильным пользователем.

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

Если вы желаете чтобы создание файла подключения к базе данных было частью каждого скрипта, используйте CreateDatabaseConnection_management.

Экспорт ресурсов базы геоданных в переносимом файле.

Описание: Экспорт схемы базы геоданных, отношений, поведения и данных в XML-документы рабочей области для общего доступа к ним. Вы можете также экспортировать поднабор ресурсов базы геоданных в XML-документ рабочей области.

Используемый инструмент: Экспорт в XML-документ рабочей области

Пример скрипта:

""" Export geodatabase contents to a portable file """

import arcpy
import sys


def ExportXMLWorkspaceDocument(in_data, out_file, export_type=None, storage_type=None, export_metadata=None):
    """ Export geodatabase contents to a portable file """
    try:
        arcpy.ExportXMLWorkspaceDocument_management(in_data,
                                                    out_file,
                                                    export_type,
                                                    storage_type,
                                                    export_metadata)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ExportXMLWorkspaceDocument(*arguments)

Импорт новых ресурсов в базу геоданных

Описание: XML-документы рабочей области, включающие схему базы геоданных, отношения, поведение, а также данные. Вы можете импортировать XML-документ рабочей области, который содержит только схему базы геоданных, а затем загрузить ваши собственные данные в эту схему. Или вы можете создать шаблонную базу геоданных, экспортировать схему и отношения из базы геоданных в XML-документ рабочей области, и затем выполнить импорт этого документа в новую базу геоданных.

Используемый инструмент: Импорт в XML-документ рабочей области

Пример скрипта:

""" Import new gdb contents """

import arcpy
import sys


def ImportXMLWorkspaceDocument(target_geodatabase, in_file, import_type=None, config_keywords=None):
    """ Import new gdb contents """
    try:
        arcpy.ImportXMLWorkspaceDocument_management(target_geodatabase,
                                                    in_file,
                                                    import_type,
                                                    config_keywords)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ImportXMLWorkspaceDocument(*arguments)

Импорт ресурсов с перезаписью старых

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

Используемые инструменты Удалить вместе с Импорт XML-документа рабочей области

Пример скрипта:

""" Imports contents to overwrite old contents """

import arcpy
import sys
from xml.etree import ElementTree
import re


def FindDatasets(xml_file):
    """ Open xml file and identify datasets """
    xmldoc = ElementTree.ElementTree()
    xmldoc.parse(xml_file)
    root = xmldoc.getroot()

    contents = []
    for i in root.findall('WorkspaceDefinition/DatasetDefinitions/DataElement'):
        contents.append(i.findtext('Name'))

        for j in i.findall('./Children/DataElement/CatalogPath'):
            contents.append('/'.join(re.split(r'/[a-z|A-Z]*=', j.text)[1:]))

    contents.reverse()
    return contents


def DeleteDatasets(database, datasets):
    """ Delete dataset in database """
    for ds in datasets:
        try:
            arcpy.Delete_management(os.path.join(database, datasets))
        except:
            print('Unable to delete {}'.format(ds))


def ImportXML(database, xml_file):
    """ Import XML workspace document """
    arcpy.ImportXMLWorkspaceDocument_management(database, xml_file)


if __name__ == "__main__":
    xml_file = sys.argv[1]
    database = sys.argv[2]

    datasets = FindDatasets(xml_file)
    DeleteDatasets(database, datasets)
    ImportXML(database, xml_file)
    arcpy.ImportXMLWorkspaceDocument_management(database, xml_file)

Импорт одного шейп-файла или покрытия и полей карты

Описание: Укажите, какие поля из импортируемого шейп-файла или покрытия соответствуют каким полям в выходном классе пространственных объектов базы геоданных.

Используемые инструменты: ListFields вместе с FeatureClassToFeatureClass_conversion вместе с FieldMappings

Пример скрипта:

import arcpy
import os

arcpy.env.overwriteOutput = True

input_features = r'C:\Users\davi4075\Documents\ArcGIS\lakes.shp'
out_fc = r'C:\Users\davi4075\Documents\ArcGIS\mexico.gdb\out_lakes'

fms = arcpy.FieldMappings()
fms.fieldValidationWorkspace = os.path.dirname(out_fc)

# Cycle through input field to transfer
for field in arcpy.ListFields(input_features):

    # Exclude geometry and objectid fields
    if field.type not in ['Geometry', 'OID']:
        fm = arcpy.FieldMap()
        fm.addInputField(input_features, field.name)

        # if altering field properties, need to push updated field back
        # to FieldMap
        field.name = field.name.upper()
        fm.outputField = field

        # Insert FieldMap into FieldMappings
        fms.addFieldMap(fm)

arcpy.FeatureClassToFeatureClass_conversion(
    input_features, os.path.dirname(out_fc), os.path.basename(out_fc),
    field_mapping=fms)

Импорт множества шейп-файлов или покрытий сразу

Описание: Импорт множества шейп-файлов или покрытий одновременно

Используемые инструменты: Класс объектов в базу геоданных

Пример скрипта:

""" Import multiple shapefiles or coverages at one time """

import arcpy
import sys


def ImportMultiple(input_features, output_database):
    """
    Import multiple shapefiles or coverages at one time

    input_features -- semi-colon delimited string of shapefiles and/or coverages
    """
    try:
        arcpy.FeatureClassToGeodatabase_conversion(input_features, output_database)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ImportMultiple(*arguments)

Импорт множества шейп-файлов или покрытий и назначение прав доступа к новым классам пространственных объектов для существующих групп баз данных

Описание: Импорт множества шейп-файлов или покрытий и назначение прав доступа к выходным классам пространственных объектов для существующих групп баз данных так, чтобы участники групп обладали правами доступа к новым классам.

Используемые инструменты: Класс объектов в базу геоданных вместе с Изменить права доступа

Пример скрипта:

"""
Import multiple shapefiles or coverages and grant privileges on new feature
classes to existing groups or users
"""

import arcpy
import sys


def ImportMultipleAndGrantPrivileges(input_features, output_database, user, view=None, edit=None):
    """
    Import multiple shapefiles or coverages and grant privileges on new feature
    classes to existing groups or users
    """
    try:
        feature_classes = input_features.split(';')
        for fc in feature_classes:
            out_fc = arcpy.CreateUniqueName(fc, output_database)
            arcpy.FeatureClassToFeatureClass_conversion(fc, out_fc)
            arcpy.ChangePrivileges_management(out_fc, user, view, edit)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ImportMultipleAndGrantPrivileges(*arguments)

Комбинирования множества шейп-файлов в один класс пространственных объектов

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

Используемые инструменты: Геометрическое соединение вместе с Слияние

Пример скрипта:

""" Combine multiple shapefiles into one feature class """

import arcpy
import sys


def CombineMultipleFeatureClasses(input_features, output_or_target):
    """ Combine multiple shapefiles into one feature class """
    try:
        feature_classes = input_features.split(';')
        if arcpy.Exists(output_or_target):
            arcpy.Append_management(feature_classes, output_or_target)
        else:
            arcpy.Merge_management(feature_classes, output_or_target)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    CombineMultipleFeatureClasses(*arguments)

Импорт множества таблиц

Описание: Импорт множества таблиц dBASE, INFO, VPF, OLE DB или таблиц базы геоданных в вашу многопользовательскую базу геоданных одновременно

Используемые инструменты: Таблица в базу геоданных

Пример скрипта:

""" Import multiple nonspatial tables """

import arcpy
import sys


def ImportTables(in_tables, target_database):
    """
    Export data to a shapefile

    in_tables -- semi-colon delimited string of tables
    target_database -- the database were tables will be added
    """
    try:
        tables = in_tables.split(";")
        arcpy.TableToGeodatabase_conversion(tables, target_database)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ImportTables(*arguments)

Сокращение таблицы или класса объектов и присоединение полей

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

Используемые инструменты: Сократить таблицу вместе с Геометрическое соединение

Пример скрипта:

""" Truncate table or feature class and append records """

import arcpy
import sys


def TruncateTableOrFeatureClass(in_table, target_table):
    """ Truncate table or feature class and append records """
    try:
        arcpy.TruncateTable_management(target_table)
        arcpy.Append_management(in_table, target_table, schema_type="NO_TEST")
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    TruncateTableOrFeatureClass(*arguments)

Сокращение таблицы или класса объектов, присоединение записей и обновление статистики базы данных

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

Используемые инструменты: Сократить таблицу вместе с Геометрическое соединение, вместе с Анализировать наборы данных

Пример скрипта:

"""
Truncate table or feature class, append records, and update
database statistics
"""

import arcpy
import sys
import os


def TruncateTableOrFeatureClass(in_table, target_table):
    """
    Truncate table or feature class, append records, and update
    database statistics
    """
    try:
        arcpy.TruncateTable_management(target_table)
        arcpy.Append_management(in_table, target_table)

        descr = arcpy.Describe(os.path.dirname(target_table))
        if getattr(descr, 'connectionProperties', None):
            conn = os.path.dirname(target_table)
        else:
            conn = os.path.dirname(os.path.dirname(target_table))

        arcpy.AnalyzeDatasets_management(conn)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    TruncateTableOrFeatureClass(*arguments)

Создание непространственного представления базы данных

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

Используемые инструменты: Создать представление базы данных

Пример скрипта:

""" Create nonspatial view """

import arcpy
import sys


def CreateNonspatialView(input_database, view_name, view_definition):
    """ Create nonspatial view """
    try:
        arcpy.CreateDatabaseView_management(input_database, view_name, view_definition)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    CreateNonspatialView(*arguments)

Создание представления базы данных, которое содержит столбец типа геометрии SQL

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

Используемые инструменты: Создать представление базы данных

Пример скрипта:

""" Create view containing SQL geometry type column """

import arcpy
import sys


def CreateSpatialView(input_database, view_name, view_definition):
    """ Create view containing SQL geometry type column """
    try:
        arcpy.CreateDatabaseView_management(input_database, view_name, view_definition)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    CreateSpatialView(*arguments)

Создание представления, которое содержит столбец типа геометрии SQL и регистрация представления с базой геоданных

Описание: регистрация пространственного представления с базой геоданных позволяет хранить информацию об экстенте пространственных данных, типе геометрии и пространственной привязке. Если эта информация хранится в системных таблицах базы геоданных, это позволит сократить время на отрисовку объектов, когда они добавляются для просмотра на карте. Добавьте один столбец типа геометрия SQL и один столбец ObjectID.

Используемые инструменты: Создать представление базы данных и Зарегистрировать в базе данных

Пример скрипта:

""" Create view containing SQL geometry type column """
""" Register view with the geodatabase """

import arcpy
import sys


def CreateSpatialViewAndRegisterWithGeodatabase(input_database, view_name, view_definition):
    """ Create view containing SQL geometry type column and then register with the geodatabase """
    try:
        arcpy.CreateDatabaseView_management(input_database, view_name, view_definition)
        arcpy.RegisterWithGeodatabase_management(view_name)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    CreateSpatialViewAndRegisterWithGeodatabase(*arguments)

Удалить таблицы

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

Используемые инструменты: Удалить

Пример скрипта:

""" Delete nonspatial tables """

import arcpy
import sys


def DeleteNonspatialTables(in_data):
    """
    Delete nonspatial tables

    in_data -- semi-colon delimited string of tables
    """
    try:
        tables = in_data.split(';')
        for table in tables:
            arcpy.Delete_management(table)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    DeleteNonspatialTables(sys.argv[1])

Удаление класса пространственных объектов

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

Используемые инструменты: Удалить

Пример скрипта:

""" Delete feature classes """

import arcpy
import sys


def DeleteFeatureClasses(in_data):
    """
    Delete feature classes

    in_data -- semi-colon delimited string of feature classes
    """
    try:
        feature_classes = in_data.split(';')
        for fc in feature_classes:
            arcpy.Delete_management(fc)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    DeleteFeatureClasses(sys.argv[1])

Экспорт данных в шейп-файл

Описание: Экспорт класса объектов в шейп-файл.

Используемые инструменты: Класс объектов в шейп-файл

Пример скрипта:

""" Export data to a shapefile """

import arcpy
import sys


def ExportToAShapefile(in_table, target_shp):
    """ Export data to a shapefile """
    try:
        if arcpy.Exists(target_shp):
            arcpy.Append_management(in_table, target_shp, schema_type="NO_TEST")
        else:
            arcpy.CopyRows_management(in_table, target_shp)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ExportToAShapefile(*arguments)

Согласование, закрепление и сжатие версионной базы геоданных

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

Используемые инструменты: Согласовать версии вместе с Сжать

Пример скрипта:

""" Reconcile, post, and compress versioned geodatabase """

import arcpy
import sys


def ReconcilePostAndCompress(input_database, reconcile_mode):
    """
    Reconcile, post, and compress versioned geodatabase
    """
    try:
        arcpy.ReconcileVersions_management(input_database, reconcile_mode)
        arcpy.Compress_management(input_database)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    ReconcilePostAndCompress(*arguments)

См. также Использование скриптов Python для пакетного согласования и закрепления версий

Весионные таблицы или классы объектов, добавление к ним global ID и создание реплик

Описание: Таблицы или классы объектов должны быть зарегистрированы как версионные и содержать столбец global ID, чтобы участвовать в репликации.

Используемые инструменты: Зарегистрировать как версионные вместе с Добавить GlobalID вместе с Создать реплику

Пример скрипта:

""" Version tables, add global IDs to tables, and create a replica """

import arcpy
import sys


def VersionTablesEtc(in_tables, in_type=None, out_geodatabase=None, out_name=None):
    """ Version tables, add global IDs to tables, and create a replica """
    try:
        tables = in_tables.split(';')
        for table in tables:
            arcpy.RegisterAsVersioned_management(table)
        arcpy.AddGlobalIDs_management(tables)

        if 'CreateReplica' in dir(arcpy.management):
            arcpy.CreateReplica_management(tables, in_type, out_geodatabase, out_name)

    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    arguments = sys.argv[1:]
    VersionTablesEtc(*arguments)

Регистрация сторонней таблицы в базе геоданных

Описание: Если вы используете сторонние приложения или SQL для создания таблиц (и пространственных, и не пространственных) в базе данных, где хранится ваша база геоданных, то вы можете зарегистрировать эти таблицы в базе геоданных. При этом в системные таблицы базы геоданных добавляется информация о данных таблицах, и они могут затем участвовать в функциональности базы геоданных.

Используемые инструменты: Зарегистрировать в базе геоданных

Пример скрипта:

""" Register third-party tables with the geodatabase """

import arcpy
import sys


def RegisterThirdPartyTables(in_tables):
    """
    Register third-party tables with the geodatabase

    in_tables -- semi-colon delimited string of tables
    """
    try:
        tables = in_tables.split(';')
        for table in tables:
            arcpy.RegisterWithGeodatabase_management(table)
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))

if __name__ == "__main__":
    RegisterThirdPartyTables(sys.argv[1])

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация