Simple Log Service (SLS) は、プロジェクト内のクロス Logstore クエリ、および Logstore と MySQL データベースまたは OSS バケット間の結合をサポートします。
構文
SELECT table.key
FROM table1
INNER|LEFT|RIGHT|FULL OUTER JOIN table2
ON table1.key=table2.key
SLS は、SELECT 文で内部結合、LEFT JOIN、RIGHT JOIN、完全外部結合をサポートします。詳細については、MySQL の JOIN リファレンスをご参照ください。
|
JOIN 構文 |
説明 |
|
内部結合 |
両方のテーブルで結合条件に一致する行のみを返します。 |
|
LEFT JOIN |
左側テーブル (table1) のすべての行を返します。右側テーブル (table2) に一致する行が存在しない場合でも返します。 |
|
RIGHT JOIN |
右側テーブル (table2) のすべての行を返します。左側テーブル (table1) に一致する行が存在しない場合でも返します。 |
|
完全外部結合 |
いずれかのテーブルに一致する行がある場合に、行を返します。 |
パラメーター
|
パラメーター |
説明 |
|
key |
ログフィールドまたは式。任意のデータ型をサポートします。 |
|
table |
table1 は Logstore です。table2 は、Logstore、MySQL データベース、または OSS バケットを指定できます。Simple Log Service (SLS) と MySQL データベースの関連付け。Simple Log Service (SLS) と OSS バケットの関連付け。 |
例
以下の例では、同じプロジェクト内の 2 つの Logstore (internal-diagnostic_log (消費レイテンシー、アラート、収集データ) と internal-operation_log (プロジェクトリソースの操作ログ)) を結合します。これらのクエリは、コンシューマーグループ、レイテンシー、リクエストメソッドを取得します。
例 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 行を返します。
結果には、consumer_group、logstore、Latency、Method の 4 つの列が含まれます。サンプル値: consumer_group
etl-cf43c82162ac3ca60a906ebec4c6b87b、logstorewebsite_log、MethodPullData、Latency 513、591、465。
例 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 行を返します。
結果には、consumer_group、logstore、Latency、Method の 4 つの列が含まれます。Method の値には、ConsumerGroupHeartBeat と PullData が含まれます。
例 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 行を返します。
結果には、consumer_group、logstore、Latency、Method の 4 つの列が含まれます。consumer_group と logstore の NULL 値は、左側テーブルに一致する行がないことを示します。Method は PostLogStoreLogs で、Latency の値はさまざまです。
例 4: FULL OUTER 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 行を返します。
結果には、consumer_group、logstore、Latency、Method の 4 つの列が含まれます。一致した行と、consumer_group および logstore の値が NULL である行の両方が含まれます。一致しない行では、Method に PostLogStoreLogs が表示されます。