you are correct that the API on the google side will restrict the amount of data that is transfered. We document thsis ere - Google Analytics
Are you calling a GA for all of the data for the last 3 years at one time or are you running an incremental extract? I pull data for our own community forums site in GA but I use Tableau Server and the incremental extract feature of Tableau to update the data each day.
Do you have GA 360? If so, you shoud be able to link BigQuery to your GA property and access the data this way as well. This topic is discussed in Solution #4 here - https://www.lunametrics.com/blog/2016/07/20/unsampled-google-analytics-data-in-tableau/
I hope that helps.