动态 json 文件的 Redshift JSONPaths 文件
Redshift JSONPaths file for dynamic json file
给定以下 json 对象
{
"player": {
"francesco totti": {
"position": "forward"
},
"andrea pirlo": {
"position": "midfielder"
}
}
}
我想将上述文件导入 Redshift 中,如下行
name, position
"franceso totti", "forward"
"andrea pirlo", "midfielder"
问题是 'player' 对象每小时有一个动态数量的对象(我导入 Redshift 时的节奏)。例如,下一个小时 运行 可能如下所示。
{
"player": {
"fabio cannavaro": {
"position": "defender"
}
}
}
是否可以使用 JSONPaths 文件每小时导入此文件或是否需要预处理?
您可以根据需要重复使用 jsonpath 文件。您只需要重新运行 COPY 语句,但请记住,这会将行添加到 table - 而不是替换它们。如果要替换,则需要先清除 table(删除、drop/recreate、截断 - 每个都有自己的性能和限制)。
现在您的 json 格式不适用于 Redshift AFAIK。您将玩家名称作为字段标识符,并希望将其设置为一列的值。你会想要这样的东西(抱歉,这些没有经过测试):
{
"player": {
"name": "francesco totti",
"position": "forward"
}
},
{
"player": {
"name": "andrea pirlo",
"position": "midfielder"
}
}
还有一个 json这样的路径:
{
"jsonpaths": [
"$.player.name",
"$.player.position"
]
}
给定以下 json 对象
{
"player": {
"francesco totti": {
"position": "forward"
},
"andrea pirlo": {
"position": "midfielder"
}
}
}
我想将上述文件导入 Redshift 中,如下行
name, position
"franceso totti", "forward"
"andrea pirlo", "midfielder"
问题是 'player' 对象每小时有一个动态数量的对象(我导入 Redshift 时的节奏)。例如,下一个小时 运行 可能如下所示。
{
"player": {
"fabio cannavaro": {
"position": "defender"
}
}
}
是否可以使用 JSONPaths 文件每小时导入此文件或是否需要预处理?
您可以根据需要重复使用 jsonpath 文件。您只需要重新运行 COPY 语句,但请记住,这会将行添加到 table - 而不是替换它们。如果要替换,则需要先清除 table(删除、drop/recreate、截断 - 每个都有自己的性能和限制)。
现在您的 json 格式不适用于 Redshift AFAIK。您将玩家名称作为字段标识符,并希望将其设置为一列的值。你会想要这样的东西(抱歉,这些没有经过测试):
{
"player": {
"name": "francesco totti",
"position": "forward"
}
},
{
"player": {
"name": "andrea pirlo",
"position": "midfielder"
}
}
还有一个 json这样的路径:
{
"jsonpaths": [
"$.player.name",
"$.player.position"
]
}