An extract in Tableau is effectively a snapshot of saved data from your data source (opposed to a live connection which is direct to the underlying data). This is usually used to improve performance by speeding up dashboards, but can also allow certain advantages such as the use of some Tableau functionality that isn't available in the original data, or supporting very large data sets.
Within Tableau Server, users with the Creator role have permission to publish data sources onto the server that can further be explored by other users with a lower access level.
Due to the fact that an extract is sort acting as an offline data source, any changes in the original data source won't be automatically reflected in the extract. For this reason, we need to refresh the extract so the changes to the data can also be used in our server. Luckily for us, there are a couple of easy ways that this can be achieved.
Our first option is to connect our extract to a refresh schedule. This way, we can automate the refresh process to happen at an interval of our choosing (this might commonly be daily, weekly, or monthly).
Our second option is to refresh the extract in Tableau Desktop and then manually republish the data source to our server. While this achieves the same result as refreshing as part of a schedule, it's not as ideal if the extract needs to be refreshed with any kind of consistency. Why do manually something that can be done automatically, right?
Now with your updated extract on the Server, you can retain all of the perks of working with an extract, but getting up to date data whenever it's needed!