使用Flink处理kafka中的数据,并分发至ods_mall_log和ods_mall_data的数据并进行相应的数据统计计算(使用ProcessTime)踩坑记录

使用Flink消费Kafka中topic为ods_mall_data的数据,根据数据中不同的表将数据分别分发至kafka的DWD层的fact_order_masterfact_order_detail的Topic中(只获取data的内容,具体的内容格式考生请自查),其他的表则无需处理,其中请对进入到fact_order_master的内容进行排序,同时迟到容忍度设置为2分钟;

因为要将数据分发至不同topic中,我们可以建立这两个样例类,1.重点

modified_time这个时间字段不要用timestamp类型,否则会出现

Gson解析不出来的现象

所以我改成了String类型,就此解决了

  case class order_master(order_id: Int, order_sn: String, customer_id: Int, shipping_user: String, province: String, city: String, address: String, order_source: Int, payment_method: Int, order_money: Double, district_money: Double, shipping_money: Double, payment_money: Double, shipping_comp_name: String, shipping_sn: String, create_time: String, shipping_time: String, pay_time: String, receive_time: String, order_status: String, order_point: Int, invoice_title: String, modified_time: String)
  case class order_detail(order_detail_id: Int, order_sn: String, product_id: Int, product_name: String, product_cnt: Int, product_price: Double, average_cost: Double, weight: Double, fee_money: Double, w_id: Int, create_time: String, modified_time: String)

2.重点:解析这种json数据类型的数据时

由于他json数据中,还包了一个json格式的数据(就是这个data),所以构建这个样例类的时候data类型要用JsonObject(Gson包下的,别导错了!)

  case class KafakaData(database: String, table: String, @SerializedName("type") typeOf: String, ts: Long, xid: Long, commit: Boolean, data: JsonObject)

其中@SerializedName("type") typeOf :String 这句是因为原数据中有个key值为“type”,但是这是个关键字,所以用typeOf来替换!

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zyoy大数据机器学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值