Por que seus próximos microsserviços devem ser baseados em streaming baseados em SQL



Por que seus próximos microsserviços devem ser baseados em streaming baseados em SQL

SELECT 
    COUNT(user_id) AS login_count, 
    TUMBLE_START(event_time, INTERVAL '1' MINUTE) AS window_start
FROM login_attempts
GROUP BY TUMBLE(event_time, INTERVAL '1' MINUTE);

Depois de saber quantas tentativas de login um usuário fez na janela, você pode filtrar por um valor mais alto (digamos > 10), acionando a lógica de negócios dentro de uma UDF para bloqueá-los temporariamente como um recurso anti-hacking.

Finalmente, você também pode juntar dados de vários fluxos com apenas alguns comandos simples. Unir fluxos como fluxos (ou como tabelas) é, na verdade, bastante desafiador sem uma estrutura de streaming, especialmente quando se considera tolerância a falhas, escalabilidade e desempenho. Neste exemplo, estamos unindo os dados do Produto aos dados dos Pedidos com o ID do produto, retornando um resultado enriquecido de Pedido + Produto.

SELECT * FROM Orders
INNER JOIN Product
ON Orders.productId = Product.id

Observe que nem todas as estruturas de streaming (SQL ou outros) suportam junções de chave primária para chave estrangeira. Alguns permitem apenas que você faça junções de chave primária com chave primária. Por que? A resposta curta é que pode ser bastante desafiador implementar esses tipos de junções quando se considera tolerância a falhas, escalabilidade e desempenho. Na verdade, você deve investigar como sua estrutura SQL de streaming lida com junções e se ela pode suportar junções de chave estrangeira e primária, ou simplesmente apenas a última.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *