AWS Athenaを活用して様々なログファイルを処理するプロジェクトが始まります。私の目標は、イベント相関のログ・ファイルを使用することです。そのため、単一のSQL文から、指定された時間範囲内の複数の表からデータを選択して表示する方法を見つける必要があります。ここで私が達成しようとしているものの例である:ここではAthena/Prestoを使用して1つのテーブル内の日付範囲によって制限された複数のテーブルからSQLデータを返す
scada.timestamp process.eventid scada.srcaddr process.requestid scada. action
2017-03-16T07:25:46.000Z c148e2ce-8500-467a-a970-ef1d43dd4aea 172.31.25.225 032bfafb-e8a3-4c06-a2dc-fa740abc135 ACCEPT
2017-03-16T07:25:46.000Z 8cc8143a-cf55-4db3-b112-0ff7f268edd0 172.31.25.225 f413e138-9445-408f-8124-ee6c33229889 ACCEPT
は、2つのテーブルからのデータのサンプルです:
表1:
SELECT eventtime, requestid, eventid FROM process_native limit 10;
eventtime requestid eventid
2016-05-07T08:57:37Z 032bfafb-e8a3-4c06-a2dc-fa740abc135c c148e2ce-8500-467a-a970-ef1d43dd4aea
2016-05-07T08:57:37Z f413e138-9445-408f-8124-ee6c33229889 8cc8143a-cf55-4db3-b112-0ff7f268edd0
表2:
SELECT tstart, srcaddr, action FROM scada_raw limit 10;
tstart srcaddr action
1489509010 139.59.39.211 REJECT
1489509010 172.31.20.111 ACCEPT
表2は時間をu更新時間と
表2:物事を少し複雑にNIX時間が、私はそう、私はで動作するように、共通の時刻形式を持っていることを変換する必要があり
SELECT to_iso8601(from_unixtime(tstart)) as timestamp, srcaddr, action FROM scada_raw limit 10;
timestamp srcaddr action
2017-03-16T07:25:46.000Z 172.31.25.225 ACCEPT
2017-03-16T07:25:46.000Z 172.31.25.225 ACCEPT
率直に言って、私は考えていますここでは、この:) については移動する方法を私が考えたクエリがある、それだけの時間外:
SELECT process_native.eventid,
process_native.requestid,
scada_raw.srcaddr,
scada_raw.action,
FROM process_native, scada_raw
WHERE scada_rawe.eventtime >= '2017-02-17T00:00:00Z'
AND scada_raw.eventtime < '2017-03-20T00:00:00Z'
私は本当にどこ3のすべてのSQLで、私が取り組んできた次に行きかわかりません今日、そして今私の向こう側には方法があります。私の目標は達成可能ですか?
ありがとうございました!
例が明確でない –
2つのテーブルは互いにどのように関連していますか? – Kevin
申し訳ありませんが、私には意味がありましたが、私はそれを書いたからです:私はイベントを相関させるために探しています.2つのテーブルはイベント時間以外は共通点がなく、100% 。私が後にしていることは達成できないかもしれませんが、それが本当であるかどうかはわかりません。私は時間枠を指定し、両方の表からその時間枠内にあるすべてのデータを戻したいとします。たとえば、scadaデータからエラーが報告された場合、イベント期間中に取得されたscadaおよびプロセスログのすべてのデータをまとめてみたいと思います。 –