我是靠谱客的博主 鳗鱼鼠标,最近开发中收集的这篇文章主要介绍Flink日志清洗案例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

package com.cnic.flink.log.coding;
import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.Map;
public class ContactsEntity {
public static String LOG = "00:00:05 INFO
[tid:2607,Q:W183CWbcBewrShAYJOeH] [L-Android]func=pab:searchContacts,remote=36.112.177.184,sid=MAjPokddpVqxNTlAEpGtrvLHtVyREizO,user=caizhuang19@mails.ucas.ac.cn,requestVar={funcId:'pab:searchContacts'},result=S_OK,resultVar=[],reqTime=0,opTime=4,respTime=1,requestURL=https://mail.cstnet.cn/coremail/s/json";
public static void main(String[] args) {
LOG = LOG.substring(LOG.indexOf("pab"));
String[] ids = LOG.split(",");
Map<String, Object> map = new HashMap<String, Object>();
for (String log : ids) {
map = convertLog(map, log);
}
System.out.println(JSON.toJSONString(map));
}
/**
* 日志处理 及 内嵌处理
*
* @param map
* @param log
* @return
*/
public static Map<String, Object> convertLog(Map<String, Object> map, String log) {
//内嵌处理
if (log.contains("{")) {
String log1 = log.substring(log.indexOf("{") + 1, log.indexOf("}"));
Map<String, Object> map1 = convertLog(new HashMap<String, Object>(), log1);
map.put(log.split("=")[0], map1);
// 是否属于内嵌 ?
} else if (log.contains("'")) {
String log1 = log.substring(log.indexOf("'") + 1, log.lastIndexOf("'"));
Map<String, Object> map1 = convertLog(new HashMap<String, Object>(), log1);
map.put(log.split(":")[0], map1);
// 跳过 http 的链接
} else if (log.contains(":") && !log.contains("//")) {
String[] logContent = log.split(":");
map.put(logContent[0], logContent[1]);
} else if (log.contains("=")) {
String[] logContent = log.split("=");
map.put(logContent[0], logContent[1]);
}
return map;
}
}

最后

以上就是鳗鱼鼠标为你收集整理的Flink日志清洗案例的全部内容,希望文章能够帮你解决Flink日志清洗案例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部