[英]Amazon Redshift gets only 1 row from JSON with COPY command
我正在嘗試將具有以下結構的 GA 數據復制到 Redshift JSON 文件中:
{
"reports": [
{
"columnHeader": {
"dimensions": [
"ga:date",
"ga:country"
],
"metricHeader": {
"metricHeaderEntries": [
{
"name": "ga:users",
"type": "INTEGER"
},
{
"name": "ga:newUsers",
"type": "INTEGER"
},
{
"name": "ga:sessionduration",
"type": "TIME"
}
]
}
},
"data": {
"rows": [
{
"dimensions": [
"20200731",
"(not set)"
],
"metrics": [
{
"values": [
"7",
"6",
"5.0"
]
}
]
},
{
"dimensions": [
"20200731",
"Albania"
],
"metrics": [
{
"values": [
"2",
"1",
"0.0"
]
}
]
},
{
"dimensions": [
"20200731",
"Algeria"
],
"metrics": [
{
"values": [
"1",
"1",
"224.0"
]
}
]
},
如果我使用以下 JSON 路徑,它只會加載數組中的第一個 object:
{
"jsonpaths": [
"$['reports'][0]['data']['rows'][0]['dimensions'][0]",
"$['reports'][0]['data']['rows'][0]['dimensions'][1]",
"$['reports'][0]['data']['rows'][0]['metrics'][0]['values'][0]" ,
"$['reports'][0]['data']['rows'][0]['metrics'][0]['values'][1]" ,
"$['reports'][0]['data']['rows'][0]['metrics'][0]['values'][2]"
]
}
我試圖將 ['rows'][0] 更改為 ['rows'][*] 和 ['rows'] 但沒有任何幫助。 我應該如何更改 JSON 路徑以從文件加載所有數據?
謝謝!
由於您指定的索引[0]
(第一項),Redshift 只看到第一行。 您目前無法直接攝取像這樣嵌套的 JSON。
要訪問此文件中的所有嵌套 arrays,您需要將其定義為外部表,然后使用嵌套數據查詢語法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.