机器数据分析平台

  • 机器数据分析平台 > 产品手册 > SPL参考手册 > join

    join

    最近更新时间:2019-08-22 20:51:48

    join 命令通过关联查询返回分析结果,两个查询结果须至少有一个共同字段。

    语法:

    join [join-options...][field-list] subsearch
    

    参数说明:

    • subsearch:被关联的查询语句,需用[ ]括起来。

    • join-options:可选字段,执行的连接类型,默认值为 type=inner。

      • type=inner:返回关联成功的数据,即如果关联字段的值既存在于当前搜索,又存在于被关联搜索,才返回该数据。
      • type=left:返回当前搜索的所有数据以及被关联搜索匹配成功的数据,对于关联失败的数据,同样返回被关联搜索的字段,但是值为 null。
      • type=diff:返回当前搜索中关联失败的数据。

    • field-list:可选参数,用于关联查询的字段,可指定多个字段。如果未指定字段,则使⽤两个结果集的所有公共字段。

    用法示例:

    1.关联用户登陆数据与用户信息分析,原始日志如下:

    _time uid loginIp
    2019-01-01 08:00:00 1 <ip1>
    2019-01-02 08:00:00 2 <ip2>
    2019-01-02 09:00:00 1 <ip2>
    2019-01-02 09:00:00 3 <ip3>

    被关联数据如下:

    uid username
    1 john
    2 mike
    sourcetype="login" | join type=left uid [ search sourcetype="username" ]
    

    返回如下:

    _time uid loginIp username
    2019-01-02 09:00:00 1 <ip2> john
    2019-01-02 09:00:00 3 <ip3> null
    2019-01-02 08:00:00.000 2 <ip2> mike
    2019-01-01 08:00:00.000 1 <ip1> john
    sourcetype="login" |  join type=inner uid [ search sourcetype="username" ] 
    

    返回如下:

    _time uid loginIp username
    2019-01-02 09:00:00 1 <ip2> john
    2019-01-02 08:00:00.000 2 <ip2> mike
    2019-01-01 08:00:00.000 1 <ip1> john
    sourcetype="login" | join type=diff uid [ search sourcetype="username" ]
    

    返回如下:

    _time uid loginIp
    2019-01-02 09:00:00 3 <ip3>

    2.如果两种数据源中的字段名不匹配,您可以重命名⼦搜索结果集中的对应字段。

    原始日志如下:

    _time uid loginIp
    2019-01-01 08:00:00 1 <ip1>
    2019-01-02 08:00:00 2 <ip2>
    2019-01-02 09:00:00 1 <ip2>
    2019-01-02 09:00:00 3 <ip3>

    被关联数据如下:

    id username
    1 john
    2 mike

    用登陆数据的 uid 和 用户信息的 id 关联,须 rename id 字段为 uid。

    sourcetype="login" | join type=left uid [ search sourcetype="username"  | rename id as uid  ]
    

    返回如下:

    _time uid loginIp username
    2019-01-02 09:00:00 1 <ip2> john
    2019-01-02 09:00:00 3 <ip3> null
    2019-01-02 08:00:00.000 2 <ip2> mike
    2019-01-01 08:00:00.000 1 <ip1> john
    以上内容是否对您有帮助?
  • Icon helper
    Icon free helper
    Close