2017-06-10 29 views
1

我有大約400萬行數據要導入到Keen.io中。非規範化的CSV結構看起來像附件here ...「維」列是一個字符串化的JSON對象。我看到Keen.io擁有CSV批量導入器。 「尺寸」欄將如何由進口商處理?它會把它變成一個物體嗎?關於我應該如何處理這個問題,你有什麼建議?謝謝!將批量數據導入到Keen.io中,其中一列被字符串化JSON

回答

1

首先讓我們以event data的形式組織您的數據,然後準備將其加載到Keen中。

您分享的鏈接看起來像是有一張關於魚的數據表(每條魚一行)和另一個關於規則的數據表。我假設,如果你只是試圖將這些表存儲在某個地方,你可以使用SQL數據庫或類似的Firebase。既然你有興趣把它們加載到Keen IO中,我會假設你有某種動作與你有興趣分析的這個數據相關,這就是你的意思是400萬行數據。

加載數據的第一步是確定其中與您有興趣記錄的這些事件相關的操作。

在這個例子中,假設您每次查看或保存魚類或法規時都要跟蹤。我們的事件集合將是:

  • 查看魚
  • 保存魚
  • 觀調控
  • 保存調節

每次這些事件的一個情況,我們會張貼到基恩採用這種格式。我們基本上是創建一個關於魚,調節,用戶等各相關屬性的對象:

// 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);

理想的情況下你的應用儀器,使這些事件被髮布到敏銳的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 
+0

感謝您的答覆。根據csv列標題,數據最終會在Keen.io中看起來如何?我已經開始以上面提到的類似格式將數據傳輸到Keen.io。我想把這些歷史數據放到那些相同的集合中,但我擔心導入工具不會以正確的格式導入它。 –

+0

我會先運行一些測試到像「import_test」這樣的集合中,以確保事情看起來像您期望的一樣。您需要先將字符串化的json轉換爲列標題和值。一旦你這樣做並導入csv,它應該像我上面展示的例子一樣熱衷於JSON對象。您可以將存儲在Keen中的每個事件都視爲嵌套的JSON對象。 –

+1

好的,我明白了。所以像'fish.name'這樣的列標題就會變成:{fish:{name:''}} 很酷的謝謝! –