<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Join similar fields in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688173#M234652</link>
    <description>&lt;P&gt;My current search is something like&amp;nbsp;this:&lt;/P&gt;&lt;P&gt;(index=1 sourcetype="x") OR (index=2 sourcetype="y" "some extra filters") "*(a name like RU3NDS just for testing but there are many like this one)*"&lt;BR /&gt;| eval joined_name = upper(coalesce(NAME, name))&amp;nbsp;&lt;/P&gt;&lt;P&gt;NAME(upper) is from the index 1, and name(lower) from index 2&lt;/P&gt;&lt;P&gt;and this gave me table like this:&lt;/P&gt;&lt;TABLE border="1" width="98.04738176325036%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;joined_name&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;others values from index 1&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;others values from index 2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;&lt;SPAN&gt;H-RU3NDS_DAT_CDSD231_01&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%" height="21px"&gt;&lt;SPAN&gt;H-RU3NDS_DAT_CDSD231_02&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="21px"&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="21px"&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;&lt;SPAN&gt;RU3NDS&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;...&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;The first two values are from index number 2 and the third is from index number 1&lt;/P&gt;&lt;P&gt;And I need to join this first column as a unique value like RU3NDS, I've tried rex command too, but didn't work&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 21 May 2024 14:19:51 GMT</pubDate>
    <dc:creator>ViniciusMariano</dc:creator>
    <dc:date>2024-05-21T14:19:51Z</dc:date>
    <item>
      <title>Join similar fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688014#M234619</link>
      <description>&lt;P&gt;Hey guys, I'm having trouble joining two datasets with similar values&lt;/P&gt;&lt;P&gt;I'm trying to join two datasets, both have a common "name" field, but the one on the left has the correct value and the one on the right has this pattern: left dataset name field + some characters&lt;/P&gt;&lt;P&gt;e.g.:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="50%"&gt;left dataset name&lt;/TD&gt;&lt;TD width="50%"&gt;right dataset name&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="50%"&gt;RU3NDS&lt;/TD&gt;&lt;TD width="50%"&gt;&lt;SPAN&gt;RU3NDS_sdsavdg_SoKdsVI3&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there any way to use a wildcard when joining?&lt;/P&gt;</description>
      <pubDate>Mon, 20 May 2024 12:38:25 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688014#M234619</guid>
      <dc:creator>ViniciusMariano</dc:creator>
      <dc:date>2024-05-20T12:38:25Z</dc:date>
    </item>
    <item>
      <title>Re: Join similar fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688018#M234620</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/256150"&gt;@ViniciusMariano&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;if the structure of the right dataset name is always the same, e.g. :&lt;/P&gt;&lt;P&gt;left_dataset_name + _ + other,&lt;/P&gt;&lt;P&gt;you could extract the common part using a regex:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;your_search&amp;gt;
| rex field=right_dataset_name "^(?&amp;lt;left_dataset_name&amp;gt;[^_]+)"
| stats 
     values(right_dataset_name) AS right_dataset_name
     count 
     BY right_dataset_name
| table left_dataset_name right_dataset_name&lt;/LI-CODE&gt;&lt;P&gt;I would suppose that you used the join concept and not the use of the join command, that should be avoided because it's very slow and expensive for the system resources.&lt;/P&gt;&lt;P&gt;Ciao.&lt;/P&gt;&lt;P&gt;Giuseppe&lt;/P&gt;</description>
      <pubDate>Mon, 20 May 2024 12:49:28 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688018#M234620</guid>
      <dc:creator>gcusello</dc:creator>
      <dc:date>2024-05-20T12:49:28Z</dc:date>
    </item>
    <item>
      <title>Re: Join similar fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688086#M234634</link>
      <description>&lt;P&gt;An alternative to regex is to use &lt;A href="https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/ConditionalFunctions#coalesce.28.26lt.3Bvalues.26gt.3B.29" target="_blank" rel="noopener"&gt;coalesce&lt;/A&gt;. &amp;nbsp;For example,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| foreach RU3NDS_*
    [eval RU3NDS = coalesce(RU3NDS, &amp;lt;&amp;lt;FIELD&amp;gt;&amp;gt;)]&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/161352"&gt;@gcusello&lt;/a&gt;&amp;nbsp;mentioned, if you intend to use join command, consider stats or another method instead. &amp;nbsp;For example,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| foreach RU3NDS_*
    [eval RU3NDS = coalesce(RU3NDS, &amp;lt;&amp;lt;FIELD&amp;gt;&amp;gt;)]
| fields - RU3NDS_*
| stats values(*) as * dc(*) as dc_* by RU3NDS&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a complete emulation to illustrate how to correlate without using join command:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults format=csv data="RU3NDS, left_data_var
foo1, leftbar1
foo2, leftbar1
foo1, leftbar2
foo3, leftbar3"
| append
    [makeresults format=csv data="RU3NDS_abcd, right_data_var
foo1, rightbar1
foo2, rightbar3
foo1, rightbar2
foo3, rightbar1"]
| append 
    [makeresults format=csv data="RU3NDS_efgh, right_data_var
foo1, rightbar3
foo2, rightbar1
foo1, rightbar3
foo3, rightbar2"]
``` data emulation above ```
| foreach RU3NDS_*
    [eval RU3NDS = coalesce(RU3NDS, &amp;lt;&amp;lt;FIELD&amp;gt;&amp;gt;)]
| fields - RU3NDS_*
| stats values(*) as * dc(*) as dc_* by RU3NDS&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;RU3NDS&lt;/TD&gt;&lt;TD&gt;dc_left_data_var&lt;/TD&gt;&lt;TD&gt;dc_right_data_var&lt;/TD&gt;&lt;TD&gt;&lt;DIV class=""&gt;left_data_var&lt;/DIV&gt;&lt;/TD&gt;&lt;TD&gt;&lt;DIV class=""&gt;right_data_var&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;foo1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;&lt;DIV class=""&gt;leftbar1&lt;/DIV&gt;&lt;DIV class=""&gt;leftbar2&lt;/DIV&gt;&lt;/TD&gt;&lt;TD&gt;&lt;DIV class=""&gt;rightbar1&lt;/DIV&gt;&lt;DIV class=""&gt;rightbar2&lt;/DIV&gt;&lt;DIV class=""&gt;rightbar3&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;foo2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;leftbar1&lt;/TD&gt;&lt;TD&gt;&lt;DIV class=""&gt;rightbar1&lt;/DIV&gt;&lt;DIV class=""&gt;rightbar3&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;foo3&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;leftbar3&lt;/TD&gt;&lt;TD&gt;&lt;DIV class=""&gt;rightbar1&lt;/DIV&gt;&lt;DIV class=""&gt;rightbar2&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 20 May 2024 21:20:28 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688086#M234634</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2024-05-20T21:20:28Z</dc:date>
    </item>
    <item>
      <title>Re: Join similar fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688173#M234652</link>
      <description>&lt;P&gt;My current search is something like&amp;nbsp;this:&lt;/P&gt;&lt;P&gt;(index=1 sourcetype="x") OR (index=2 sourcetype="y" "some extra filters") "*(a name like RU3NDS just for testing but there are many like this one)*"&lt;BR /&gt;| eval joined_name = upper(coalesce(NAME, name))&amp;nbsp;&lt;/P&gt;&lt;P&gt;NAME(upper) is from the index 1, and name(lower) from index 2&lt;/P&gt;&lt;P&gt;and this gave me table like this:&lt;/P&gt;&lt;TABLE border="1" width="98.04738176325036%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;joined_name&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;others values from index 1&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;others values from index 2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;&lt;SPAN&gt;H-RU3NDS_DAT_CDSD231_01&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%" height="21px"&gt;&lt;SPAN&gt;H-RU3NDS_DAT_CDSD231_02&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="21px"&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="21px"&gt;...&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;&lt;SPAN&gt;RU3NDS&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;...&lt;/TD&gt;&lt;TD width="33.333333333333336%" height="24px"&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;The first two values are from index number 2 and the third is from index number 1&lt;/P&gt;&lt;P&gt;And I need to join this first column as a unique value like RU3NDS, I've tried rex command too, but didn't work&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 May 2024 14:19:51 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688173#M234652</guid>
      <dc:creator>ViniciusMariano</dc:creator>
      <dc:date>2024-05-21T14:19:51Z</dc:date>
    </item>
    <item>
      <title>Re: Join similar fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688234#M234663</link>
      <description>&lt;P&gt;Sorry I didn't realize the string of interest was in value. (There was a big discussion about field name recently.) &amp;nbsp;If so, regex is appropriate. &amp;nbsp;This should work&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| eventstats values(name) as left_name
| eval match_name = mvmap(left_name, mvappend(match_name, if(match(NAME, "^(.+_)*" . left_name . "_"), left_name, null())))
| eval joined = coalesce(name, match_name)
| fields - *name NAME
| stats values(*) as * by joined&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here I use &lt;FONT face="courier new,courier"&gt;joined&lt;/FONT&gt; instead of &lt;FONT face="courier new,courier"&gt;joined_name&lt;/FONT&gt; just to make field cleanup easier. &amp;nbsp;Here is some mock data:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;NAME&lt;/TD&gt;&lt;TD&gt;left_data_var&lt;/TD&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;TD&gt;right_data_var&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;leftbar1&lt;/TD&gt;&lt;TD&gt;RU3NDS&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;leftbar1&lt;/TD&gt;&lt;TD&gt;SOMETHING&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;leftbar2&lt;/TD&gt;&lt;TD&gt;ELSE&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;RU3NDS_abcd&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;rightbar1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;RU3NDS_efgh&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;rightbar3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A_SOMETHING_abcd&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;rightbar2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;SOMETHING_efgh&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;rightbar1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ELSE_bcde&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;rightbar2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A_RU3NDS_cdef&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;rightbar3&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;The result is&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;joined&lt;/TD&gt;&lt;TD&gt;left_data_var&lt;/TD&gt;&lt;TD&gt;right_data_var&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ELSE&lt;/TD&gt;&lt;TD&gt;leftbar2&lt;/TD&gt;&lt;TD&gt;rightbar2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;RU3NDS&lt;/TD&gt;&lt;TD&gt;leftbar1&lt;/TD&gt;&lt;TD&gt;&lt;DIV class=""&gt;rightbar1&lt;/DIV&gt;&lt;DIV class=""&gt;rightbar3&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;SOMETHING&lt;/TD&gt;&lt;TD&gt;leftbar1&lt;/TD&gt;&lt;TD&gt;&lt;DIV class=""&gt;rightbar1&lt;/DIV&gt;&lt;DIV class=""&gt;rightbar2&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;It is really important to illustrate data and desired output when asking a data analytics question. &amp;nbsp;You could have saved everyone lots of time guessing.&lt;/P&gt;&lt;P&gt;This is a full emulation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults format=csv data="name, left_data_var
RU3NDS, leftbar1
SOMETHING, leftbar1
ELSE, leftbar2"
| append
    [makeresults format=csv data="NAME, right_data_var
RU3NDS_abcd, rightbar1
RU3NDS_efgh, rightbar3
A_SOMETHING_abcd, rightbar2
SOMETHING_efgh, rightbar1
ELSE_bcde, rightbar2
A_RU3NDS_cdef, rightbar3"]
``` data emulation above ```
| eventstats values(name) as left_name
| eval match_name = mvmap(left_name, mvappend(match_name, if(match(NAME, "^(.+_)*" . left_name . "_"), left_name, null())))
| eval joined = coalesce(name, match_name)
| fields - *name NAME
| stats values(*) as * by joined&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 03:50:42 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688234#M234663</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2024-05-22T03:50:42Z</dc:date>
    </item>
    <item>
      <title>Re: Join similar fields</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688349#M234681</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/256150"&gt;@ViniciusMariano&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;good for you, see next time!&lt;/P&gt;&lt;P&gt;Ciao and happy splunking&lt;/P&gt;&lt;P&gt;Giuseppe&lt;/P&gt;&lt;P&gt;P.S.: Karma Points are appreciated by all the contributors &lt;span class="lia-unicode-emoji" title=":winking_face:"&gt;😉&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 22 May 2024 14:07:21 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Join-similar-fields/m-p/688349#M234681</guid>
      <dc:creator>gcusello</dc:creator>
      <dc:date>2024-05-22T14:07:21Z</dc:date>
    </item>
  </channel>
</rss>

