tableau / extensions-api

Extensions API sample code and developer docs.
http://tableau.github.io/extensions-api
MIT License
268 stars 251 forks source link

Extensions API crashes when dashboard contains worksheet with lots of data. #515

Closed merlijnbuit closed 1 year ago

merlijnbuit commented 2 years ago

I found an interesting bug in the extensions API (1.9.0 and lower) with initialising the api (InitializeAsync). Somehow when you have a lot of data on your dashboard it crashes with the attached error.

When I filter my worksheet to less rows, let the extensions API initialise (InitializeAsync) and then filter back to all data it works.

A clear and concise description of what the issue is.

Version information:

Steps to reproduce (please include a code snippet, if possible):

  1. Add any Tableau extension of the gallery to your dashboard
  2. Have one or more worksheets with a ton of data (2m records for example)
  3. Reload extension, API crashes.

Both tried Extensions API 1.8, 1.9 minified and non-minified.

Screenshot 2022-10-12 at 11 29 06

johnDance commented 2 years ago

@merlijnbuit - I'm 99% certain this is coming from getSummaryDataAsync rather than initializeAsync. I'll investigate some more, but we need to solve it for that case also.

johnDance commented 2 years ago

The issue is with getSummaryDataAsync. The number of rows actually overwhelms the communication layer between Tableau and chromium. We will have a fix in our 1.10 release, but meanwhile you can fix it by adding a maxRows to your GetSummaryDataOptions.

merlijnbuit commented 2 years ago

Thank you John! Can you explain the fix? We can't put a maxRows on the call because customers are purposely trying to get this much data in our products.

Offtopics: any updates on performance improvements while getting data? Like a streaming api or paginated calls?

johnDance commented 2 years ago

I didn't want to spill the beans, but since you asked... There really isn't a great fix for getSummaryDataAsync. (You are probably thinking the same thing.) We are introducing paging support in 2022.4/1.10 and deprecating getSummaryDataAsync.

SiebeG commented 1 year ago

Hi @johnDance , can you elaborate on the progress of the paging support? Some of our customers are depending on this to handle big datasets and we're very eager to implement this feature in our extensions.

johnDance commented 1 year ago

@SiebeG Great question! Tableau 2022.4 just released! We will be releasing v1.10 of the extensions-api in the next 2 weeks. Watch for it very soon. I will post in the Tableau #DataDev slack channel when it is ready for download. I'll also reply here. John

johnDance commented 1 year ago

@SiebeG As promised... https://tableau-datadev.slack.com/archives/CHC7RPH34/p1671655991238609 Happy Holidays! John

SiebeG commented 1 year ago

Thank you very much @johnDance this is a huge step forward for our extensions!