La clause JOIN combine les lignes de plusieurs tables. SLS prend en charge les jointures entre plusieurs Logstores au sein d'un même projet, ainsi que les jointures entre un Logstore et une base de données MySQL ou un bucket OSS.
Syntaxe
SELECT table.key
FROM table1
INNER|LEFT|RIGHT|FULL OUTER JOIN table2
ON table1.key=table2.key
SLS prend en charge les clauses INNER JOIN, LEFT JOIN, RIGHT JOIN et FULL JOIN dans les instructions SELECT, comme décrit dans la documentation MySQL relative à la clause JOIN.
|
Syntaxe JOIN |
Description |
|
INNER JOIN |
Renvoie uniquement les lignes satisfaisant la condition de jointure dans les deux tables. |
|
LEFT JOIN |
Renvoie toutes les lignes de la table de gauche (table1), même s'il n'existe aucune ligne correspondante dans la table de droite (table2). |
|
RIGHT JOIN |
Renvoie toutes les lignes de la table de droite (table2), même s'il n'existe aucune ligne correspondante dans la table de gauche (table1). |
|
FULL JOIN |
Renvoie les lignes dès qu'une correspondance existe dans l'une ou l'autre des tables. |
Paramètres
|
Paramètre |
Description |
|
key |
Champ de journal ou expression. Tous les types de données sont pris en charge. |
|
table |
table1 est un Logstore. table2 peut être un Logstore, une base de données MySQL ou un bucket OSS. Pour plus d'informations, consultez les rubriques Associer Simple Log Service à une base de données MySQL et Associer Simple Log Service à un bucket OSS. |
Exemples
Les exemples suivants illustrent la jointure de deux Logstores au sein du même projet : internal-diagnostic_log (latence de consommation, alertes et données de collecte) et internal-operation_log (journaux d'opération pour les ressources du projet). Les requêtes récupèrent les groupes de consommateurs, la latence et les méthodes de requête.
Exemple 1 : INNER JOIN
-
Instruction de requête
* | 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 -
Résultats
Renvoie 1 328 lignes correspondantes.
Le résultat comprend quatre colonnes : consumer_group, logstore, Latency et Method. Voici quelques valeurs d'exemple : consumer_group
etl-cf43c82162ac3ca60a906ebec4c6b87b, logstorewebsite_log, MethodPullData, Latency 513, 591 et 465.
Exemple 2 : LEFT JOIN
-
Instruction de requête
* | 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 -
Résultats
Renvoie l'intégralité des 1 328 lignes du Logstore internal-diagnostic_log.
Le résultat comprend quatre colonnes : consumer_group, logstore, Latency et Method. Les valeurs de Method incluent ConsumerGroupHeartBeat et PullData.
Exemple 3 : RIGHT JOIN
-
Instruction de requête
* | 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 -
Résultats
Renvoie l'intégralité des 1 757 lignes du Logstore internal-operation_log.
Le résultat contient quatre colonnes :
consumer_group,logstore,LatencyetMethod. Les valeurs nulles dansconsumer_groupetlogstoreindiquent l'absence de lignes correspondantes dans la table de gauche. La colonneMethodaffiche PostLogStoreLogs, tandis que les valeurs deLatencyvarient.
Exemple 4 : FULL OUTER JOIN
-
Instruction de requête
* | 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 -
Résultats
Renvoie 1 757 lignes.
Le résultat contient quatre colonnes : consumer_group, logstore, Latency et Method. Il inclut à la fois les lignes avec correspondance et celles présentant des valeurs nulles pour consumer_group et logstore. Pour les lignes sans correspondance, la colonne Method affiche PostLogStoreLogs.