Yes, Tableau can connect to a CSV file.
Does the entire file truly change every 5 minutes, or could you load in incremental changes only? i.e. new records. If so, an approach like this would save you a lot of time - Quick Start: Incremental Extract Updates
Your biggest constraint would be how long it takes you to create an extract of 10 million records. Have you tried downloading Tableau and connecting to a file that large and creating an extract? You can download a trial copy for free to try it out.