I now use a method for all data we need to export.
1. I have set up a static list in Marketo
2. I have a batch campaign that removes everyone from that list everyday at 9pm.
3. I have a batch campaign that adds new people to the list everyday at 10pm.
4. We have a script in our data ware house with ReST API to get all leads from the static list and with that selecting the fields we need (http://developers.marketo.com/documentation/rest/get-multiple-leads-by-list-id/). This script runs daily at 11pm.
The batch campaign has a smartlist that is based on ANY. And every filter is "Data Value Changed in past 30 hours". This for every field we export. And there is a "lead was created in past 30 hours). This allows the ReST API script to only exstract the new records and updated records. Obviously we did a one-time export to get started.
This method works pretty well for us, as the reporting is high-level and a daily update is sufficient.
6x Marketo Champion | Marketo Certified Solutions Architect (MCSA) | Marketo User Group Leader | International Speaker on Marketing Technology