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