将批量数据导入 Keen.io,其中一列被字符串化 JSON

Import bulk data in to Keen.io, where one column is stringified JSON

我有大约 400 万行数据要导入到 Keen.io。非标准化的 CSV 结构看起来像附加的 here ... "dimensions" 列是一个字符串化的 JSON 对象。我看到 Keen.io 有一个 CSV 批量导入器。进口商将如何处理 "dimensions" 列?它会把它变成一个物体吗?你对我应该如何处理这个问题有什么建议?谢谢!

首先让我们以 event data 的形式构建您的数据,然后准备将其加载到 Keen 中。

您共享的 link 看起来您有一个 table 的鱼数据(每条鱼一行)和另一个 table 的法规数据。我假设如果您只是想将这些 table 存储在某个地方,您会使用 SQL 数据库或类似 Firebase 的东西。由于您有兴趣将它们加载到 Keen IO 中,我假设您有某种与您有兴趣分析的数据相关的 actions,这就是您的意思400万行数据。

加载数据的第一步是确定哪些 与您有兴趣记录的事件相关的操作。

对于此示例,我们假设您在每次查看或保存鱼或规则时进行跟踪。我们的活动集合将是:

  • 查看鱼
  • 救鱼
  • 查看规定
  • 保存规则

每次发生这些事件时,我们都会 post 以这样的格式将其输入 Keen。我们基本上创建了一个对象,其中包含有关鱼、法规、用户等的各种相关属性:

// Create an event data object with the properties you want to send
// This is an example of sending an event using the Keen IO JavaScript SDK, but you could post the event from iOS, Android, or from the backend.
// This example is an event that happens when someone views details about a fish

var event = {
  gid: "be68ea99-8f3b-9s9f",
  fish: { // details about the fish
    id: "168",
    species_name: "Amberjack, Lesser"
  },
  user: { // details about the user
    id: "029aomsldsf9aadfm"
  },
  app_type: "web", // "iOS", "Android"
  keen: {  // time the event happened
    timestamp: new Date().toISOString()
  }
};

// Send it to the "view_fish" collection
client.addEvent("view_fish", event);

理想情况下,您的应用程序经过检测,以便这些事件在发生时post发送到 Keen IO。

在这种情况下,您似乎还需要加载一些历史数据。查看 Keen IO bulk loading guide。为此,您需要为每个历史事件创建 CSV。第一行必须是列名。之后每个事件有一行:

keen.timestamp, gid, fish.id, fish.species_name
2017-06-13T19:11:05Z, ae68ea99-2f3b-9s9z, "168", "Amberjack, Lesser"
2017-05-13T19:11:05Z, be88ea99-8f4b-3s9x, "44", "Scallop, Bay"
2017-04-13T19:11:05Z, ce33ea99-5f3b-9s9b, "223", "Scallop, Calico"

您的每个活动集合都会有一个 CSV,例如"view_fish"、"save_fish" 等

然后您可以使用 Keen CLI:

加载它们中的每一个
$ keen events:add --collection view_fish --file view_fish_events.csv --csv
$ keen events:add --collection save_fish --file save_fish_events.csv --csv
$ keen events:add --collection view_regulation --file view_regulation_events.csv --csv
$ keen events:add --collection save_regulation --file save_regulation_events.csv --csv