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

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

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

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


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


谢谢
Reply | Threaded
Open this post in threaded view
|

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

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

Roc Marshal <[hidden email]> 于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
Reply | Threaded
Open this post in threaded view
|

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

Roc Marshal
如果是深度是三层以上也是类似的嵌套语法吗?或者说是其他的写法?


谢谢

Best Roc.





在 2020-09-24 20:53:12,"Benchao Li" <[hidden email]> 写道:

>这个情况现在是支持的,可以用类似于这种写法:
>```SQL
>CREATE TABLE MyTable (
>  a11 INT,
>  a12 VARCHAR,
>  a13 ROW<a21 INT, a22 INT, a23 VARCHAR>
>) WITH (...)
>```
>
>Roc Marshal <[hidden email]> 于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
Reply | Threaded
Open this post in threaded view
|

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

Benchao Li-2
嗯,道理是一样的。ROW/MAP/ARRAY这些本来就是嵌套类型,嵌套深度没有限制

Roc Marshal <[hidden email]> 于2020年10月21日周三 下午2:38写道:

> 如果是深度是三层以上也是类似的嵌套语法吗?或者说是其他的写法?
>
>
> 谢谢
>
> Best Roc.
>
>
>
>
>
> 在 2020-09-24 20:53:12,"Benchao Li" <[hidden email]> 写道:
> >这个情况现在是支持的,可以用类似于这种写法:
> >```SQL
> >CREATE TABLE MyTable (
> >  a11 INT,
> >  a12 VARCHAR,
> >  a13 ROW<a21 INT, a22 INT, a23 VARCHAR>
> >) WITH (...)
> >```
> >
> >Roc Marshal <[hidden email]> 于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