# Exploring Azure Data with Kusto and Dashboards

In order to more effectively learn [Kusto](https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/query-language) (the query language powering Azure analytics, log querying and PowerBI) and data visualization capabilites in Azure, I did the following:

1. [Created a cluster and database](https://docs.microsoft.com/en-us/azure/data-explorer/create-cluster-database-portal) (this takes quite a while)
2. Open the [Azure Data Explorer](https://aka.ms/kwe) (a.k.a. Kusto Web Explorer) at <https://aka.ms/kwe>
3. Add the cluster with the full URI or alternatively just the `name.region` parts (i.e. `kzukusto.centralus` vs [`https://kzukusto.centralus.kusto.windows.net`](https://kzukusto.centralus.kusto.windows.net))
4. Optionally add an arbitrary Application Insights app as a "virtual cluster", [using a url with the format](https://docs.microsoft.com/en-us/azure/data-explorer/query-monitor-data#connect-to-the-proxy) `https://ade.applicationinsights.io/subscriptions/<id>/resourcegroups/<name>/providers/microsoft.insights/components/<ai-app-name>`
5. Right--lick database and select Ingest new data

   ![Ingest new data context menu](/files/-MDx98w1WH2Zx_GWtvr9)
6. Find some interesting [Azure Open Dataset from the catalog](https://azure.microsoft.com/en-us/services/open-datasets/catalog/) that has an Azure storage URL readily available from the Azure Open Datasets catalog, such as the [Bing COVID-19 Data](https://azure.microsoft.com/en-us/services/open-datasets/catalog/bing-covid-19-data/) (I used the `.jsonl` link). NOTE: the `.json` one will not properly infer schema because it has a root object of type array. The `.jsonl` is actually a "JSON fragment" (if that even exists, would be the equivalent of an XML fragment) where each entry is just a JSON entry/line in the file.

   ![](/files/MdceBwuvfpTqwtmnl1Xo)

   The JSON version is preferable to `.csv` because it properly infer the data type for columns.
7. Click on `Dashboards` for the new stuff here. Parameters driven by queries are particularly handy:

![Query-driven multi-select parameter for widget](/files/-MDxBsQzMX0V4f9OGXH_)

While editing the query/widget, if the parameter is used in the query, you can interactively change its value to explore the visualizations. For example:

![Used parameter becomes enabled for selection](/files/-MDxD77EKTw37D4YsCx5)

Whereas if it wasn't used:

![Unused parameter unavailable](/files/-MDxDUyIDDTM_pU3lv0K)

After shaping the `Results`the way you want, clicking the Visual tab allows configuring a bunch of visualizations. Inference works quite nicely if the data/results are filtered to just what you want to display.

![Many chart options and inference that works great](/files/-MDxEFQhX1FPsRDMdYhk)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://til.cazzulino.com/azure/exploring-azure-data-with-kusto-and-dashboards.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
