Re: flink sql如何实现json字符数据解析?

2023-11-22 文章 jinzhuguang
Flink SQL比较适合处理结构化的数据,不知道你的body_data中的filed数量是否是固定的。如果是固定的,那可以将源和目标的格式写成Table形式。
比如:

SourceT: (
uuid String,
   body_data ARRAY>
)

SinkT (
result ARRAY>
)

Insert into SinkT (result)  select Array[ROW(uuid, null,body_data[1]. field1 as 
body_data.fild1, body_data[1]. Field2 as body_data.fild2), ROW(uuid, 
null,body_data[2]. field, body_data[2]. field2)] as result

希望对你有帮助

> 2023年11月22日 20:54,casel.chen  写道:
> 
> 输入:
> 
> {
> 
>  "uuid":"",
> 
>  "body_data": 
> "[{\"fild1\":1"1231","fild2\":1"2341"},{"fild1\":"abc\","fild2\":"cdf\"}]"
> 
> }
> 
> 
> 
> 
> 输出:
> 
> [
> 
>  {
> 
> "uuid": "",
> 
> "body_data: null,
> 
> "body_data.fild1": "123”,
> 
> "body_data.fild2": "234"
> 
>  },
> 
>  {
> 
> "uuid": "",
> 
> "body_data": null,
> 
> "body_data.fild1": "abc",
> 
> "body_data.fild2": "cdf"
> 
>  }
> 
> ]
> 
> 
> 
> 
> 当格式错误时
> 
> 
> 
> 
> 输入:
> 
> {
> 
> "uuid": "”,
> 
> "body_data": "abc"
> 
> }
> 
> 输出:
> 
> {
> 
> "uuid": "",
> 
> "body_data": "abc",
> 
> "body_data.fild1": null,
> 
> "body_data.fild2": null
> 
> }



Re:Re: 退订

2023-11-22 文章 李国辉

退订




--
发自我的网易邮箱手机智能版



- Original Message -
From: "Junrui Lee" 
To: user-zh@flink.apache.org
Sent: Wed, 22 Nov 2023 10:19:32 +0800
Subject: Re: 退订

Hi,

请发送任意内容的邮件到 user-zh-unsubscr...@flink.apache.org 来取消订阅邮件。

Best,
Junrui

万建国 <1097498...@qq.com.invalid> 于2023年11月22日周三 10:10写道:

> 退订


[ANNOUNCE] Apache Flink Kubernetes Operator 1.7.0 released

2023-11-22 文章 Gyula Fóra
The Apache Flink community is very happy to announce the release of Apache
Flink Kubernetes Operator 1.7.0.

The Flink Kubernetes Operator allows users to manage their Apache Flink
applications and their lifecycle through native k8s tooling like kubectl.

Release highlights:
 - Standalone autoscaler module
 - Improved autoscaler metric tracking
 - Savepoint triggering improvements
 - Java 17 & 21 support

Release blogpost:
https://flink.apache.org/2023/11/22/apache-flink-kubernetes-operator-1.7.0-release-announcement/

The release is available for download at:
https://flink.apache.org/downloads.html

Maven artifacts for Flink Kubernetes Operator can be found at:
https://search.maven.org/artifact/org.apache.flink/flink-kubernetes-operator

Official Docker image for Flink Kubernetes Operator can be found at:
https://hub.docker.com/r/apache/flink-kubernetes-operator

The full release notes are available in Jira:
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522=12353462

We would like to thank all contributors of the Apache Flink community who
made this release possible!

Regards,
Gyula Fora


Re:Re:Re:flink sql支持批量lookup join

2023-11-22 文章 Xuyang
Hi, casel.
这种现在应该是没支持,好像也没有issue说要支持,可以去jira里建一个feature看看大家的反响。


目前同样可以实现的方式:
1. 三次look up join + union + udaf。
2. udf,row by row自己查,搞一个缓存提高性能。
3. 将社区的connector魔改一下,重新打包使用。
4. ..



--

Best!
Xuyang





在 2023-11-22 20:44:47,"casel.chen"  写道:
>有一张维表 user,包含id和name字段
>id  | name
>-
>1 | zhangsan
>2 | lisi
>3 | wangwu
>
>
>现在实时来了一条交易数据 
>id  | creator_id  | approver_id  | deployer_id
>-
>1   | 1| 2   | 3
>
>
>希望lookup维表user返回各用户名称
>id   |  creator_name   |  approver_name  |  deployer_name
>
>1| zhangsan  |  lisi|. wangwu
>
>
>
>以上场景用flink sql要如何实现?
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>在 2023-11-22 12:37:10,"Xuyang"  写道:
>>Hi, casel.
>>可以对“批量lookup join”再描述详细一点么?看上去是符合一个lookup join里直接带上k1=v1 and k2=v2 and 
>>k3=v3的用法的。
>>
>>
>>
>>
>>--
>>
>>Best!
>>Xuyang
>>
>>
>>
>>
>>在 2023-11-22 11:55:11,"casel.chen"  写道:
>>>一行数据带了三个待lookup查询的key,分别是key1,key2和key3
>>>
>>>
>>>id key1 key2 key3
>>>想实现批量lookup查询返回一行数据 id value1 value2 value3
>>>
>>>
>>>查了下目前包括jdbc connector在内的lookup都不支持批量查询,所以只能先将多列转成多行分别lookup再将多行转成多列,如下所示
>>>id key1 key2 key3
>>>先将多列转成多行
>>>id key1
>>>id key2
>>>id key3
>>>
>>>分别进行lookup join后得到
>>>id value1
>>>id value2
>>>id value3
>>>最后多行转多列返回一行数据
>>>
>>>id value1 value2 value3
>>>
>>>
>>>上述方案目前我能想到的是通过udtf + udaf来实现,但缺点是不具备通用性。Flink社区打算原生支持么?


flink sql如何实现json字符数据解析?

2023-11-22 文章 casel.chen
输入:

{

  "uuid":"",

  "body_data": 
"[{\"fild1\":1"1231","fild2\":1"2341"},{"fild1\":"abc\","fild2\":"cdf\"}]"

}




输出:

[

  {

"uuid": "",

"body_data: null,

"body_data.fild1": "123”,

"body_data.fild2": "234"

  },

  {

"uuid": "",

"body_data": null,

"body_data.fild1": "abc",

"body_data.fild2": "cdf"

  }

]




当格式错误时




输入:

{

"uuid": "”,

"body_data": "abc"

}

输出:

{

"uuid": "",

"body_data": "abc",

"body_data.fild1": null,

"body_data.fild2": null

}

Re:Re:flink sql支持批量lookup join

2023-11-22 文章 casel.chen
有一张维表 user,包含id和name字段
id  | name
-
1 | zhangsan
2 | lisi
3 | wangwu


现在实时来了一条交易数据 
id  | creator_id  | approver_id  | deployer_id
-
1   | 1| 2   | 3


希望lookup维表user返回各用户名称
id   |  creator_name   |  approver_name  |  deployer_name

1| zhangsan  |  lisi|. wangwu



以上场景用flink sql要如何实现?














在 2023-11-22 12:37:10,"Xuyang"  写道:
>Hi, casel.
>可以对“批量lookup join”再描述详细一点么?看上去是符合一个lookup join里直接带上k1=v1 and k2=v2 and 
>k3=v3的用法的。
>
>
>
>
>--
>
>Best!
>Xuyang
>
>
>
>
>在 2023-11-22 11:55:11,"casel.chen"  写道:
>>一行数据带了三个待lookup查询的key,分别是key1,key2和key3
>>
>>
>>id key1 key2 key3
>>想实现批量lookup查询返回一行数据 id value1 value2 value3
>>
>>
>>查了下目前包括jdbc connector在内的lookup都不支持批量查询,所以只能先将多列转成多行分别lookup再将多行转成多列,如下所示
>>id key1 key2 key3
>>先将多列转成多行
>>id key1
>>id key2
>>id key3
>>
>>分别进行lookup join后得到
>>id value1
>>id value2
>>id value3
>>最后多行转多列返回一行数据
>>
>>id value1 value2 value3
>>
>>
>>上述方案目前我能想到的是通过udtf + udaf来实现,但缺点是不具备通用性。Flink社区打算原生支持么?


退订

2023-11-22 文章 新鹏
退订

Re:退订

2023-11-22 文章 新鹏
退订

















At 2023-10-04 10:06:45, "1"  wrote:
>