我有一個看起來是這樣的服務器日誌數據:如何將嵌套json數據導入到多個連接的redshift子表中?
2014-04-16 00:01:31-0400,583 {"Items": [
{"UsageInfo"=>"P-1008366", "Role"=>"Abstract", "RetailPrice"=>2, "EffectivePrice"=>0},
{"Role"=>"Text", "ProjectCode"=>"", "PublicationCode"=>"", "RetailPrice"=>2},
{"Role"=>"Abstract", "RetailPrice"=>2, "EffectivePrice"=>0, "ParentItemId"=>"396487"}
]}
我想連接兩個表的關係型數據庫是什麼 - 一個UsageLog表和UsageLogItems表,由一個主鍵ID連接。
你可以看到UsageLog表將具有像精密組件:
UsageLogId
Date
Time
和UsageLogItems表將有一個像
UsageLogId
UsageInfo
Role
RetailPrice
...
領域然而,我無法寫入到這些紅移並且是能夠將每個記錄與唯一的和相關的ID作爲關鍵字相關聯。
我現在正在做的是使用ruby腳本讀取日誌文件的每一行,解析出UsageLog信息(如日期和時間),將它寫入數據庫(寫入單行到Redshift非常非常慢),然後從UsageLogItems信息中創建一個csv數據,並通過S3將其導入到Redshift中,查詢UsageLogs表的最大id並使用該數字關聯兩者(這也很慢,因爲很多UsageLog不會包含任何項目,所以我經常從csv文件加載0條記錄)。
這個目前確實有效,但是它的速度太慢並且效果太差。有沒有更好的方法來處理這個問題?