【问题标题】:Keen.io how to use savedQueries() to chart graphKeen.io 如何使用 savedQueries() 绘制图表
【发布时间】:2017-11-22 00:09:24
【问题描述】:

我正在尝试使用 savedQueries 绘制图表,但没有成功。 savedQueries 是否仅用于 Keen 中的 CRUD 查询,还是实际上也可以用于绘制图表?已从代码中删除密钥,给您带来的不便敬请谅解。

var client = new Keen({
  projectId: keen.project,
  writeKey: keen.writeKey,
  readKey: keen.readKey,
  masterKey: keen.masterKey
});
var savedQueries = client.savedQueries();
savedQueries.get("monthly-active-users", function(err, response) {
  if (err) {
    console.log(err);
  }
  console.log(response);
  var chart1 = new Keen.Dataviz()
    .el(document.getElementById('chart'))
    .chartType("area")
    .colors(["#6ab975"])
    .title("Monthly Active Users")
    .prepare();

  chart1
    .data(response)
    .render();

});

从保存的查询中响应 obj

{
  "refresh_rate": 0,
  "user_last_modified_date": "2017-06-09T18:51:59.676000+00:00",
  "last_modified_date": "2017-06-09T18:51:59.676000+00:00",
  "query_name": "monthly-active-users",
  "urls": {
    "cached_query_url": "/3.0/projects/58f6fb8a90b3659264951b8d/queries/saved/monthly-active-users",
    "cached_query_results_url": "/3.0/projects/58f6fb8a90b3659264951b8d/queries/saved/monthly-active-users/result"
  },
  "created_date": "2017-04-25T23:52:45.685000+00:00",
  "query": {
    "filters": [
      {
        "operator": "ne",
        "property_name": "user_id",
        "property_value": "guest"
      },
      {
        "operator": "not_contains",
        "property_name": "fromState",
        "property_value": "app"
      },
      {
        "operator": "not_contains",
        "property_name": "user_email",
        "property_value": "@giblib.com"
      },
      {
        "operator": "not_contains",
        "property_name": "fromState",
        "property_value": "app.auth_postregister"
      }
    ],
    "analysis_type": "count_unique",
    "timezone": "US/Pacific",
    "group_by": null,
    "force_exact": null,
    "timeframe": "this_2_months",
    "target_property": "user_id",
    "interval": "monthly",
    "event_collection": "user-page-access"
  },
  "run_information": null,
  "metadata": {
    "visualization": {
      "chart_type": "areachart"
    },
    "display_name": "Monthly Active Users"
  }
}

【问题讨论】:

  • 执行此操作时,您的控制台中是否出现任何错误?您应该能够在图表中使用已保存的查询。它以与临时查询相同的方式获得响应。
  • 不,我没有从 savedQueries.get("monthly-active-users" 得到任何错误,但图表显示“没有数据显示”。

标签: javascript keen-io


【解决方案1】:

我注意到您没有包含 Keen.ready() 函数。另外,我建议使用client.run 而不是client.get,因为它会运行查询并获得结果。

我继续创建了一个示例 JSFiddle:https://jsfiddle.net/pn14bs0L/2/

Keen.ready(function() {

  client.run("test-saved-query", function(err, response) {
    if (err) {
      // there was an error
    } else {
      var chart1 = new Keen.Dataviz()
        .el(document.getElementById('my_chart'))
        .chartType("areachart")
        .colors(["#6ab975"])
        .title("Monthly Active Users")
        .prepare();

      chart1
        .data(response)
        .render();
    }
  });

});

您可以在 JSFiddle 中看到这与一些测试数据一起工作。

注意:我假设您在这里使用的是热衷于 js,而不是敏锐的 dataviz.js。

【讨论】:

  • 这很好用,但有没有办法修改响应 obj 的时间范围以绘制不同的时间范围??
  • 与已保存查询的时间范围不同的时间范围?
  • 是的,我希望查询的时间范围与保存的时间范围不同。这可能吗?
  • 您需要创建另一个已保存的查询或只使用临时查询。您可能会得到保存的查询定义 (keen.io/docs/api/#getting-a-saved-query-definition),然后从那里创建一个新的。
猜你喜欢
  • 1970-01-01
  • 2011-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
  • 2010-10-14
相关资源
最近更新 更多