Azure/pykusto
Azure/pykusto has 32 GitHub stars and 15 forks. GitHot measured 0 in 7 days. Last checked 2026-11-09 12:23 UTC. Last push 2026-10-27.
Query Kusto like a pro from the comfort of your Jupyter notebook
Measured star growth
- in 24h
- Update delayed
- in 7 days
- 0
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalIntroduction
pykusto is an advanced Python SDK for Azure Data Explorer (a.k.a. Kusto).
Started as a project in the 2019 Microsoft Hackathon.
Getting Started
Installation
Default installation:
pip install pykusto
With dependencies required for running the tests:
pip install pykusto[test]
Without dependencies which are not needed in PySpark:
pip install pykusto --global-option pyspark
Basic usage
from datetime import timedelta
from pykusto import PyKustoClient, Query
# Connect to cluster with AAD device authentication
# Databases, tables, and columns are auto-retrieved
client = PyKustoClient('https://help.kusto.windows.net')
# Show databases
print(tuple(client.get_databases_names()))
# Show tables in 'Samples' database
print(tuple(client.Samples.get_table_names()))
# Connect to 'StormEvents' table
t = client.Samples.StormEvents
# Build query
(
Query(t)
# Access columns using table variable
.project(t.StartTime, t.EndTime, t.EventType, t.Source)
# Specify new column name using Python keyword argument
.extend(Duration=t.EndTime - t.StartTime)
# Python types are implicitly converted to Kusto types
.where(t.Duration > timedelta(hours=1))
.take(5)
# Output to pandas dataframe
.to_dataframe()
)
Retrying failed queries
# Turn on retrying for all queries
from pykusto import PyKustoClient, RetryConfig, Query
client = PyKustoClient(
"https://help.kusto.windows.net",
retry_config=RetryConfig() # Use default retry config
)
# Override retry config for specific query
Query(client.Samples.StormEvents).take(5).to_dataframe(
retry_config=RetryConfig(attempts=3, sleep_time=1, max_sleep_time=600, sleep_scale=2, jitter=1)
)
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Explore related projects
Asabeneh/30-Days-Of-Python
The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,486 starsgrafana/grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
77,790 starsredis/redis
For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.
77,332 starsapache/superset
Apache Superset is a Data Visualization and Data Exploration Platform
75,455 stars