Data Studio Community Connectors: Combine time and non-time based metrics











up vote
0
down vote

favorite












I'm building a connector that connects to an API that offers endpoints for both time series-based metrics (such as 'number of users per day'), as well as static metrics (such as 'project status').



If I am to build a single connector, I would have to insert the static metrics within the time series values, right?



So, if my schema is



[{name=day}, {name=users}, {name=status}]


then my values would look like



['20181101', 150, '85%']
['20181102', 125, '85%']
['20181103', 134, '85%']
['20181104', 185, '85%']
['20181105', 111, '85%']
['20181106', 123, '85%']


since the 'status' field is not time-dependent.



While this seems to work, this looks pretty inefficient. Is there anything I'm missing, or should I build a separate connector for the static metrics endpoints?



Thanks!










share|improve this question


























    up vote
    0
    down vote

    favorite












    I'm building a connector that connects to an API that offers endpoints for both time series-based metrics (such as 'number of users per day'), as well as static metrics (such as 'project status').



    If I am to build a single connector, I would have to insert the static metrics within the time series values, right?



    So, if my schema is



    [{name=day}, {name=users}, {name=status}]


    then my values would look like



    ['20181101', 150, '85%']
    ['20181102', 125, '85%']
    ['20181103', 134, '85%']
    ['20181104', 185, '85%']
    ['20181105', 111, '85%']
    ['20181106', 123, '85%']


    since the 'status' field is not time-dependent.



    While this seems to work, this looks pretty inefficient. Is there anything I'm missing, or should I build a separate connector for the static metrics endpoints?



    Thanks!










    share|improve this question
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      I'm building a connector that connects to an API that offers endpoints for both time series-based metrics (such as 'number of users per day'), as well as static metrics (such as 'project status').



      If I am to build a single connector, I would have to insert the static metrics within the time series values, right?



      So, if my schema is



      [{name=day}, {name=users}, {name=status}]


      then my values would look like



      ['20181101', 150, '85%']
      ['20181102', 125, '85%']
      ['20181103', 134, '85%']
      ['20181104', 185, '85%']
      ['20181105', 111, '85%']
      ['20181106', 123, '85%']


      since the 'status' field is not time-dependent.



      While this seems to work, this looks pretty inefficient. Is there anything I'm missing, or should I build a separate connector for the static metrics endpoints?



      Thanks!










      share|improve this question













      I'm building a connector that connects to an API that offers endpoints for both time series-based metrics (such as 'number of users per day'), as well as static metrics (such as 'project status').



      If I am to build a single connector, I would have to insert the static metrics within the time series values, right?



      So, if my schema is



      [{name=day}, {name=users}, {name=status}]


      then my values would look like



      ['20181101', 150, '85%']
      ['20181102', 125, '85%']
      ['20181103', 134, '85%']
      ['20181104', 185, '85%']
      ['20181105', 111, '85%']
      ['20181106', 123, '85%']


      since the 'status' field is not time-dependent.



      While this seems to work, this looks pretty inefficient. Is there anything I'm missing, or should I build a separate connector for the static metrics endpoints?



      Thanks!







      google-data-studio






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 19 hours ago









      Mihai A

      31




      31
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          It sounds like you are trying to merge two independent tables, from your description. If you have a time series data with dates, and a separate series of project status without dates, then split your connector to return two different series.



          The method getSchema passes a request object, since it is beyond the getConfig() call. That schema can thus be split depending on the parameter. E.g.:



             function getSchema(request){
          switch(request.configParams.myTableOption){
          case 'tableOption1':
          return mySchemaObject.tableOption1;
          case 'tableOption1':
          return mySchemaObject.tableOption1;
          }
          }


          Super simplified, of course, but that should provide a much more flexible connector, which can return different table types. You also have to similarly split getData() to return the right data, but that same configParam carries through subsequent requests for that connector, so you can rely on it to do so there as well.






          share|improve this answer








          New contributor




          Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.


















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53371621%2fdata-studio-community-connectors-combine-time-and-non-time-based-metrics%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            It sounds like you are trying to merge two independent tables, from your description. If you have a time series data with dates, and a separate series of project status without dates, then split your connector to return two different series.



            The method getSchema passes a request object, since it is beyond the getConfig() call. That schema can thus be split depending on the parameter. E.g.:



               function getSchema(request){
            switch(request.configParams.myTableOption){
            case 'tableOption1':
            return mySchemaObject.tableOption1;
            case 'tableOption1':
            return mySchemaObject.tableOption1;
            }
            }


            Super simplified, of course, but that should provide a much more flexible connector, which can return different table types. You also have to similarly split getData() to return the right data, but that same configParam carries through subsequent requests for that connector, so you can rely on it to do so there as well.






            share|improve this answer








            New contributor




            Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.






















              up vote
              0
              down vote













              It sounds like you are trying to merge two independent tables, from your description. If you have a time series data with dates, and a separate series of project status without dates, then split your connector to return two different series.



              The method getSchema passes a request object, since it is beyond the getConfig() call. That schema can thus be split depending on the parameter. E.g.:



                 function getSchema(request){
              switch(request.configParams.myTableOption){
              case 'tableOption1':
              return mySchemaObject.tableOption1;
              case 'tableOption1':
              return mySchemaObject.tableOption1;
              }
              }


              Super simplified, of course, but that should provide a much more flexible connector, which can return different table types. You also have to similarly split getData() to return the right data, but that same configParam carries through subsequent requests for that connector, so you can rely on it to do so there as well.






              share|improve this answer








              New contributor




              Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
              Check out our Code of Conduct.




















                up vote
                0
                down vote










                up vote
                0
                down vote









                It sounds like you are trying to merge two independent tables, from your description. If you have a time series data with dates, and a separate series of project status without dates, then split your connector to return two different series.



                The method getSchema passes a request object, since it is beyond the getConfig() call. That schema can thus be split depending on the parameter. E.g.:



                   function getSchema(request){
                switch(request.configParams.myTableOption){
                case 'tableOption1':
                return mySchemaObject.tableOption1;
                case 'tableOption1':
                return mySchemaObject.tableOption1;
                }
                }


                Super simplified, of course, but that should provide a much more flexible connector, which can return different table types. You also have to similarly split getData() to return the right data, but that same configParam carries through subsequent requests for that connector, so you can rely on it to do so there as well.






                share|improve this answer








                New contributor




                Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                It sounds like you are trying to merge two independent tables, from your description. If you have a time series data with dates, and a separate series of project status without dates, then split your connector to return two different series.



                The method getSchema passes a request object, since it is beyond the getConfig() call. That schema can thus be split depending on the parameter. E.g.:



                   function getSchema(request){
                switch(request.configParams.myTableOption){
                case 'tableOption1':
                return mySchemaObject.tableOption1;
                case 'tableOption1':
                return mySchemaObject.tableOption1;
                }
                }


                Super simplified, of course, but that should provide a much more flexible connector, which can return different table types. You also have to similarly split getData() to return the right data, but that same configParam carries through subsequent requests for that connector, so you can rely on it to do so there as well.







                share|improve this answer








                New contributor




                Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                share|improve this answer



                share|improve this answer






                New contributor




                Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.









                answered 9 hours ago









                Alex D

                1




                1




                New contributor




                Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.





                New contributor





                Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






                Alex D is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                Check out our Code of Conduct.






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53371621%2fdata-studio-community-connectors-combine-time-and-non-time-based-metrics%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

                    ts Property 'filter' does not exist on type '{}'

                    mat-slide-toggle shouldn't change it's state when I click cancel in confirmation window