Kzu's Today I Learned
GitHubX/TwitterBlog
  • Today I Learned
  • dotnet
    • How to emit descriptions for exported JSON schema using JsonSchemaExporter
    • NuGet
      • Suppress dependencies when packing
      • Hide contentFiles from your nuget packages
      • Packaging transitive analyzers with NuGet
      • How to add search to static nuget feed
      • Populate RepositoryBranch in CI for NuGet Pack
    • Ignore folder from dotnet-format
    • Accessing Tor .onion URLs via HttpClient with .NET6
    • Installing .NET 5.0 on Raspberry Pi 4
    • Quickly check C# compiler and language version
    • Disable diagnostic analyzers for entire folder/submodules
    • Persisting output files from source generators
    • Use C# 9 records in non-net5.0 projects
    • AsyncLocal never leaks and is safe for CallContext-like state
    • Using HashCode in .NETFramework
    • How to locate dotnet
  • testing
    • Conditional unit tests
    • Skip tagged scenarios in SpecFlow with Xunit
  • msbuild
    • How to get user home dir ~ cross-platform
    • Modifying the build for every solution in a repository
    • Detect CI builds for every CI system
    • Modify all command-line builds in entire repo
    • Write entire XML fragments in MSBuild with XmlPoke
    • How to select first item in an ItemGroup
    • How to include commit URL in nuget package description
    • How to include package reference files in your nuget
    • How to build project when content files change
  • azure
    • How to launch multiple Azure Functions apps on different ports
    • C# script function apps beyond Azure portal
    • Publishing function app from GitHub folder
    • Exploring Azure Data with Kusto and Dashboards
    • Shared secret authorization with Azure SignalR Service
    • Using Azure File Copy from DevOps yaml pipeline
    • Code-less redirection with serverless Azure Functions
  • DevOps/CI/CD
    • How to run Azure Storage unit tests in CI
    • How to skip steps or jobs in GitHub Actions for PRs from forks
    • Update version and publish npm from GH
    • Push to protected branch from GitHub actions
Powered by GitBook
On this page
  1. azure

Exploring Azure Data with Kusto and Dashboards

PreviousPublishing function app from GitHub folderNextShared secret authorization with Azure SignalR Service

Last updated 3 years ago

In order to more effectively learn (the query language powering Azure analytics, log querying and PowerBI) and data visualization capabilites in Azure, I did the following:

  1. (this takes quite a while)

  2. Open the (a.k.a. Kusto Web Explorer) at

  3. Add the cluster with the full URI or alternatively just the name.region parts (i.e. kzukusto.centralus vs )

  4. Optionally add an arbitrary Application Insights app as a "virtual cluster", https://ade.applicationinsights.io/subscriptions/<id>/resourcegroups/<name>/providers/microsoft.insights/components/<ai-app-name>

  5. Right--lick database and select Ingest new data

  6. Find some interesting that has an Azure storage URL readily available from the Azure Open Datasets catalog, such as the (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.

    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:

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:

Whereas if it wasn't used:

After shaping the Resultsthe 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.

Kusto
Created a cluster and database
Azure Data Explorer
https://aka.ms/kwe
https://kzukusto.centralus.kusto.windows.net
using a url with the format
Azure Open Dataset from the catalog
Bing COVID-19 Data
Ingest new data context menu
Query-driven multi-select parameter for widget
Used parameter becomes enabled for selection
Unused parameter unavailable
Many chart options and inference that works great