SQL文でJOIN句を指定して、複数のテーブルを結合できます。 Simple Log Serviceを使用すると、同じプロジェクトの異なるLogstoreに保存されているデータを結合できます。 Logstoreに保存されているデータを、MySQLデータベースに保存されているデータまたはObject Storage Service (OSS) バケットに保存されているデータと結合することもできます。 このトピックでは、JOIN句の構文について説明し、JOIN句の使用方法の例を示します。
構文
SELECT table.key
FROM table1
INNER|LEFT|RIGHT|FULL OUTER JOIN table2
ON table1.key=table2.key
Simple Log Serviceでは、SELECTステートメントでINNER JOIN、LEFT JOIN、RIGHT JOIN、およびFULL JOIN句を使用できます。 詳細については、「JOIN」をご参照ください。
JOIN構文 | 説明 |
INNER JOIN | 2つのテーブルから、SELECTステートメントで指定された条件を満たすデータの一致する行のみを返します。 |
LEFT JOIN | 右のテーブル (table2) に一致する行が存在しない場合でも、左のテーブル (table1) からSELECT文で指定された条件を満たすデータのすべての行を返します。 |
RIGHT JOIN | 左側のテーブル (table1) に一致する行が存在しない場合でも、右側のテーブル (table2) からSELECTステートメントで指定された条件を満たすデータのすべての行を返します。 |
FULL JOIN | テーブルに一致する行が含まれている場合、SELECTステートメントで指定された条件を満たすデータの行を返します。 |
パラメーター
パラメーター | 説明 |
キー | ログフィールドまたは式。 このパラメーターの値は、任意のデータ型にすることができます。 |
テーブル | table1はLogstoreです。 table2には、Logstore、MySQLデータベース、またはOSSバケットを指定できます。 詳細については、「Simple Log ServiceとMySQLデータベースの関連付け」および「Simple Log ServiceとOSSバケットの関連付け」をご参照ください。 |
例
internal-diagnostic_log Logstoreは、プロジェクト内の各Logstoreの消費遅延、アラート、ログ収集情報などの情報を記録するために使用されます。 internal-operation_log Logstoreは、プロジェクト内のすべてのリソースで実行される操作を記録するために使用されます。 JOIN句を使用して、2つのLogstoreからログデータを照会し、プロジェクト内の各Logstoreのコンシューマグループ、消費遅延、およびリクエストメソッドに関する情報を取得できます。
例1: INNER JOIN
クエリ文
* | SELECT "internal-diagnostic_log".consumer_group, "internal-diagnostic_log".logstore, "internal-operation_log".Latency, "internal-operation_log".Method FROM "internal-diagnostic_log" INNER JOIN "internal-operation_log" ON "internal-diagnostic_log".logstore = "internal-operation_log".logstore LIMIT 10000
クエリおよび分析の結果
この例では、指定された条件を満たす1,328行のデータが返されます。
例2: LEFT JOIN
クエリ文
* | SELECT "internal-diagnostic_log".consumer_group, "internal-diagnostic_log".logstore, "internal-operation_log".Latency, "internal-operation_log".Method FROM "internal-diagnostic_log" LEFT JOIN "internal-operation_log" ON "internal-diagnostic_log".logstore = "internal-operation_log".logstore LIMIT 10000
クエリおよび分析の結果
この例では、internal-diagnostic_log Logstoreの1,328行のデータが返されます。
例3: RIGHT JOIN
クエリ文
* | SELECT "internal-diagnostic_log".consumer_group, "internal-diagnostic_log".logstore, "internal-operation_log".Latency, "internal-operation_log".Method FROM "internal-diagnostic_log" RIGHT JOIN "internal-operation_log" ON "internal-diagnostic_log".logstore = "internal-operation_log".logstore LIMIT 10000
クエリおよび分析の結果
この例では、internal-operation_log Logstoreの1,757行のデータが返されます。
例4: FULL JOIN
クエリ文
* | SELECT "internal-diagnostic_log".consumer_group, "internal-diagnostic_log".logstore, "internal-operation_log".Latency, "internal-operation_log".Method FROM "internal-diagnostic_log" FULL OUTER JOIN "internal-operation_log" ON "internal-diagnostic_log".logstore = "internal-operation_log".logstore LIMIT 10000
クエリおよび分析の結果
この例では、指定された条件を満たす1,757行のデータが返されます。