上云无忧 > 文档中心 > 天翼云数据治理中心 DataArts Studio 使用教程 - 正则表达式分隔半结构化文本
数据治理中心 DataArts Studio
天翼云数据治理中心 DataArts Studio 使用教程 - 正则表达式分隔半结构化文本

文档简介:
本章节主要介绍正则表达式分隔半结构化文本。 在创建表/文件迁移作业时,对简单CSV格式的文件,CDM可以使用字段分隔符进行字段分隔。但是对于一些复杂的半结构化文本,由于字段值也包含了分隔符,所以无法使用分隔符进行字段分隔,此时可以使用正则表达式分隔。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

在创建表/文件迁移作业时,对简单CSV格式的文件,CDM可以使用字段分隔符进行字段分隔。但是对于一些复杂的半结构化文本,由于字段值也包含了分隔符,所以无法使用分隔符进行字段分隔,此时可以使用正则表达式分隔。

正则表达式参数在源端作业参数中配置,要求源连接为对象存储或者文件系统,且“文件格式”必须选择“CSV格式”。

图 正则表达式参数

在迁移CSV格式的文件时,CDM支持使用正则表达式分隔字段,并按照解析后的结果写入目的端。正则表达式语法请参考对应的相关资料,这里举例下面几种日志文件的正则表达式的写法:

  • Log4J日志
  • Log4J审计日志
  • Tomcat日志
  • Django日志
  • Apache server日志

Log4J日志

  • 日志样例:
2018-01-11 08:50:59,001 INFO 
[org.apache.sqoop.core.SqoopConfiguration.configureClassLoader(SqoopConfigurati
on.java:251)] Adding jars to current classloader from property:复制
  • 正则表达式为:
^(\d. \d)(\w )  [(. )] (\w. ).*复制
  • 解析出的结果如下:

表 Log4J日志解析结果

列号 样值
1 2018-01-11 08:50:59,001
2 INFO
3 org.apache.sqoop.core.SqoopConfiguration.configureClassLoader(SqoopConfiguration.java:251)
4 Adding jars to current classloader from property: org.apache.sqoop.classpath.extra

Log4J审计日志

  • 日志样例:
2018-01-11 08:51:06,156 INFO 
[org.apache.sqoop.audit.FileAuditLogger.logAuditEvent(FileAuditLogger.java:61)] 
user=sqoop.anonymous.user ip=189.xxx.xxx.75 op=show obj=version 
objId=x复制
  • 正则表达式为:
^(\d. \d)(\w )  [(. )] user=(\w. )    ip=(\w. )op=(\w. )    obj=(\w. )objId=(. ).*复制
  • 解析结果如下:

表 Log4J审计日志解析结果

列号 样值
1 2018-01-11 08:51:06,156
2 INFO
3 org.apache.sqoop.audit.FileAuditLogger.logAuditEvent(FileAuditLogger.java:61)
4 sqoop.anonymous.user
5 189.xxx.xxx.75
6 show
7 version
8 x

Tomcat日志

  • 日志样例:
11-Jan-2018 09:00:06.907 INFO [main] 
org.apache.catalina.startup.VersionLoggerListener.log OS Name:           
Linux复制
  • 正则表达式为:
^(\d. \d)(\w ) [(. )] ([\w.] ) (\w.).复制
  • 解析结果如下:

表 Tomcat日志解析结果

列号 样值
1 11-Jan-2018 09:00:06.907
2 INFO
3 main
4 org.apache.catalina.startup.VersionLoggerListener.log
5 OS Name:Linux

Django日志

  • 日志样例:

[08/Jan/2018 20:59:07 ] settings INFO Welcome to Hue 3.9.0

  • 正则表达式为:

^(. ) (\w ) (.).

  • 解析结果如下:

表 Django日志解析结果

列号 样值
1 08/Jan/2018 20:59:07
2 settings
3 INFO
4 Welcome to Hue 3.9.0

Apache server日志

  • 日志样例:

[Mon Jan 08 20:43:51.854334 2018] [mpm_event:notice] [pid 36465:tid 140557517657856]

AH00489: Apache/2.4.12 (Unix) OpenSSL/1.0.1t configured -- resuming normal operations

  • 正则表达式为:

^[(. )][(. )] [(. )] (. ).*

  • 解析结果如下:

表 Apache server日志解析结果

列号 样值
1 Mon Jan 08 20:43:51.854334 2018
2 mpm_event:notice
3 pid 36465:tid 140557517657856
4 AH00489: Apache/2.4.12 (Unix) OpenSSL/1.0.1t configured -- resuming normal operations
相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部