Tableau Image roles: Working with Images in Tableau | New in Tableau 2022.4
Native images in Tableau are finally here, but there are a few catches you need to know before going ham adding images everywhere.
- To use image roles, click a column's drop-down, select image role then URL, and Tableau will load the images natively into your view
- The feature has a hard limit of 500 images per view, so you must filter your data down before it will render
- Images must be publicly accessible JPEG or PNG files (no GIFs) and ideally under 128KB each in file size
- High image complexity can trigger server-side rendering instead of faster client-side rendering, slowing dashboard performance
- Services like Cloudinary can dynamically resize and transform images via the URL to keep file sizes within Tableau's limits
0:00In Tableau 22.4 you can now natively
0:03support images on a dashboard as you can
0:05see right here on screen
0:06I've got a very simple URL to set up images
0:08online. I've loaded it into Tableau and it
0:11's inside of a table
0:12This is now native in Tableau, but there's
0:15a few catches to find out more. Let's get
0:17stuck in
0:17Before we get stuck in just one quick favor
0:2082% of the people watching this video in
0:23the last year aren't subscribed to the
0:25channel and just to show you some context
0:27Nearly half of my subscribers came from
0:29this last year's worth of content
0:31And if you look at how many views and how
0:33much time people are spending I'm sure it's
0:35creating value somewhere
0:36So if you really appreciate the content or
0:38would like to see even more of it at a
0:40better high quality standard
0:41Hit the sub button and enjoy the rest of
0:43the video. Okay, so to show you this
0:45feature
0:45I'm actually going to use web edit and
0:47Tableau cloud
0:48I'll go ahead and create a new workbook by
0:49clicking on the new option that brings up
0:51this interface
0:52I can go ahead select my file from my
0:55computer
0:56I've got a sample file there we can just
0:58hit enter and that will go ahead and upload
1:00that file to Tableau cloud and now
1:02We are connected one of the most
1:03frustrating things about web edit is it's
1:05just sometimes harder to do really simple
1:07things
1:08So I I like to preview my data set before I
1:10get stuck in it's actually really hard to
1:12do that here
1:12There's no there's sort of no button here.
1:14If you click on this drop down you don't
1:16get any sort of way of previewing it
1:17So here's a little trick go again the count
1:20of records and put it on rows
1:21You'll get a single bar chart click on that
1:24bar chart
1:24You'll get this little table icon you can
1:26go ahead and select that you'll see the
1:28preview for the count of rows
1:29I've got a thousand records
1:30But you can then go to the full data set
1:32here and that shows you the underlying data
1:34behind the number of records and so
1:36You get a preview of the data set so here
1:38you can see I've got an avatar URL a couple
1:41of profile bits of information
1:42Some of it lowercase some of it uppercase
1:45I'm actually going to show you how to
1:46produce that when we look at the capability
1:48called the proper function in another video
1:51But the column I'm most interested here is
1:53the avatar URL you can see here that it's
1:55actually being generated
1:56From a service and that service can
1:58dynamically change the size of the image
2:00based on what you give it
2:03So it's got a parameter and I've actually
2:05shown in another video a better service
2:07called cloudinary
2:08Which does this to another level even does
2:10image transformations hold that thought for
2:13a second. I'll come back to it
2:14So as the end of the video, so this is the
2:16column we're going to be working with and
2:17to be brutally honest
2:18This image role capability is very simple.
2:21I've already found a few catches though
2:22If I just go ahead and remove this you can
2:24see that this avatar URL is the column
2:27I want to use for the image role
2:29So I'll go ahead and click the drop-down go
2:31down to a new option here that says image
2:33role and you can select URL
2:35Now it's really interesting that they've
2:37made that a separate sort of menu item
2:39because I keep trying to think like
2:40What other types of information could they
2:43add in here?
2:44One thought I had is that you could specify
2:46an image role and add a different type of
2:48encoding into that
2:50So there is a method called base 64
2:52encoding which allows you to store images
2:54as text
2:55So that could be another way of defining an
2:58image role through text
2:59Which would then allow databases to store
3:01images without actually having to hold the
3:02JPEG files
3:03It's quite computer intensive
3:05So maybe that will come in the future
3:07But nonetheless as soon as we've done that
3:09you'll see that we have the avatar URL and
3:11it's now got an icon
3:13It's the first time I've ever seen an image
3:14icon in tableau in the data pane
3:17So that's really good to see now that we've
3:19done that it's super easy
3:20But here's what I discovered as soon as you
3:22drag it in. That's the first thing everyone
3:24will do
3:24Unfortunately get this rather not nice
3:26experience because this feature doesn't
3:28handle a certain number of images in this
3:31case
3:32It's saying filters a fewer than 500 images
3:34for this to work because I've got a
3:35thousand. I'm way over that limit
3:37So what I'll do is I'll just select the
3:39first few
3:41I'll keep those records just by selecting
3:43those records and selecting this options
3:45once I click on those rows and you can see
3:47the image
3:47Role capability is now working as expected
3:49now
3:50These images can fit up to 300 by 300
3:52Nicely and what we can do to kind of finish
3:55this
3:55visualization off is we can bring in the
3:58first name put it on text and now we have
4:00the avatar and name of
4:01Each of our user profile. So now that's
4:04natively supported in tableau
4:06The feature is as simple as that you just
4:08specify an image raw and it starts loading
4:10them in
4:10What use cases might use this?
4:12Well, the sector that I think is going to
4:14benefit the most from this is fast-moving
4:16consumer goods or anyone who works with
4:17products
4:18You already have all the images typically
4:20hosted somewhere online maybe for your
4:23website so people can purchase them
4:24Maybe you already have the images as assets
4:26so you can refer to them in different
4:28services
4:29Working with images is just something that
4:31's purely common in product based roles
4:34So this is going to be really useful for
4:36you
4:36So you can show people the products you're
4:38actually working with in an analytical
4:40context
4:41now the challenge there is then working
4:43with those images is going to become a
4:44little bit tricky because tableau does
4:46actually have a
4:46Few requirements and you just can't go ham
4:49adding images absolutely everywhere to show
4:51you this
4:51What I'll do is I'll link to this in the
4:53description of the first comment in this
4:55video if I bring it on to screen
4:57There's actually a few caveats to be aware
4:59of so you can see tableau themselves
5:01I've actually got images of shoes and
5:02You need to be able to repair your data
5:04source in a certain way you're going to
5:06need to have to use a specific
5:07Extension format essentially the two ways
5:10of specifying in JPEG and a PNG no other
5:12image format works at the moment
5:14Which means no two gifts. I know that's
5:16something people are going to try to do
5:18Animated things inside of a dashboard. I'm
5:20sure someone will figure out a hack
5:21And then you need to mesh make sure that
5:24every URL is actually publicly accessible
5:26the reason this is in some cases the URL
5:29might have to go through the public
5:31internet and if
5:32It's not going to work because of security
5:35or firewall issues then the images won't
5:37simply load
5:37so if you have any sort of issues like that
5:39you need to make sure that you really
5:41understand the
5:42architecture of your network at work or the
5:44network of the people who are going to be
5:46using this dashboard and
5:47The easiest way to do that
5:48It's just to make sure that the images are
5:50publicly available so that if I can visit
5:52them just by going to our URL
5:53Is an absolute stranger then it's going to
5:56work and you might rely on sort of security
5:58by
5:59Sort of making the URLs difficult to guess
6:01changing the URLs and then having your
6:03database change those URLs frequently
6:06So they're being dynamically generated
6:08every so often and the data sources update
6:10as and when that happens
6:11That's going to be probably the best form
6:13of using security to do this
6:14I'm sure there's other ways and there are a
6:17couple of other sort of challenges as well
6:19If you go down there's a little bit of a
6:21limitation and it's actually to do with
6:22performance
6:23I keep going down actually might have
6:25skipped it already
6:26There is a there's a limitation here to do
6:29with client-side rendering and so in
6:31instances where you've got a lot of images
6:34Tableau has this concept called a
6:37complexity score and if the score of the
6:39dashboard is over a certain level
6:41What tableau will do is I'll ask the server
6:43the tableau server or the tableau cloud to
6:46render the dashboard for you
6:48Rather than having that dashboard rendered
6:50here in the browser in my case Google
6:53Chrome the difference there is that
6:55sometimes
6:56Client-side rendering which is in Chrome is
6:58often faster and server-side rendering is
7:00going to be slower
7:01And so if you hit a certain level of
7:03complexity and that's what this note here
7:05is about
7:05You're going to get slightly slower
7:07performance because it's going to have to
7:08require the server to do it and then send
7:10that information
7:11Over the internet to the end user
7:13And so that's why this is super important
7:14to be aware of if you're gonna hop into
7:16images
7:17You might just see a slightly different
7:19experience to sort of what you're familiar
7:20with
7:20Especially if you're testing it locally in
7:22a desktop. It works fine. You put it on
7:24server and for some reason
7:25It's just chugging along and it might be
7:27this particular use case
7:28So I don't want to go into too much detail
7:30about that because it's a whole other topic
7:32to do with
7:32performance recording and how tableau
7:35server and tableau cloud work
7:36But check out this note about client-side
7:39rendering and make sure you've had a look
7:41at it
7:41now the other thing that tableau have
7:43nicely done is look how to
7:44Troubleshoot this because there's going to
7:46be a bunch of reasons why this doesn't work
7:48And so the bottom of this has actually got
7:49several guides on how to this how to use
7:51this how to make it work and
7:53a couple of other things to be aware of and
7:55One of the things I think is going to be
7:57super interesting is you do have a
7:58recommended file size
8:00Let me just try and find that for you. What
8:02is the recommended file side?
8:04I think I skipped past here you go ensure
8:06that each image file is smaller than
8:08128 kilobytes and that is either really
8:11quite permissive or quite restrictive
8:13It depends what images you're using because
8:16if I want to show an image that's black
8:17Well, I don't need much information or much
8:19dates to be able to show that
8:21However, if I have an image that has tons
8:23of colors in it, but it's very very small
8:25It might actually go over that limit very
8:27easily
8:28And so what you're gonna have to do is use
8:30a service that can dynamically make sure
8:32that the images don't go over this
8:34Specific size and that becomes very very
8:36hard to do if you're a photographer
8:38You'll know that when you export an image
8:40You can actually specify a maximum ceiling
8:42for a file size when you work with tableau
8:44dashboard
8:44That's just not something you want to be
8:46messing around with for the thousands of
8:48images
8:48You might be looking at and also it's quite
8:50hard to computationally process all those
8:52images again
8:52Upload them all to where they need to be
8:54and then test this whole workflow
8:56So that's why it's super important to check
8:57out the service that I've mentioned in the
8:59past called Cloudinary
9:00What they do is essentially take the effort
9:03of doing all of that away from you. So let
9:05me go to their website
9:05I've actually done a video on this already
9:07So I'm not going to spend too much time on
9:08this go check out the video on that
9:11But what they do is they essentially
9:13process images and for the record
9:14They're not the only company that just the
9:16company that I use and love they process
9:18images for you in the cloud
9:19And so what you can do is you can specify
9:21Transformations essentially edits to your
9:24images by just changing the URL. I've done
9:26this in another video
9:27I'll put some images up on screen
9:28but then what this will allow you to do is
9:30use things like parameters use things like
9:32Specific customizations for specific teams
9:36or specific departments on those images
9:38without you having to go out and render
9:40those images
9:40It's quite a permissive service
9:42You can actually do a lot of the testing
9:44you need and try this out with maybe one or
9:45two dashboards
9:46While still using the free plan, it's not
9:48expensive at all in my opinion
9:50So go ahead and check Cloudinary out check
9:52out the video on that topic because I've
9:54done a whole video already in anticipation
9:55of this
9:56Feature I think you're gonna absolutely
9:58love it. So that's image rolls in a
9:59nutshell. It's really quite a simple
10:01feature
10:02I for me I just think it's about time we
10:03have this it's gonna be super exciting
10:05I think it's going to change the way people
10:07design dashboards. I don't think it's quite
10:10what everyone was looking for
10:11I think what people wanted is a little bit
10:13more than this no limitations on the number
10:15of images
10:15Maybe even more flexibility to do various
10:17things, but if you're being sensible with
10:19this, I think 500 is quite a nice number
10:21It's quite a nice limit and you can create
10:24dashboards and now start to tell a bit more
10:26of a story in this particular case
10:28I've just built a simple table to show the
10:30capability in other videos in the future.
10:32Not this one
10:32I'm going to break down this feature and
10:34really show you what it can do
10:35But as I like to do I like to keep things
10:38simple and I also hate hacks with a passion
10:40if you want to know
10:41Why check out this video. That's it for
10:43today. Thanks for watching and I'll catch
10:44you in the next one
10:45You
10:51[ Silence ]
Tableau has added support for Image URLs allowing you to load image assets from outside of Tableau, such as image storage buckets in the cloud or any URL-based image generation service such as Cloudinary.
Tableau Release notes ------- Improve context recognition to help end-users better connect to and understand insights using Image Role. Image Role is a new field semantic that offers a scalable and automated way to bring image assets into Tableau. Tableau can now dynamically map images to links in your data and encode them as exportable row or column headers. This new capability allows you to manage image assets externally to prevent workbook sizes from becoming too large to maintain and share.
Timestamps: 0:00 Intro 0:18 Subscriber Update 0:44 Setting up 2:21 Using the feature 4:08 Use cases 4:55 Requirements 6:34 Client-side rendering 7:50 Quirks to be aware of 9:03 Cloudinary 10:01 Final thoughts