簡體   English   中英

Amazon Redshift 使用 COPY 命令僅從 JSON 獲取 1 行

[英]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,您需要將其定義為外部表,然后使用嵌套數據查詢語法。

從這里開始: “教程:使用 Amazon Redshift Spectrum 查詢嵌套數據”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM