java数据转换抽取工具,mumu-morphlines 数据转化工具

mumu-morphlines是一款用于数据转换的工具,它能够实现数据的抽取、转换和加载(ETL),适用于日志数据等非结构化数据的处理。此工具可以与flume、hadoop和solr等技术结合使用,将非结构化数据转换为结构化数据并存储在solr中以供检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mumu-morphlines 数据转化工具

mumu-morphlines是一个kite morphlines测试程序,主要通过这个项目来了解和学习kite morphlines的使用方式和工作原理。morphlines是一款数据转换工具集,可以通过morphlines 来抽取、转换、加载(ETL)数据,列如可以抽取日志数据。同时morphlines可以配合flume、hadoop、solr来将非结构化的数据转换为结构化的数据,并且将数据保存在solr中供客户端进 行检索使用。

kite Morphline

Kite Morphline是一个Morphline版本,将Morphline应用到除Search外的数据处理中,发布了丰富的库、工具、样例、文档。 Kite Morphline支持

Flumeevents,

HDFSfiles,

SparkRDDs,

RDBMStables

Avroobjects

已经应用到Crunch、HBase、Impala、Pig、Hive、Sqoop等

Morphline重要概念

Commands are plugins to a morphline that perform tasks such as loading, parsing, transforming, or otherwise processing a single record.

Record is an in-memory data structure of name-value pairs (Record)with optional blob attachments or POJO attachments.

morphine工作流程

morphine在hadoop家族地位

Morphline案列

Morphline配置文件

morphlines: [

{

id: morphline1

importCommands: ["org.kitesdk.**", "org.apache.solr.**"]

commands: [

{

readLine {

charset: UTF-8

}

}

{

grok {

dictionaryFiles: [src/test/resources/grok-dictionaries]

expressions: {

message: """%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:hostname} %{DATA:program}(?:\[%{POSINT:pid}\])?: %{GREEDYDATA:msg}"""

}

}

}

{

convertTimestamp {

field: timestamp

inputFormats: ["yyyy-MM-dd'T'HH:mm:ss'Z'", "MMM d HH:mm:ss"]

inputTimezone: America/Los_Angeles

outputFormat: "yyyy-MM-dd HH:mm:ss"

outputTimezone: UTC

}

}

{logInfo {format: "output record: {}", args: ["@{}"]}}

]

}

]

Morphline测试代码

@Test

public void sysLogTest() {

MorphlineContext context = new MorphlineContext.Builder().build();

File configFile = new File(BasicMorphlineTest.class.getResource("/morphlines/syslog.conf").getPath());

Command morphline = new Compiler().compile(configFile, null, context, null);

Record record = new Record();

record.put(Fields.ATTACHMENT_BODY, BasicMorphlineTest.class.getResourceAsStream("/log/syslog.log"));

boolean process = morphline.process(record);

System.out.println(process);

}

相关阅读

联系方式

以上观点纯属个人看法,如有不同,欢迎指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值