Publishing data sources to Tableau Server & Tableau Online: Tableau Tutorial for Beginners:
If you want to share a data source properly, you need to publish it to the server, and there are a few quirks worth knowing before you do.
- Publishing a data source centralises database access, governance and driver management, lets teams collaborate on a shared source and adds mobility through web authoring.
- A published live connection saves connection details (a TDS) to the server, so every interaction calls the database, while an extract is a snapshot that needs a refresh schedule set up on the server.
- Authentication can either prompt each user for credentials or embed a password, and only extracts can be set to allow refreshes (which is where the server refresh schedule comes from).
- Overwriting a published data source wipes any field-level metadata or descriptions you previously added on the server, so re-apply them after each publish.
- You can switch a workbook between a published source and a local copy using 'create local copy' and 'replace data source', but taking extracts of extracts quickly makes it hard to track what you're actually connected to.
- Why publish a data source1:56
- Preparing the live connection4:14
- Publishing to Tableau Online5:48
- Permissions and authentication8:36
- Live vs published behaviour15:58
- Republishing with a user prompt16:51
- Switching back to a local copy19:23
- Publishing an extract21:12
- Certifying a data source24:36
- Extracts of published sources and pitfalls26:52
0:00Hey, it's Tim here. In today's video, I'm
0:01going to be showing you how to publish a
0:03data source
0:04to Tableau Server. This is part two of a
0:06beginner's tutorial for Tableau Server and
0:09Tableau Online.
0:10And in last week's video, we got a comment
0:12on the video essentially asking to do a
0:15video on
0:15publishing data sources up to Tableau
0:17Server and Tableau Online. Now there's also
0:20a small quirk
0:20here today, I'm only going to cover how to
0:22do this from Tableau Desktop. Tableau Prep
0:25can also
0:25publish data sources up to Tableau Server
0:27or Tableau Online. So I'm not going to
0:30cover that
0:30in this video, this will be another video
0:32that I'll do it some other time. But today,
0:33we're just
0:34going to be using Tableau Desktop. You can
0:36also do this through web authoring, but the
0:38interface is
0:39slightly different. So again, I'll maybe
0:41make a separate video for that. But let's
0:42get stuck in.
0:43Okay, so in front of me, I have Tableau
0:45Desktop open. And I've actually gone ahead
0:48and done some
0:49sort of setup. Now I'm not able to share
0:51the data sources that I'm using today with
0:53you. So this is
0:54going to be one of those videos where you
0:55just watch along and you walk through the
0:57mechanics
0:58as I show them to you on screen. Now what I
1:00've done is I've already set up this test
1:02workbook,
1:02I'm actually in the workbook already. And
1:04if I click on the Tableau logo here on the
1:06top,
1:06you can see that I'm able to go right
1:08through into the view and I'm able to start
1:10using
1:10the workbook. Now this workbook is actually
1:13connected to two data sources, you can see
1:15them
1:15here on the top left, I've got something
1:17called 5tran audit, which is like an audit
1:19table
1:20that comes from a system I use to push
1:22YouTube and Google Analytics data into Snow
1:25flake.
1:25That is essentially an audit table that
1:27tells me how many rows it's written to the
1:29database.
1:30The next data source is a Google Analytics
1:32data source. It's not actually very good.
1:34But in essence, it allows me to look at the
1:36data coming from Google Analytics. Again,
1:38this has been
1:39generated by 5tran, and is being pushed
1:41into Snowflake. And I'm connected to it.
1:43But you'll
1:44notice that it's actually set up as an
1:46extract. So they're both connected to the
1:48same database.
1:49But one is set up as an extract and one is
1:51set up as a live connection. Essentially, I
1:53want to show
1:54you the difference between publishing both.
1:55Okay, so the first question is probably to
1:57cover why
1:58would you publish a data source up to Table
2:00au server or Tableau online? Well, the first
2:02one is
2:03you might want to collaborate, you might
2:04want to work with other people on the same
2:06data source.
2:06And so what you want to do is share your
2:08data source with other people and have it
2:10shared in
2:11a centralized place where you get the
2:13governance and structure that Tableau
2:14server offers,
2:15and makes it available to a group of people
2:17or maybe just another individual. Whatever
2:19you're
2:20trying to do, if you want to share it, you
2:21're going to need to publish a data source
2:23to make
2:23that easy to work with. Now, the other
2:25thing you might want to do is centralized
2:27database access
2:28and driver management. One of the quirks
2:30with connecting to data sources, if you
2:32have to send
2:32people details of how to connect to a data
2:35source, essentially, that can get a bit
2:37tedious. And you
2:38can have people sort of typing in usernames
2:40and passwords all over the place. One of
2:42the benefits
2:43of publishing up a data source is you can
2:45actually almost delegate access to a
2:47database through a
2:48centralized embedded password. And by that
2:50other people can connect to it and access
2:52the data they
2:52need. Or you might decide to publish up a
2:55data set that is an extract, which we've
2:57got here. And what
2:58you want to do is set that data source to
3:01refresh on a schedule, and then let people
3:03connect to that
3:04data source as separate from that database
3:06connection. So essentially using Tableau
3:08server
3:08to schedule the update of that data source.
3:11And then you're also using Tableau server
3:13to give you
3:13some structure and governance around the
3:15data source. Okay, the very last one, which
3:17is not as
3:17commonly sort of reference is the fact that
3:19you might want to, you know, be mobile.
3:21Once you
3:22publish up a data source to Tableau server
3:24or Tableau online, you can access it from
3:26any machine,
3:27including web edit. So in case you're stuck
3:29, and you only got an iPad, you can even
3:31pull up a
3:32browser and start working with a data
3:33source if the data source is published. If
3:36it's not, then
3:36you're going to need to get hold of Tableau
3:38desktop or some tool that can publish the
3:40data source.
3:41And with web edit, you can also create data
3:43sources now, which is a great sort of
3:44addition.
3:45But nonetheless, it just adds a little bit
3:47of mobility. So those are the three key
3:48reasons why
3:49you might want to publish up a data source.
3:51The main reason by far is the fact that
3:53once you
3:54standardize a bunch of settings into the
3:55data source, you're actually able to
3:57publish this up,
3:58and then people are able to take advantage
4:00of that. In 2021.3, there's also some
4:02benefits of
4:03being able to add things like descriptions
4:05to these published data sources. So I'll go
4:08into
4:08the very basic setup today. And in another
4:10video, I'll cover those benefits for the
4:12data catalog as
4:13well. So here you can see I've got two data
4:15sources, the first one I'm going to publish
4:17up
4:17is actually going to be my live connection,
4:19you can see that I've got it here in my
4:20workbook. And
4:21if I actually go to this visualization, you
4:23can see that it's actually connected to
4:25this data set.
4:27Now, one thing you tend to do when you're
4:28publishing up from Tableau desktop is you
4:31tend
4:31to validate what data is actually in there.
4:33And you might need to do some prep or some
4:35cleanup
4:35to the data source. So what I might decide
4:38to do is I might decide to rename this
4:39field, it's got
4:40an underscore. So it's sort of breaking the
4:42naming structure that I'm sort of used to.
4:44So I'll just
4:45go and replace the underscore and five and
4:47set that up to to that. Now everything else
4:50is not
4:51really much to change here, all the data
4:52structure and everything is pretty good. If
4:55I go and grab
4:57this update ID, let's just see if it's a if
4:59it's a text, it's actually quite a
5:01complicated idea.
5:02Essentially, this is the ID for the
5:04specific update tasks that's running. So
5:07there's nothing
5:08we can do to that. And what we might decide
5:10to do is split this up. For whatever reason
5:12, I might
5:13decide to run a data operation on this, it
5:15doesn't necessarily make sense. But I'm
5:17just going to run
5:17the split function on this. And we're going
5:20to ask it to use a hyphen. And we're going
5:22to actually
5:23ask it to just split out everything. So
5:25click OK. And you will see it automatically
5:27figures out that
5:28there's five splits there. And it does that
5:30for me. And now I have the individual parts
5:32of the
5:33split. And I can just go and bring out, let
5:35's say part three of the split. And you'll
5:36see that it
5:37has that structure there. So now that that
5:39's done, I've essentially created some
5:42calculation,
5:42I've done a little bit of data prep to this
5:45. And what I want to do is now publish this
5:47up as is,
5:48okay, so let's go ahead and right click on
5:50this live connection. And you'll see that I
5:53have the
5:53option to publish this up to server. Now
5:55there's a couple of things to bear in mind
5:57here. This is
5:57a live connection. So you might be asking,
5:59well, what is it actually publishing up to
6:01Tableau
6:02server? Well, if you've watched my video on
6:04Tableau file types, you'll know that you
6:06can
6:06actually save this as a saved data source.
6:08Essentially, this becomes a TDS. A TDS is
6:11essentially just a file that contains the
6:14connection details for a database
6:16essentially
6:16tells you what the database is, the
6:19username and the password, and any sort of
6:21metadata that
6:21you've created about the data source. And
6:24it saves it in a specific place on your
6:26computer.
6:27When you publish this up to Tableau server
6:29or Tableau online, you're essentially
6:30pushing this
6:31up to the Tableau server. And then it's
6:33using that information to create the
6:35connection in
6:36Tableau server on Tableau online when
6:38someone connects to it. So let's go ahead
6:39and select this
6:40publish to server option. And you'll see
6:42that I get an option here for Tableau
6:44online. If you use
6:45Tableau server, you'd actually go in and
6:46just type your connection information
6:48straight away. Now I'm
6:49going to connect to Tableau online. And in
6:51this particular setup, it's actually going
6:52to ask me
6:53to log into my Tableau server. So I'll go
6:55ahead and type my password and hit sign in.
7:02And once
7:03I've signed in, it will actually load a
7:05window and it will ask me where I want to
7:07publish this
7:08particular data source. Just give it a
7:10second, you'll see the window pop up here
7:12it is on the
7:13screen. So now I have this little pop up, I
7:15can move it around and notice that it just
7:17says
7:17publish data source to Tableau online. And
7:20it's gone and got some presets for this
7:22data source.
7:23And it's getting it from the default folder
7:26here in my Tableau online setup. Now
7:28actually, what I
7:29did before this video is I created a
7:30project on Tableau online called publish
7:32data sources. And
7:33that's where I'm actually going to put this
7:35data source, I'm going to put all of them
7:37there. And
7:38you can see that it's given the name that I
7:40selected up here in the connection. So you
7:43can
7:43see the five Tran audit is over here on the
7:45top left. But nonetheless, everything is
7:47pretty much
7:48good to go. And what I can now do is I can
7:50actually go down through the settings, I'll
7:52go through this
7:53very slowly. The first one is the project,
7:55the name of the connection and the
7:57description, I can give
7:58this description and it helps to give a
8:00description for metadata purposes. So I'll
8:02call this my five
8:05Tran audit table. Okay, and now that I've
8:09done that, I can go ahead and add tags. Now
8:12tags are
8:13sort of an interesting thing. And you can
8:15place them across all different types of
8:16content and
8:17they sort of persist, it's a nice way of
8:19sort of grouping content without having to
8:20put them
8:21in folders. And but I'm not going to, I'll
8:23add one here so you can see what it means.
8:26So I'll call
8:26this data source, maybe data source. So I
8:28can go and find all my data sources very
8:30easily. So you
8:31can see that that data source tag is added.
8:34Now the next thing is the permissions. Now,
8:36at the moment,
8:37it's set to the same as the project. So
8:39when I publish this up, it's going to
8:40inherit the
8:41permissions that are currently in the
8:43project. That's normally a good thing to do
8:45. If I want to
8:46edit those, though, I can go in here and
8:48edit them myself by clicking Add. And I get
8:50an interface that
8:51allows me to add the permissions that have
8:53been set up. If you haven't done so already
8:55, check out
8:56the previous video that I just recorded on
8:58permissions to get more context.
9:00Essentially,
9:01this interface allows you to control those
9:03settings from Tableau desktop. Now the
9:06thing here is if
9:07you've locked the project permissions to
9:09the project, this is not going to really
9:11work, it will
9:11test how the hey, look, the project
9:13permissions have been set to this. And if
9:15you were to set the
9:16permissions at this level, and maybe move
9:18it into that folder or something, it would
9:20automatically
9:20inherit those project permissions. So don't
9:23worry too much about this. But you can see
9:24here that
9:25I've got different groups, I'm going to
9:26leave everything as default. But by all
9:28means, if you
9:28want to play around with these permissions,
9:31and be very careful how you do this,
9:32because sometimes
9:33you can make it very difficult because this
9:36interface is not as good as doing it on
9:38Tableau
9:38server or Tableau online, as I showed in my
9:40previous video. But you've also got some
9:42pre
9:43presets here if you want to start from a
9:44from a decent sort of foundation. So if you
9:47want to give,
9:48for example, the publish template for this
9:50particular setting, you'll see that it
9:51gives
9:51people the ability to view connect,
9:53download and overwrite this data source.
9:56And then it doesn't
9:58have any settings for moving, deleting and
10:00setting the permissions. And it does allow
10:02people to save
10:03as okay. And it gives us to all users, you
10:05can see that the group here all users are
10:07selected.
10:07And that's why this interface is sort of
10:09weird, because it's not obvious that what
10:11you select here
10:12is actually what's controlling the
10:13permissions. As you see, as I click through
10:15these, you can see the
10:16permissions do slightly change. So be super
10:18careful how you set this up. But I'm
10:20actually going to hit
10:21Cancel, and go back to this simple
10:23interface and just carry on. Now the
10:25authentication here is
10:27selected. And it's saying prompt the user.
10:29And what this will mean is that when
10:31someone goes to
10:31try and use this connection, it's actually
10:33going to ask them for a username and
10:35password. So it's
10:36going to send up the details of the
10:37database, it's going to extract the
10:39username and the password.
10:41If I click Edit, I can actually see that I
10:43get the information about the database. So
10:45I get that I
10:46get the name, I get the connection, the
10:48authentication, what I could do is I could
10:51embed the password. So in this particular
10:53instance, I'd be embedding my individual
10:55password in this
10:56use case, this is okay, because I'm on my
10:58own tablet online instance, I'm going to be
11:00the only
11:00one using it. And I can also do a few
11:02things and set this up. But essentially,
11:05for now, we're going
11:06to leave this as is, I don't get the option
11:08to extract because of course, this is a
11:10live
11:10connection. So it's not going to have that
11:12setting there. Now, if I go down here, you
11:14see that I have
11:14more options. And it also asked me if I
11:17want to update the workbook to use the
11:18publish data source.
11:20Now, if you take this, what will happen is
11:22as soon as you hit publish, it will
11:24essentially change the
11:25connection that we've got set up here on
11:28the top left five tran audit and replace it
11:30with the
11:31publish data source. Okay, so I won't do
11:33that for this first attempt. So just just
11:35to show you what
11:35that looks like, then I'll duplicate this
11:37connection and publish the second one. And
11:39you can see what's
11:40going on. So let me untick that box. And
11:42now you're pretty much ready to go. At the
11:44bottom, you'll see
11:45this option here, tablet online will
11:47temporarily access the credentials provided
11:50to confirm it can
11:51maintain a live data connection. So it's
11:53basically telling you, hey, I'm going to
11:55make a call to the
11:55database just to make sure that I can keep
11:57this connection up wherever you're going to
11:59publish me.
12:00And essentially, when I hit publish, it
12:02will kick off the process.
12:04And in this particular case, it should open
12:08up a browser tab, it has in fact, open up a
12:11browser tab
12:12on my other machine, I'll bring it over
12:14here. And here's the window. So you can see
12:17that it gives us
12:18a successful completion. And you can see
12:19that it's done, you can adjust the
12:21permissions and other
12:22information for this data source. Now that
12:25it's done, you get the standard interface
12:27and setup
12:28that you have for data sources in Tableau
12:31online or Tableau server. And not only that
12:33, you can see
12:34that I have all the fields that I created.
12:36And if I hover over them, you can actually
12:37see the formula
12:38that was used to create them. And also, if
12:41I go to this five trans synced folder, you
12:43'll see that
12:44everything is sort of nicely set up, it's
12:46persisted the names that I had. And we're
12:48pretty much good
12:49to go. Now I can obviously explore some of
12:51this other detail, you can see here that it
12:53's a live
12:54connection, it's got the name of the
12:55database. And if I hit these three dots, I
12:57can go into edit
12:58connection. And you'll see that actually
13:00gives me the ability to double check and
13:02make sure the
13:02connection is working correctly. I'll just
13:04show you how that looks like very, very
13:06briefly, I'll
13:07just grab my password here off screen, and
13:09go in and paste that and hit test
13:11connection. And you'll
13:12see that I'm actually able to test the
13:14connection live on the server and make sure
13:16everything is
13:17working correctly. Now that I've done that,
13:19I can obviously click Save, and it will
13:21just persist
13:22that. So this is a great place to come if
13:24the database credentials change, and you
13:26realize that
13:26something's not working. But for now, we're
13:29going to leave that as is. The other thing
13:31I can do see
13:32any connected workbooks, the connected work
13:34books only can exist once you actually start
13:36building
13:36something with it. And then if I go to the
13:39next tab, you can see that this lineage tab
13:41already
13:42has some information about the lineage of
13:44this data source. It essentially just shows
13:46me on the
13:47right hand side, the database that it came
13:49from the tables that it's using. So you can
13:51see this
13:52five tran audit table is what it's using
13:53from that database. And then it's obviously
13:56got this specific
13:57data source. And everything that's sort of
13:59in here has been described very nicely. And
14:02what we can do
14:03is if you click on each of these actually
14:05gives you a more detailed pop up window
14:07where you can
14:07start to change how things work. Now what I
14:10can do is I can edit the description here.
14:12So I can say,
14:13this field was created in desktop, okay,
14:17and hit save. And now that that's done,
14:21everything is nicely saved, and it's
14:23persisted. And now when I go and look at
14:25this description,
14:26you'll see that it's available there. If I
14:28go back and close this, go back to ask data
14:30. And then I
14:32just start looking at the fields. If I
14:34hover over this particular view, when it
14:36loads up, this is
14:37actually the default view that it loads up
14:40on. When I go to this update split, there,
14:42you'll see the
14:43description is now persisted. This field
14:45was created in desktop, and that's now
14:47named. Now,
14:48in order to use our stator that requires
14:50you to create a lens. But nonetheless, we
14:52're pretty much
14:53good to go. This is everything we need to
14:55do for this data source. There's nothing to
14:56change in
14:57terms of extracts, because it's a live
14:59connection. If I want to use this, I can
15:01just go ahead,
15:02create a new workbook. And I'm doing this
15:04in web edit just to show you this
15:06capability and
15:07boom, our data sources ready to go. It has
15:09this nice tableau icon. And I can of course
15:12, just start
15:12using this. So I can go ahead and get the
15:15number of rows. And we can also go and get
15:17the start date.
15:19And we can just start visualizing this
15:21exactly as we did before. At the moment is
15:23aggregated to the
15:24year, let's get that down to the day. And
15:26you can see a nice little line chart. And
15:27of course, what
15:28I can do is I can bring the start date into
15:31the filters. And I'm going to filter out a
15:33specific
15:34set of months because the first month is
15:36always weird because it does an initial
15:37sync in that
15:38month. And what I'll do is I'll exclude
15:40that month, and then we'll just have a
15:41normal sort
15:42of set of data. So now you can see exact
15:44same information that I had in my chart.
15:47And if I set
15:48it to bar chart, and I swap back to tableau
15:50, you'll see that it's basically the same
15:52chart
15:53that I've connected. Now the difference is
15:55I've used I've done it using the published
15:57data source.
15:58The thing to be aware of is of course, if
16:00it's a live connection, as this is, every
16:02time you're
16:02making a change, it's making a call to the
16:04database. So because it's a live published
16:07connection, the user doesn't necessarily
16:09know that that it's an extract or not. So
16:12basically,
16:12they can't differentiate what kind of
16:14connection is sitting in the background.
16:16All they know is
16:16that they have a connection to the database
16:18. If they were to go back to this particular
16:21page,
16:21and they had access to see this information
16:23, they would be able to see that there's
16:25actually a live
16:25connection. So everything a user does is
16:27actually making a call back to the database
16:29. And in terms
16:30of usage, you could probably use that to
16:32analyze how a data source is being used,
16:34and how different
16:35teams are using it. Now, if I was to
16:37publish that data source with a prompt for
16:39the user,
16:40it would actually ask that user for a
16:41username and login, they would log in and
16:43it would use their
16:44credentials, so it could use my snowflake
16:47credentials manually every time I go and
16:49connect
16:49to the data. Let's go back into tableau.
16:51And what we're going to do now is publish
16:53it again, we're
16:54going to overwrite the existing one. And I
16:56'm going to go to publish to server. And
16:58this time, we're
16:58going to go through a couple of different
17:00mechanics. Okay, so you can see here that
17:02it now tells me
17:03that look, you've already got a workbook
17:05published under this name. And the data
17:07source name is
17:08already in use. So we're going to keep that
17:09we're going to because we're just going to
17:11overwrite
17:11this, we don't really care too much about
17:13this, I'm going to add another tag. And I
17:15'll say that this
17:16is a user prompt. It's a really long tag,
17:20you probably shouldn't add tags that long.
17:24And what I'll do is I'll go back in here to
17:26authentication. And I'll ask it to prompt
17:28the user
17:29and go back out. And you can see that that
17:31changes to prompt the user. And then the
17:34last thing I'll
17:34do this time is I'll tick this box to
17:36update the workbook to use the published
17:38data source. So what
17:39this will do is as soon as I've published,
17:42it will change the connection back to the
17:45example that we
17:46saw on tableau online. So let's just do
17:48this now. And it will see that you'll get
17:50this notification
17:51saying, hey, a database is already in use,
17:54hit yes. And it will take a bit of time.
17:58And you'll see
18:00here on the very top left hand side, just
18:02watch the space over here on the left, give
18:04it a second,
18:05it's thinking about it. And there you go,
18:08it's actually created a new data source for
18:11me. And
18:12then it's opened the tab to show me the
18:13published data source. Okay, so now you can
18:15see that
18:16everything is good, everything is published
18:18. If I try and use this data source, it
18:20actually asked me
18:21to log in. Okay, so this is the prompt that
18:23it was actually looking for before. So what
18:25I'll do is
18:25I'll go ahead and log into this, which is
18:27here, you can just see that it's working.
18:28And we'll make
18:32sure that it works. And I can actually ask
18:35it to remember the password for me
18:37personally, so hit
18:38sign in. And now you can see we've got the
18:42same data source ready to go again, if I go
18:46back to
18:47the lineage, you'll see nothing has changed
18:50here. The five trans synced field is still
18:53there. And
18:54this update field, remember earlier on, we
18:56added some metadata to it, if I click on it
18:58, you'll see
18:58that that metadata has unfortunately
19:00disappeared, because we overwrote it when
19:02we published. So
19:03that metadata is no longer there. Okay. Now
19:06what I can do is I can go ahead and write a
19:09new
19:09description, right new description, hit
19:12save. And now this description is saved to
19:16the data source.
19:17If I go back here, you can see the
19:18descriptions right there. But also when I
19:20click on it,
19:21you can see that it's also there. Now
19:22before we move on, I just want to show you
19:24something,
19:25if we go back to our workbook, and we
19:27decide that we actually want to use the
19:29original connection,
19:30we still can just because it's switched
19:32them over doesn't mean we can't switch it
19:34back.
19:34So if we right click on this, you can see
19:36that it has a bunch of different things,
19:38okay. And you can
19:39see here, there's an option to create a
19:41local copy. What that essentially does is
19:43it looks
19:43at the connection and creates a local
19:45version on your machine, rather than using
19:47the published data
19:48source. If I create a local copy, you'll
19:50see that it asks me where to save it. And
19:52notice,
19:53it has this option for TDS or TDS x, the
19:55very beginning of this video, I talked
19:57about Tableau
19:58file types, check out my video on that if
20:00you haven't seen that yet. And of course,
20:03what you
20:03can now do is bring that file down. So I'll
20:05save it to my desktop. And what it does is
20:08it creates
20:08that local connection. And if we give it a
20:11second, you'll see that it creates a copy
20:14that is an exact
20:15duplicate of the original one. And then
20:17what you can do is if you want to switch
20:18back to the live
20:19connection locally on your machine rather
20:21than the published data source, is you can
20:23right click on
20:24this first one, and select replace data
20:27source and replace it with your copy. And
20:30you'll see that
20:31Tableau will do a switcheroo on the data
20:33sources and it will switch the tick from
20:35the top one to
20:36the bottom one. And at that point, you've
20:38switched over. So essentially, you can
20:40publish something up.
20:41And if you're not happy content, because
20:43you want to work on something locally,
20:44switch it back down and switch between the
20:46two data sources. When you're done testing,
20:49as long
20:49as your two data sources are staying in
20:51tune, you can then sort of make sure
20:53everything stays in
20:54track. Now, it's, I always say it's
20:56actually better to create a new workbook to
20:59publish up data
21:00sources and keep that workbook saved
21:02somewhere than it is to try and manage
21:04these two workbooks
21:06at these two data sources in the same work
21:07book, because you just essentially forget
21:09what you're
21:09doing. And it becomes a mess. Okay. Now for
21:12the next one, we're going to move a little
21:13bit faster,
21:14we're going to publish up an extract and
21:16see what's different about that. So let's
21:18go ahead
21:18and right click on this. Now, if I actually
21:20go back to the blog pages, this is an old
21:22Google
21:22Analytics data dump. So it's not 100%
21:24accurate, but it does have some sort of
21:26recent data,
21:27because it's sort of a merge of two big
21:29data sets. So if I right click on this, and
21:31we go to publish
21:32to server, you'll see that this time, it's
21:34an extract, we are going to get a few more
21:36options.
21:36The first thing here is you can see publish
21:39data sources is the folder that it's picked
21:41. So it's
21:42remembered the previous setting that we had
21:44before, it's taken the name from the data
21:46source again,
21:47which we expect. And we can say, this is an
21:50extract. Okay. Now, the thing about this is
21:54,
21:54as we go down this list, you can obviously
21:56do things like add more information, and
21:58you've got
21:59some permissions. And again, picks it up
22:01from the folder, we don't need to do
22:02anything there.
22:03Now the authentication, it says here
22:05refresh not abled. And the reason it's
22:07saying this is because
22:08this is an extract, an extract is typically
22:10going to need a refresh, because it's just
22:12a snapshot
22:13of the data, it's not going to update
22:15itself unless it's prompted to. So if I
22:17click on Edit,
22:18you'll see that I get a the same
22:19permissions window that I got before the
22:22same connection
22:22window that I got before. And this time, I
22:25have the option instead of embedding the
22:28password,
22:28I have the ability to allow a refresh. Okay
22:31. And now that's done, I'm going to leave
22:32that there.
22:34And once we've done that, you will see this
22:35option about Tableau bridge, it says Table
22:37au
22:37bridge required for on premise data,
22:39essentially, it's basically saying to me
22:41that, hey, if I can't
22:42connect to this data, because it's local to
22:45your business or in your organization, I'm
22:47going to
22:47need Tableau bridge in order to do this.
22:49Now I've actually done a separate video on
22:50how to set up
22:51Tableau bridge, check that out. But
22:53nonetheless, it's basically telling you
22:55warning you that this
22:57is going to need this feature in the future
22:59. Now, we've also got this option to do the
23:01switcheroo.
23:01And we've got the same message here at the
23:03bottom to tell you that hey, it's going to
23:05do a temporary
23:06connection test because it can see that the
23:09extract itself is using a live connection.
23:12So now
23:12let's go ahead and hit publish. And we're
23:14going to update this workbook to use the
23:15published data
23:16source again. So let's go hit publish. And
23:18now let's see what happens. It's typically
23:20going to
23:20open on the other screen, even though I've
23:22got the browser here. Let's wait and see
23:23what happens.
23:26You'll see that it pops up this second data
23:28source, it does a switcheroo. And then it
23:31eventually
23:31deletes this, if you just wait a while
23:33before we switch over, you'll see that it
23:35did it just as we
23:36switched over. So it deleted it. And now we
23:38have the three settings again. And we only
23:40have the
23:40local copy that we made before if I go back
23:42to this tab, you'll see that this is now
23:44published.
23:45And here at the top, you can see that it
23:47says extract. Now I can actually switch it
23:49to a live
23:49connection right here from Tableau server,
23:52rather than having to do on on desktop. But
23:54nonetheless,
23:55again, it's got the same settings and tabs.
23:57So connections, we've got a new one now for
24:00extract
24:00refreshes. And the reason this is here is
24:02because what we did on desktop is we
24:04allowed extract
24:05refreshes, here is where we set them up. So
24:08I can go in here, and I can set this up.
24:10And I can set
24:11this to maybe say hourly refresh, I can hit
24:14Create every Thursday, that's fine, hit
24:16Create. And now
24:18you'll see that refresh refresh schedule,
24:20that's the tongue twister set up there. So
24:23it's ready to
24:24go. Now, if I go back to lineage, you get
24:26the same setup. So you get the information
24:28about the fields,
24:29the database, it came from the tables, and
24:32all the other information you might want to
24:34use. Okay,
24:35so that's pretty much it in terms of
24:37publishing data sources, and I sort of
24:39tried to go through
24:40it as thorough as I possibly can. There is
24:43one nice thing. If I go back to my
24:45published data
24:46sources folder, you'll see that I have the
24:48two data sources here and one says extract
24:50one says live.
24:51With live connections, you do get some
24:54enhanced ability new in 2021.3. Check out
24:57my video on this
24:57particular feature. But if I click on this
25:00little I, you'll see that I have this
25:01option that gives
25:02me a bit more information about this data
25:04source. Now, if you've never done this
25:06before, you've
25:06probably not seen all the items here. So
25:08you have a bit of information about the
25:10data source that I
25:11recreated when I published it up, the
25:13location, the owner and the data source
25:15tags. These were
25:16added when I was creating this data source,
25:18you've got the version history, and you've
25:20got a few
25:21more bits of information that you can use.
25:23Now you can also give it a certification.
25:25Essentially,
25:26if I click edit certification status, you
25:28can give this take and say this data is
25:30certified.
25:31And you can say, Tim has approved this data
25:34source. Okay. So now that we've done that,
25:38hit save.
25:40And not only will this data source now be
25:43certified, but you'll get a nice little
25:45badge
25:46on the data source to let you know that it
25:48's got this special status. Okay. Now the
25:51other thing
25:51you can do when you hit this three dots,
25:53you do get some other setups and control
25:56about this. So
25:56you're able to go in and control this a
25:58little bit more and play around with it.
26:00And essentially get
26:01this absolutely set up the correct way you
26:03want, you can edit the certification as
26:05well, you can
26:06remove it, you can preview how it looks.
26:08And you can even sort of play around with
26:10some formatting
26:11here. So you can see you can add links,
26:13bold italics, images, all of this can be
26:16added to
26:16make this whole certification experience a
26:18little bit nicer. Okay. If I hit cancelled,
26:21and I click on this, you'll see that that
26:23certification is also loaded there. So this
26:25is a nice thing to do. If you've got data
26:26sources that have got a lot of energy and
26:28time put into
26:29them, and they're published data sources,
26:31this is a great way of telling people, hey,
26:33this data
26:33source should be used. This is a trusted
26:35data source, and you should be trying to
26:37use this as
26:38much as you can. Now, that's pretty much it
26:40. This is a live connection. So this is all
26:42sort of set
26:43up. So that's pretty much it, I just wanted
26:45to show you that basic feature. But go back
26:47to my
26:47published data source. Now you can see that
26:50they're here. Now, we're not done yet,
26:52because
26:53things can get even more complex. Sometimes
26:55just sometimes you're working in desktop,
26:58and you're
26:58connected to a published data source. But
27:00you want to connect, you want to protect
27:02yourself against
27:03the odd chance that for example, Tableau
27:05online goes down in your particular region.
27:08Let's say
27:08I'm in EU, and the AWS instance in EU goes
27:11down. And suddenly, if that goes down, I
27:15actually lose
27:15my access to this data source. Every time I
27:17'm doing something here in Tableau, this
27:19connection
27:20here is actually calling out to the Tableau
27:21online instance. So it's working over the
27:23internet. Now,
27:24if you're working in a very bad network
27:26environment, you might actually end up
27:28having a
27:28poor experience. So you can kind of do
27:30something a little bit crazy, you can
27:32actually take an extract
27:33of your published data source, whether it's
27:36a live connection or not. So essentially,
27:39what we can do
27:39here is we can right click on this, go here
27:41, take an extract of our published data
27:43source. And it's
27:44just going to go ahead and create another
27:46extract of our published data source, which
27:49in itself was
27:50an extract of a live connection. So a
27:52little bit of a weird heritage there. But
27:55it actually does
27:56mean that you're able to keep working
27:58should the internet go down, you're able to
28:01just send this
28:01across the workbook. And then when you take
28:04the extract off, it's actually working off
28:06the live
28:06connection. So essentially, what you're
28:08doing is you're pulling the data down to
28:09your computer from
28:10Tableau online, and working with it
28:12absolutely fine. But it can be a little bit
28:14of a tongue
28:14twister, because essentially, you can kind
28:16of lose track of where exactly you are. So
28:18if I right click
28:19on this, and I go to create a local copy,
28:21we think about this, you'll see that it
28:24gets a TDS and TDSX
28:25let's hit save. And when we go to create a
28:28local copy, you'll see that we get the
28:30original extract
28:31that we created. So you're thinking, well,
28:33what is that extract? So you right click on
28:35that. And
28:36you'll say don't use the extract. And you
28:37go to it. And you'll think, Oh, great. Now
28:39I'm going to
28:40get the database connection. And you'll see
28:42it gets the database connection. So when
28:44you basically do
28:45that process, you can end up being in this
28:48sort of maze of not really being sure what
28:51you're connected
28:51to, because you go from a published data
28:54source to an extract, create a local copy,
28:57and you're back
28:57to the original live connection. And you
29:00missed a step somewhere there, right. So
29:02just be super
29:03careful, you don't get your knickers in a
29:05twist in this particular instance, be
29:07always sure about
29:08what you're connecting to, if you right
29:09click on any data source, you can of course
29:11, go to the
29:12properties and get a bit more information
29:14about what exactly you're connecting to and
29:15make sure
29:16it's correct. And just make sure you're not
29:18sort of getting yourself into this mess, I
29:20've got myself
29:21into a bit of a twist, because I've taken
29:23an extract of an extract of an extract, and
29:25then I've
29:25just lost my way. So be sure to check that
29:28out. But I think this video is long enough.
29:30Hopefully,
29:31we've done a very decent guide on how to
29:33publish up a data source and how to get
29:35going. And if you've
29:36got any additional questions about this, if
29:38you'd like to know more, if there's
29:39anything I didn't
29:40cover, if there's more you'd like me to
29:42cover, the comments is the best place for
29:44this, I'm actually
29:45going to be reading these and responding to
29:47them pretty much every single week. So be
29:49sure to flood
29:49the comments, let me know what you'd like
29:51to see a video on, especially if it's about
29:53Tableau Server,
29:54and I'll catch you in the next video.
Publishing a data source to Tableau Server or Online centralises database access and governance, lets teams collaborate on one shared source, and adds web-editing mobility — but live and extract connections behave differently once published, and there are a few traps around metadata, authentication and nested extracts worth knowing before you do it.
Tim works in Tableau Desktop with a test workbook connected to two data sources hitting the same Snowflake database — one set up as a live connection, one as an extract — to show how publishing each behaves differently.
- Why publish a data source 1:56
Publishing centralises database access and driver/credential management, lets people collaborate on a shared governed source, and adds mobility since published sources can be used in web authoring from any machine.
- Prep the live connection before publishing 4:14
Before publishing, Tim renames a poorly-named field and splits a compound ID field for clarity, since this is the point you'd typically validate and clean up the data structure.
- Publish to Tableau Online 5:48
Right-click the connection and choose 'Publish to Server'. He explains that this pushes the TDS (connection details plus any metadata) up to the server, then walks through project selection, name, description and tags.
- Permissions and authentication 8:36
Permissions inherit from the project by default and can be edited via presets, though locked project permissions override anything set here. Authentication can either prompt each user for credentials or embed a password — live connections don't get the extract-refresh option.
- Live vs published behaviour 15:58
Once published, users can't tell whether a source is live or extract from the front end — every interaction on a live source calls the database directly, which could be used to gauge usage.
- Republish and switch authentication to prompt 16:51
Republishing over an existing data source overwrites it; changing authentication to 'prompt the user' means each person logs in with their own credentials. Republishing wipes any field descriptions added on the server, so they need re-adding.
- Create local copy and switch back 19:23
'Create local copy' saves a TDS/TDSX version of the published source locally; 'replace data source' then swaps the workbook onto it. Useful for testing locally before switching back to the published version, but risky to juggle for long.
- Publish an extract, set refresh, certify 21:12
Publishing an extract offers 'allow refresh' instead of embedding a password, and a Tableau Bridge warning if the source is behind a firewall; refresh schedules are then set up on the server. He also shows certifying a data source (adding a description/approval badge) and warns that taking an extract of an already-published extract creates a confusing chain that's easy to lose track of.
- Overwriting a published data source on republish wipes any field descriptions or metadata added on the server — you must re-add them each time.
- Only extract connections offer the 'allow refresh' authentication option; live connections can only prompt for credentials or embed a password.
- Taking a local copy of an already-published extract (which was itself built from a live connection) creates a tangled chain — right-click properties to check what you're actually connected to.
- Extracts behind a firewall need Tableau Bridge to refresh, since the server can't reach the database directly over the internet.
Reach for this when you need to share a database connection with a team without distributing credentials, want a governed single source of truth others can build on, or need extracts refreshing on a schedule rather than manually in Desktop.
How this Rollup was made provenance & method ▸
A Rollup is drafted by AI from the video's transcript, then reviewed and edited by Tim. Everything used to produce this one is listed below — the model, the exact prompt, and the source video — so the process is transparent and reproducible.
- Transcription
- On-device — NVIDIA Parakeet v3 for recent videos, OpenAI Whisper large-v3 for earlier ones. The transcript never leaves the machine or gets published.
- Drafting
- Claude Sonnet 5 in the cloud, from that transcript.
- Prompt
- The exact Rollup prompt (v1) ↗ — the full system prompt, unedited.
- Source video
- Watch on YouTube ↗
- Drafted
- 4 July 2026 at 16:06
- Reviewed & edited
- 5 July 2026 at 09:41 · by Tim Ngwena
Model + prompt + video is everything you'd need to recreate a Rollup like this yourself. The one thing we don't share is the transcript.
Rights. The video and its transcript are the property of TN Media Ltd. Unauthorised use or download is prohibited. © TN Media Ltd.