Splunk Search
Highlighted

search using join command

Contributor

Hello,

I want to combine two different searches and each different field by using join command.
However, I always get "No Results" whatever I tried.
Please give me some advice.

Thank you.


joinコマンドを利用して二つのサーチを繋げ、それぞれにある違うフィールドを掛け合わせたいのですが、上手くいきません。
それぞれのデータ量が重いため、collect indexでインデックスを作成しながらやっても駄目でした。
joinコマンドの正しい使い方をご教授下さい。

index=A sourcetype=logs source!=XXX.csv id=1234 name=* | stats count by id number | join [search index=tarot | table number name maintype2] | stats count by id name maintype2 number | sort - count | head 20

common field => number

Tags (3)
0 Karma
Highlighted

Re: search using join command

Contributor

Hi appleman

I guess you need to mention the common field when using join something like this:

index=A sourcetype=logs
source!=XXX.csv id=1234 name=* | stats
count by id number | join number
[search index=tarot | table number
name maintype2] | stats count by id
name main
type2 number | sort - count
| head 20

Highlighted

Re: search using join command

Contributor

I've tried this, but it turned out to be no result.

0 Karma
Highlighted

Re: search using join command

Path Finder

Do the main and subsearch both return the expected results when run separately?

0 Karma
Highlighted

Re: search using join command

Champion

こんにちは。サーチ文だけからみると以下のような動きですがこれは求めている動きですか?

メインサーチ:id(1234)、number、count
サブサーチ: number、name、maintype2
をnumberでJOINすると結果はnumberが一致するデータのみ(デフォルト)になります。
id(1234固定)、(一致した)number、count、(サブサーチの)name、(サブサーチの)main
type2

これをstats count by id name maintype2 number しているので
id(1234固定)、(サブサーチの)name、(サブサーチの)main
type2、(一致した)number
となり、結果はサブサーチの値のみで、メインサーチはサブサーチのデータからnumberが一致しないデータを除外するために使われているだけになります。

Highlighted

Re: search using join command

Contributor

メインとサブサーチのnameは違うフィールドになります。従って結果として求めているものは、(メイン)nameに対するid、(サブ)name、main_type2、(一致した)numberになります。

0 Karma
Highlighted

Re: search using join command

Champion

JOINの場合同じフィールド名はサブサーチの値で上書きです。どちらかをリネームする必要があります。このサーチは | stats count by id number の部分でメインサーチ側のnameはなくなってます。

0 Karma
Highlighted

Re: search using join command

Contributor

サブサーチの値で上書きされる旨、認識しておらず勉強になりました。ありがとうございます。ただこちらの事情により、実際のサーチとはフィールド名を変えてAnswersに掲載させて頂いているのですが、実際のサーチでは、nameのフィールドはそれぞれ別々のフィールド名が与えてあります。
idは値を指定しているので、固定になりますでしょうか。

0 Karma
Highlighted

Re: search using join command

Champion

サブサーチの結果にidが存在しないので、idはメインサーチで指定されたidでかつサブサーチとnumberが一致するものとなります。メインサーチの| stats count by id number の部分でメインサーチ側のnameはなくなっているので気をつけて下さい。

また、サブサーチを使うことでパフォーマンスがでないようなら、メインサーチで両方抽出してstatsでひとつにまとめるようなこともできると思います。

0 Karma
Highlighted

Re: search using join command

Champion

テストしてませんが、statsを使った例です。

(index=A sourcetype=logs source!=XXX.csv id=1234) OR (index=tarot)
|stats dc(index) as idxcnt,first(subname) as name,first(maintype2) as maintype2 by id,number
|where idxcnt=2
|stats count by id,name,main
type2,number | sort - count | head 20

0 Karma