我有一些JSON包含不同的模式,具有不同的模式,如下所示:
{
"events": [{
"key": "an_action",
"properties": {
"user": "111111111111",
"datetime": "2018-9-05 10:00:00",
"value_a": "123",
"value_b": "123",
"value_c": "123"
}
},
{
"key": "another_action",
"properties": {
"user": "111111111111",
"datetime": "2018-9-05 10:00:00",
"quantity": "1",
"cash": "£123",
"something": "else"
}
},
{
"key": "one_more_action",
"properties": {
"user": "111111111111",
"datetime": "2018-9-05 10:00:00",
"activated": "true"
}
}]
}
当我尝试使用Glue解析它时,我最终得到一个包含单列的表:
事件:数组
我尝试过使用$ .events [*]的JSON分类器,但这没有用。
我觉得问题是我的输入JSON结构不适用于Glue爬虫。
在到达Glue之前,改变JSON结构似乎是正确的做法,但是从Glue文档中不清楚是否存在用于在单个JSON块中处理混合模式事件的推荐结构。
在我的JSON中,“key”包含事件的名称,“properties”是属性列表。
我最终希望在Redshift中为每个事件创建一个表(例如an_action,another_action,one_more_action)。从那里我可以看到加载到事实/维度星型模式,但这是为了以后。
简而言之,我的问题是Glue可以从混合模式JSON创建多个表吗?如果是这样,那么这样做的首选JSON结构将允许以下内容:
谢谢
联系支持并被告知Glue爬虫不支持同一文件中的多个模式。所以我修改了原始的JSON,每个文件有一个模式,每个文件有多个记录。