Running a Data Interopability ETL tool in a python script

32bit versus 64bit
32bit versus 64bit

The Data Interoperability Extension for ArcGIS is an incredibly powerful tool for migrating and transforming data (both spatial AND non-spatial). We have been using it a lot lately with our clients to assist in creating an integrated platform for them where they can view all their geospatial data in a single, authoritative portal, regardless of where it comes from. The problem always is that the moment you run an ETL tool, the data is out of date. So, to solve this, we wrap our ETL tools in python and schedule them as Windows Tasks to run periodically and automatically. When I first did this, I got some strange error back from my python interpreter saying that the tool could not be executed (obviously, no more detail than that!).

The key thing I found and is critical to understand, is that Data Interop (at least up until v10.3.1) is a native 32bit Windows application. When you install ArcGIS for Desktop it automatically installs both the 32bit and 64bit version of python – the default (set in your environment variables) will be the 64bit one. Logically, you cannot execute a 32bit process from within a 64bit one… Hence the error.

So, once you know this, the workaround is simple! Just execute your python script using the 32bit python.exe and voila, your ETL will run inside the python and can now be scheduled using Windows tasks.

Happy scripting!

-Richard