You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Roc Marshal <fl...@126.com> on 2020/09/24 11:53:14 UTC

flink sql ddl 是否支持映射多层json

请教个问题,flink sql 流模式链接kafka的时候,message格式是多层的json,怎么对某个深度大于1的字段进行映射呢?
{
    "a11":1,
    "a12":"1",
    "a13":{
        "a21":1,
        "a22":1,
        "a23":"1"}
}


比如像这样的格式,怎么将a2开头的字段进行映射呢?如果现有版本不支持这个特性的话,是否可以考虑对此功能进行支持?


谢谢

Re: Re: flink sql ddl 是否支持映射多层json

Posted by Benchao Li <li...@apache.org>.
嗯,道理是一样的。ROW/MAP/ARRAY这些本来就是嵌套类型,嵌套深度没有限制

Roc Marshal <fl...@126.com> 于2020年10月21日周三 下午2:38写道:

> 如果是深度是三层以上也是类似的嵌套语法吗?或者说是其他的写法?
>
>
> 谢谢
>
> Best Roc.
>
>
>
>
>
> 在 2020-09-24 20:53:12,"Benchao Li" <li...@apache.org> 写道:
> >这个情况现在是支持的,可以用类似于这种写法:
> >```SQL
> >CREATE TABLE MyTable (
> >  a11 INT,
> >  a12 VARCHAR,
> >  a13 ROW<a21 INT, a22 INT, a23 VARCHAR>
> >) WITH (...)
> >```
> >
> >Roc Marshal <fl...@126.com> 于2020年9月24日周四 下午7:54写道:
> >
> >> 请教个问题,flink sql 流模式链接kafka的时候,message格式是多层的json,怎么对某个深度大于1的字段进行映射呢?
> >> {
> >>     "a11":1,
> >>     "a12":"1",
> >>     "a13":{
> >>         "a21":1,
> >>         "a22":1,
> >>         "a23":"1"}
> >> }
> >>
> >>
> >> 比如像这样的格式,怎么将a2开头的字段进行映射呢?如果现有版本不支持这个特性的话,是否可以考虑对此功能进行支持?
> >>
> >>
> >> 谢谢
> >
> >
> >
> >--
> >
> >Best,
> >Benchao Li
>


-- 

Best,
Benchao Li

Re:Re: flink sql ddl 是否支持映射多层json

Posted by Roc Marshal <fl...@126.com>.
如果是深度是三层以上也是类似的嵌套语法吗?或者说是其他的写法?


谢谢

Best Roc.





在 2020-09-24 20:53:12,"Benchao Li" <li...@apache.org> 写道:
>这个情况现在是支持的,可以用类似于这种写法:
>```SQL
>CREATE TABLE MyTable (
>  a11 INT,
>  a12 VARCHAR,
>  a13 ROW<a21 INT, a22 INT, a23 VARCHAR>
>) WITH (...)
>```
>
>Roc Marshal <fl...@126.com> 于2020年9月24日周四 下午7:54写道:
>
>> 请教个问题,flink sql 流模式链接kafka的时候,message格式是多层的json,怎么对某个深度大于1的字段进行映射呢?
>> {
>>     "a11":1,
>>     "a12":"1",
>>     "a13":{
>>         "a21":1,
>>         "a22":1,
>>         "a23":"1"}
>> }
>>
>>
>> 比如像这样的格式,怎么将a2开头的字段进行映射呢?如果现有版本不支持这个特性的话,是否可以考虑对此功能进行支持?
>>
>>
>> 谢谢
>
>
>
>-- 
>
>Best,
>Benchao Li

Re: flink sql ddl 是否支持映射多层json

Posted by Benchao Li <li...@apache.org>.
这个情况现在是支持的,可以用类似于这种写法:
```SQL
CREATE TABLE MyTable (
  a11 INT,
  a12 VARCHAR,
  a13 ROW<a21 INT, a22 INT, a23 VARCHAR>
) WITH (...)
```

Roc Marshal <fl...@126.com> 于2020年9月24日周四 下午7:54写道:

> 请教个问题,flink sql 流模式链接kafka的时候,message格式是多层的json,怎么对某个深度大于1的字段进行映射呢?
> {
>     "a11":1,
>     "a12":"1",
>     "a13":{
>         "a21":1,
>         "a22":1,
>         "a23":"1"}
> }
>
>
> 比如像这样的格式,怎么将a2开头的字段进行映射呢?如果现有版本不支持这个特性的话,是否可以考虑对此功能进行支持?
>
>
> 谢谢



-- 

Best,
Benchao Li