You need to understand that the "refresh" button on tableau does not mean Tableau server will pull data again from backend database, say, RedShift, it simply refreshes the data from Tableau server to your browser.
Tableau server actually consists of an internal database called VizSQL, which performs well for interactive big data analysis. So, when you hit the refresh button on tableau, it refreshes the data from VizSQL to your browser. Since the data in VizSQL has not been updated with the newest data in your backend DB, you still see the old data.
If you want to refresh the data from your backend DB to VizSQL, basically you have 2 choices:
- Setup periodic extract refresh on tableau server, then the data in VizSQL will be synced from your backend DB periodically according to your schedule
- Use tabcmd (a command line tool distributed together with Tableau server) to refresh the extracted data, you can do it on demand