Zachování GlobalID při exportu dat z geodatabáze

11. 9. 2018
  • Desktopový GIS
  • ArcGIS Pro 2.0
  • ArcGIS Pro 2.1
  • ArcGIS Pro 2.2

Při převodu dat z jedné geodatabáze do druhé může přijít vhod, aby data ve zdrojové i cílové geodatabázi měla shodné hodnoty GlobalID. Tedy podobně, jako je tomu při kopírování tříd (tabulek) metodou kopírovat/vložit v aplikaci ArcCatalog, ale bez kopírování všech geodatabázově navázaných objektů.

Stejně, jako se při exportování tříd prvků s klasickým objectid nezachovávají hodnoty samotného objectid, nezachovávají se ani hodnoty ve sloupci GlobalID. V cílové třídě se vytvoří nové prvky, které získají nově vygenerovanou hodnotu ID. (Všechny hodnoty atributů však zůstávají zachovány.)

V ArcGIS Pro můžeme využít proměnné prostředí arcpy.env.preserveGlobalIds=True a nástroje exportu pak použijí hodnoty GlobalID ze zdrojové třídy. Funkce appendexport se však chovají mírně odlišně.

Zatímco u funkce export nezáleží na tom, z jaké a do jaké geodatabáze se exportuje – nástroj se v procesu kopírování hodnot GlobalID zachová dle nastavení parametru –  u funkce append je potřeba, aby se cílová třída prvků nacházela v enterprise geodatabázi a na sloupci s GlobalID existoval jedinečný index.

Poznámka: Do verze ArcGIS Desktop 10.5.1 a ArcGIS Pro 2.0 nástroj AddGlobalidID nevytvářel na sloupci s GlobalID jedinečný index. Vznikaly totiž konflikty s některými verzovacími nástroji. V delta tabulkách byla potřeba prvek opakovat pro různé stavy verzí a jedinečný index šlo na base tabulce vytvořit až po verzování. Pro usnadnění případného dalšího verzování tedy sloupec GlobalID nebyl veden jako jedinečný index (a unikátnost se předpokládala již díky funkci, která hodnoty GlobalID generuje).

Autor: Martin Král