Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    New 13.0d chartDataBindingNewSample aggregtion and .ds.xml question

    Hi Isomorphic,

    I saw the new chartDataBindingNewSample (SNAPSHOT_v13.0d_2020-11-04) which perhaps wasn't even there yesterday(?). While it's looking great, I have questions w.r.t. the data collection. If I understand the criteria in the Developer Console RPC Tab like
    Code:
        data:{
            Products:"Prod01", 
            Regions:[
                "North", 
                "South", 
                "East", 
                "West"
            ], 
            Time:"2019"
        },
    plus 8 rows in the response correct, the data has to be already aggregated beforehand by every possible configuration in an ETL step before.
    Is this correct or does this support client requested GROUP BY? If not, this would definitely be a valuable addition!

    I also had a look at the cubeAnalytics-sample, which seems to use the same approach. Is this correct? Here I assumed even more that it would use SQL Aggregation features.

    Also, I did not find the used .ds.xml attributes isSampleDS and allowExplicitSequenceValues in the docs.

    Best regards
    Blama

    #2
    Actually, with the new server summary-samples, this might be perhaps possible quite easy? (If it is not already like this and I just don't understand the DSRequest-handling. I did not try the showcase locally and had a look at the generated SQLs in the serverside logs)

    Comment


      #3
      This new Server Summaries samples show aggregation on the fly, requested dynamically from the client. You can also declare aggregation in an <operationBinding> in a .ds.xml file.

      The new Chart DataBinding and older Analytics samples show pre-calculated aggregations, which is more appropriate with a dataset of that size and an analytics scenario.

      It would be relatively straightforward to use the Server Summaries system on the server to provide such aggregations on the fly, but neither the Chart now the CubeGrid requests them that way.

      You could of course also use the Server Summaries feature to pre-calculate aggregations and store them (perhaps as a batch job) - that's a typical approach for analytics.

      We'll check on those extra attributes - shouldn't be there.
      Last edited by Isomorphic; 4th Nov 2020, 11:16.

      Comment


        #4
        Hi Isomorphic,

        thanks for the fast answer. Of course I know that I could use the framework to precalculate those tables (although I think that such a thing would be better done inside the DB).
        I just thought "wow, that's pretty cool" when seeing the sample and then was confused when I saw it's precalculated.


        Originally posted by Isomorphic View Post
        It would be relatively straightforward to use the Server Summaries system on the server to provide such aggregations on the fly, but neither the Chart now the CubeGrid requests them that way.
        If you mean that all you have to do is to create a sample for this, that would be pretty cool!
        If you mean that you could easily extend Chart and CubeGrid to request data this way, that would also be cool. I'm not using this or will be using it, but I do think that it would be a pretty awesome feature.
        The developer will know if the data in question is small enough to be analysed in an ad-hoc way.

        Big feature suggestion (not for v13):
        Years ago I used Business Objects, and while it's audience is completely different, I do think you could generate the same SQLs. They use an "universe" (picture here) describing the relations between tables in a graphical way, but in the end it is not much more than your .ds.xml (perhaps easier with multiple foreignKey from a field, which is not possible in .ds.xml as of today).
        If the grouping-request from a ListGrid/Chart/Cube suggested above is already possible, then the user could do this:
        • Drag multiple columns of different tables to a blank layout
        • Have the SQLs with joins generated accordingly if there is some connection between the tables
        • Mark grouping columns (result like here in summariesCustomNewSample)
        • Mark aggregation columns
        • Use filterRow to define WHERE and HAVING
        • Press a button to load data
        To me it seems that if ListGrid/Chart/CubeGrid already support the group by definition (?), "all" that is needed is some ListGrid/Chart Drag&Drop (perhaps already possible with Visual Builder?), and you'd be able to also cover easy ad-hoc reporting use cases.
        It's completly clear that the user could do useless things or impossible things, where the SQL fails, the SQL generation fails or the result is useless, but this is then in the responsibility of the user.

        Best regards
        Blama
        Last edited by Blama; 4th Nov 2020, 14:29.

        Comment

        Working...
        X