Visualizações materializadas e funções armazenadas

Concluído

Embora muitas vezes você possa atingir suas metas analíticas consultando tabelas e usando funções e operadores internos, o KQL fornece alguns recursos avançados que você pode usar para criar novos objetos que encapsulam dados ou lógica que você precisa usar com freqüência.

Vistas materializadas

Uma visão materializada é um resumo de dados de uma tabela de origem ou outra visão materializada. O modo de exibição encapsula uma instrução de resumo .

Por exemplo, a instrução a seguir cria uma exibição materializada que contém o número de viagens para cada fornecedor por dia.

.create materialized-view TripsByVendor on table Automotive
{
    Automotive
    | summarize trips = count() by vendor_id, pickup_date = format_datetime(pickup_datetime, "yyyy-MM-dd")
}

A execução dessa instrução cria uma exibição materializada, mas não a preenche imediatamente com os dados na tabela existente. A exibição será preenchida à medida que novos dados forem ingeridos na tabela de origem. Para ingerir dados existentes, você pode usar uma operação assíncrona para criar a exibição materializada com a opção de preenchimento, da seguinte forma:

.create async materialized-view with (backfill=true)
TripsByVendor on table Automotive
{
    Automotive
    | summarize trips = count() by vendor_id, pickup_date = format_datetime(pickup_datetime, "yyyy-MM-dd")
}

Depois de criar e preencher a vista materializada, pode consultá-la tal como uma tabela.

TripsByVendor
| project pickup_date, vendor_id, trips
| sort by pickup_date desc

As visualizações materializadas são listadas na pasta Visualizações materializadas para o banco de dados KQL, onde você as definiu na página da casa de eventos.

Funções armazenadas

O KQL inclui a capacidade de encapsular uma consulta como uma função, facilitando a repetição de consultas comuns. Você também pode especificar parâmetros para uma função, para que possa repetir a mesma consulta com valores de variáveis.

Para criar uma função, use o comando KQL da função .create-or-alter. Por exemplo, a função a seguir recupera o ID da viagem e o horário de embarque para viagens com pelo menos o número especificado de passageiros:

.create-or-alter function trips_by_min_passenger_count(num_passengers:long)
{
    Automotive
    | where passenger_count >= num_passengers 
    | project trip_id, pickup_datetime
}

Para chamar a função, use-a como uma tabela. Neste exemplo, a função trips_by_min_passenger_count é usada para encontrar 10 viagens com pelo menos três passageiros:

trips_by_min_passenger_count (3)
| take 10