extensions-api icon indicating copy to clipboard operation
extensions-api copied to clipboard

Get data beyond 10,000 rows from extension

Open PoojaG20 opened this issue 4 years ago • 6 comments

We have more than 10,000 rows in Worksheet or Data source. But while fetching full data, we get only 10000 rows. Without pagination is there any way to get whole data. Wanted to understand the difference it has with respect to Download -> Cross Tab functionality as there it has more than 10,000 rows downloaded.

PoojaG20 avatar Dec 02 '20 09:12 PoojaG20

Yeah, this is an intentional limit we established to prevent massive queries being run by Extensions potentially taking down Tableau Server or Online. The reason it has to have a different behavior than manually querying all of the data is that Extensions allow programmatic access to those queries and it could cause things to get out of hand. Pagination is definitely the way we need to address this and its something we want to accomplish but unfortunately we don't have a timeline on when we will be able to get it done.

Kovner avatar Dec 02 '20 19:12 Kovner

So, there is no way to get more data in extension as of now?

PoojaG20 avatar Dec 03 '20 03:12 PoojaG20

@PoojaG20

at the best of my knowledge the 10K row limit is solved (expanded) in 2020.2.4 as can be read over here: https://github.com/tableau/extensions-api/issues/334

So check your Tableau version and maybe upgrading to a recent build can fix your issue

Or are you experiencing a different issue?

SiebeG avatar Dec 14 '20 17:12 SiebeG

@SiebeG is correct, there was a defect in getSummaryData. FIxed in 2020.2.4, getSummaryData will access all rows in your worksheet. However, getUnderlyingData/getLogicalTableDataAsync has a limit of 10k as mentioned by @Kovner. John

johnDance avatar Dec 14 '20 17:12 johnDance

The limit is defined by the extension api itself. You can change the limit to a larger number, I tested up to 100,000 rows and it worked fine but was a bit slow in reading.

As of today the function is defined in line no 13,526 in here

    GetDataServiceImpl.prototype.getMaxRowLimit = function () {
        return 10000; //change this to 20000,30000...
    };

venky18 avatar Jun 16 '22 04:06 venky18

We do not recommend this work around. As @Kovner mentions above, the limit is there for protection of the Tableau server. We are planning on introducing a paging model that would allow you to access all underlying data. Thanks! John

johnDance avatar Jun 16 '22 15:06 johnDance

We can now read up to 1 million rows of data with a DataTableReader with version 1.10.0 and Tableau 2022.4.

johnDance avatar Dec 29 '22 00:12 johnDance