我有一些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结构将允许以下内容:
-
具有不同模式的多个事件
-
每个事件的多个实例(记录)
谢谢
1 回答
联系支持并被告知Glue爬虫不支持同一文件中的多个模式 . 所以我修改了原始的JSON,每个文件有一个模式,每个文件有多个记录 .