A cláusula JOIN combina linhas de várias tabelas. O SLS permite joins entre Logstores no mesmo projeto, bem como entre um Logstore e um banco de dados MySQL ou bucket do OSS.
Sintaxe
SELECT table.key
FROM table1
INNER|LEFT|RIGHT|FULL OUTER JOIN table2
ON table1.key=table2.key
O SLS suporta INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL JOIN em instruções SELECT, conforme a referência JOIN do MySQL.
|
Sintaxe JOIN |
Descrição |
|
INNER JOIN |
Retorna apenas as linhas que atendem à condição de junção em ambas as tabelas. |
|
LEFT JOIN |
Retorna todas as linhas da tabela à esquerda (table1), mesmo sem correspondências na tabela à direita (table2). |
|
RIGHT JOIN |
Retorna todas as linhas da tabela à direita (table2), mesmo sem correspondências na tabela à esquerda (table1). |
|
FULL JOIN |
Retorna linhas se qualquer uma das tabelas contiver uma correspondência. |
Parâmetros
|
Parâmetro |
Descrição |
|
key |
Campo de log ou expressão. Aceita qualquer tipo de dado. |
|
table |
table1 é um Logstore. table2 pode ser um Logstore, banco de dados MySQL ou bucket do OSS. Associar o Simple Log Service a um banco de dados MySQL. Associar o Simple Log Service a um bucket do OSS. |
Exemplos
Os exemplos a seguir unem dois Logstores no mesmo projeto: internal-diagnostic_log (latência de consumo, alertas e dados de coleta) e internal-operation_log (logs de operação dos recursos do projeto). As consultas recuperam grupos de consumidores, latência e métodos de requisição.
Exemplo 1: INNER JOIN
-
Instrução de consulta
* | 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 -
Resultados
Retorna 1.328 linhas correspondentes.
O resultado inclui quatro colunas: consumer_group, logstore, Latency e Method. Valores de exemplo: consumer_group
etl-cf43c82162ac3ca60a906ebec4c6b87b, logstorewebsite_log, MethodPullData, Latency 513, 591 e 465.
Exemplo 2: LEFT JOIN
-
Instrução de consulta
* | 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 -
Resultados
Retorna todas as 1.328 linhas do Logstore internal-diagnostic_log.
O resultado contém quatro colunas: consumer_group, logstore, Latency e Method. Os valores de Method incluem ConsumerGroupHeartBeat e PullData.
Exemplo 3: RIGHT JOIN
-
Instrução de consulta
* | 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 -
Resultados
Retorna todas as 1.757 linhas do Logstore internal-operation_log.
O resultado contém quatro colunas:
consumer_group,logstore,LatencyeMethod. Valores nulos emconsumer_groupelogstoreindicam ausência de linhas correspondentes na tabela à esquerda.Methodé PostLogStoreLogs e os valores deLatencyvariam.
Exemplo 4: FULL OUTER JOIN
-
Instrução de consulta
* | 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 -
Resultados
Retorna 1.757 linhas.
O resultado contém quatro colunas: consumer_group, logstore, Latency e Method. Inclui tanto linhas correspondentes quanto linhas com valores nulos para consumer_group e logstore. Linhas sem correspondência apresentam Method como PostLogStoreLogs.