Академический Документы
Профессиональный Документы
Культура Документы
7
C omment
0
ShareShare Tableau Performance Tuning - LEAVE THE C ACHE ALONE!
Alexander Ingram
FollowAlexander Ingram
It's the question you've been waiting for - Suzie Desktop User wants to
know why her newest Tableau Dashboard is dragging. Or worse - maybe
it's a Board Member asking why she needs to wait for 3 minutes just to
see progress toward annual revenue goals.
Load times are hitting 2 and 3 minutes, and you're watching as Tableau
slams your database with query after query, and then taking even longer
to generate the images that Suzie should see in her browser. And if
you're anything like me, you thought you had perfect solution - I'll just
put the reports in the cache! Stupid ol' VizSQL won't even know what hit
it!
But wait - before you start digging through Tableau Community User
forums looking for the perfect way to auto-cache reports with TabCMD,
let's consider some underlying issues as to why tuning at the
cache is not the answer you're looking for.
1. You can cache it, but will your users hit it? As you
may be well aware, Tableau architecture relies on multiple VizSQL
processes, which work independently, to generate and cache Dashboard
images. So if you're running a robust operation of 4-8 processes, getting
it into "the cache" will likely mean it's only cached in one process. And
when the next user requests the data, there's no guarantee they will reach
the VizSQL with the cached report.
2. What about filters? Getting your dashboard image in the
cache is only part of the problem. If your dashboard is interactive (hint:
it probably should be), then caching the image will only solve part of
your problem. When a user requests a new subset of information with a
filter selection, your cache is now worthless.
3. You can't do it, even if you wanted. Scheduling
TabCMD commands to generate a dashboard image sounds like a great
idea. Run it every 10 or 20 minutes, keep the dashboard cached, and the
users will never know the difference. But aside from the fact that
this isn't a viable option, it's also overkill. In the time you spend
fiddling with Java to properly browser-cache the report, and figuring out