Solved

Esri Template Geodatabase and ChangeDetection. How does the write work?


Badge +8

Hi All,

Question regarding using Esri Template Geodatabase and Change Detection. Or anytime using Templates in writers really.

When using a Esri Template Geodatabase and selecting "Overwrite Existing Geodatabase" does this process actually Delete Existing Geodatabase and Replace with a New Geodatabase that includes whatever magical newly transformed output was created up to that point in the workspace?

Example Scenario: When detecting changes between two Geodatabases a set of "changes" is produced and then we write that out to an existing geodatabase with same schema. To set this up we tell the writer the destination gdb and also identify a Template Geodatabase and select "overwrite existing geodatabase". In this case does the write delete the gdb and reassemble with existing data and applied changes from source?

or SourceDB>>UPDATES>>[CreateNEWDestinationDB]>>ApplyUPDATEStoNEWDestinationDB>>[DeleteExistingDestinationDB]

I know that is clear as mud but just trying to figure out, when using this technique is the GDB being deleted and created or are changes being written to the existing GeoDatabase?

Thanks a bunch to all who have read up-to-here. I owe you a coffee :D. Any thoughts?

All the Best!

Clifford.

icon

Best answer by markatsafe 4 August 2022, 22:31

View original

4 replies

Badge +2

@crutledge​ The original File Geodb is removed and replaced with the template Geodb. You can probably test this by creating a feature class in the original Geodb that doesn't exist in the template and seeing if it's still there after the write.

I think that if there is any data in the template Geodb, that will be preserved.

Badge +8

@crutledge​ The original File Geodb is removed and replaced with the template Geodb. You can probably test this by creating a feature class in the original Geodb that doesn't exist in the template and seeing if it's still there after the write.

I think that if there is any data in the template Geodb, that will be preserved.

@markatsafe

Thanks for the quick reply Mark. Gave me a few things to test out. Now that I have tested I am wondering if I am setting up (or understanding the application of) the changedetection transformer. When I use a blank template (either gdb or xml) all the existing data gets blown away and only the changes get written to the geodatabase. I was thinking that the changes would operate on the data in db operations where changes are ADDED to the existing dataset(s). An insert of 1 new record gets added to a table with 99 existing records making 100 records. A delete of 1 record 100-1=99 records. What I am seeing is only the records that come out of the changedetector make it over. All existing records are deleted. So in the screencap below I am seeing only 2 records in my updated feature class table. 240 Unchanged records are blown away while the 2 new records are Inserted. Am I applying this transformer in the right way? Thanks for reading this far!Capture 

Badge +2

@crutledge​ It probably isn't appropriate to use a template if you're updating an existing File Geodb. You should just write to the File Geodb you want to update. I've attached an example. Perhaps this will help you work through this. (FME 2021.2)

Badge +8

@crutledge​ It probably isn't appropriate to use a template if you're updating an existing File Geodb. You should just write to the File Geodb you want to update. I've attached an example. Perhaps this will help you work through this. (FME 2021.2)

@Mark Stoakes​ Agreed. I was just about to post a follow-up. These questions document my knowledge journey with the changedetector transformer :D

Just a little confused from the Tutorial geodatabase-behaviour-updating-a-file-geodatabase wondering about the use case? Where would one use a gdb template and change detection workflow for "updating" a geodatabase? To me that workflow could end up pretty heavy in deleting and recreating a large file gdb. In my case I want to pass updates from a webservice to a backup but want to keep the load as small as possible. Ie. only handle updates, inserts and deletes across network and then only write those to existing gdb thus keeping the server load minimal. So by not using a template gdb and not checking "Overwrite geodatabase" I achieve this....which is awesome btw!! :D Thanks again for all the ideas and support. Much appreciated.

Reply