Jak zamezit nárůstu geoprocessingové historie v metadatech geodatabáze

885
15
02-21-2024 04:07 AM
Labels (1)
MartinKrál
Esri Contributor
4 15 885

ArcGIS při každém spuštění geoprocessingového nástroje zapisuje informace o jeho běhu do části metadat „geoprocessingová historie“ třídy, nad kterou byl daný nástroj spuštěn (případně celého workspace). Například když z ArcGIS Pro spustíme nástroj Append nad určitou třídou, zapíše se informace do geoprocessingové historie této třídy/tabulky. Podobně když spustíme nástroj na tvorbu geodatabázové verze (což se týká celé geodatabáze), zapíše se informace o běhu do geoprocessingové historie workspace této geodatabáze.

Geoprocessingová historie se ukládá interně do systémové geodatabázové tabulky GDB_ITEMS a jejího pole Definition, kde jsou v XML uložená metadata daného geodatabázového objektu. Jestliže se geoprocessingové nástroje pouští často (například v pravidelně spouštěném python skriptu) může geoprocessingová historie třídy časem docela výrazně narůstat, a tím negativně ovlivňovat odezvu práce s geodatabází. Této situaci lze předejít nastavením na straně klientů ArcGIS a případně příliš objemnou historii geoprocessingu odmazat.

 

Jak vypnout ukládání historie do metadat geodatabáze?

V ArcGIS Pro (velmi podobně i v ArcMap) lze vypnout ukládání geoprocessingové historie odškrtnutím zápisu do metadat datové sady v nastavení geoprocessingu.

 

Screenshot - Options (4).png

 

V případě, že jsou nad daty geodatabáze často spouštěny python skripty a hrozí kvůli tomu růst objemu historie, je potřeba vypnutí provést na úrovni samotného skriptu pomocí procedury arcpy.SetLogHistory(False)

Viz https://pro.arcgis.com/en/pro-app/latest/arcpy/functions/setloghistory.htm

 

Promazání geoprocessingové historie z metadat geodatabáze

Ověřit si velikost geoprocessingové historie můžete tak, že se podíváte přímo do tabulky GDB_ITEMS (pohledu GDB_ITEMS_VW u Oracle), do pole Documentation. Nejprve je vhodné zjistit, u kterých objektů geodatabáze a jak moc geoprocessingová historie narostla. SQL pro analýzu velikosti metadat pro jednotlivé databázové platformy (Oracle, SQL Server, PostgreSQL) je možné najít například na:

https://support.vertigis.com/hc/en-us/articles/4415911657746-Performance-Geoprocessing-Metadata-in-E...

kde tyto příkazy naleznou 20 největších geodatabázových objektů a zobrazí velikost jejich metadat.

Jako určitý základ arcpy skriptu, promazávajícího geoprocessingovou historii tříd prvků a workspace v metadatech, je možné použít python skript z článku Knowledge Base Esri.

Pozor! Skript maže i thumbnaily vrstev, které mohou taktéž zabírat hodně místa.

https://support.esri.com/en-us/knowledge-base/how-to-delete-geoprocessing-history-from-a-geodatabase...

Tento skript je se znalostí arcpy a pythonu možné dle libosti dále upravovat, aby například:

  • nemazal thumbnaily (zakomentováním řádku tgt_item_md.deleteContent('THUMBNAIL') )
  • ukládal metadata do XML souboru před jejich promazáním pomocí funkce saveAsXML,

https://pro.arcgis.com/en/pro-app/latest/arcpy/metadata/metadata-class.htm

  • procházel a promazával i metadata tabulek a datasetů (nejen tříd prvků) procházením listu tabulek Arcpy.ListTables

https://pro.arcgis.com/en/pro-app/latest/arcpy/functions/listtables.htm

15 Comments