Amazon redshift 动态json文件的红移JSONPaths文件

Amazon redshift 动态json文件的红移JSONPaths文件,amazon-redshift,amazon-redshift-spectrum,Amazon Redshift,Amazon Redshift Spectrum,给定以下json对象 { "player": { "francesco totti": { "position": "forward" }, "andrea pirlo": { "position": "midfielder" } } } 我想将上面的文件导入到红移中,如下行所示 name,

给定以下json对象

{
  "player": {
    "francesco totti": {
      "position": "forward"
    },
    "andrea pirlo": {
      "position": "midfielder"
    }
  }
}
我想将上面的文件导入到红移中,如下行所示

name, position
"franceso totti", "forward"
"andrea pirlo", "midfielder"
问题是“player”对象每小时有一个动态的对象数(当我导入Redshift时的节奏)。例如,下一个小时的运行可能如下所示

{
  "player": {
    "fabio cannavaro": {
      "position": "defender"
    }
  }
}

是否可以使用jsonpath文件每小时导入一次此文件,还是需要预处理?

您可以随意重用jsonpath文件。您只需要重新运行COPY语句,但请记住这将向表中添加行,而不是替换行。如果要替换,则首先要清除表(删除、删除/重新创建、截断-每个表都有自己的性能和限制)

现在,您的json格式不适用于Redshift AFAIK。您将播放器名称作为字段标识符,并希望将其设置为列的值。您将需要类似的内容(抱歉,这些未经测试):

还有像这样的jsonpath:

{
    "jsonpaths": [
       "$.player.name",
       "$.player.position"
    ]
}

非常感谢。有道理。我希望找到一种不重新格式化JSON的方法,但看起来我需要在最后加载它之前进行预处理。
{
    "jsonpaths": [
       "$.player.name",
       "$.player.position"
    ]
}