NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1147 most downloaded on PyPI
Kusto Data Client
Last release 4 months ago
06 May 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
9 years old
95 releases · first in 2018
Added to option to set public properties to ClientRequestProperties:
BREAKING CHANGES:
None.
FEATURES:
Added to option to set public properties to ClientRequestProperties:
client_request_idapplicationuserFIXES:
None.
Note that mapping and mappingReference will be deprecated in the next major version.
BREAKING CHANGES:
DataFormat ENUM to be all caps, e.g DataFormat.csv is now DataFormat.CSVFEATURES:
This release contains adjustments in order to support Kusto's new mapping formats: ingestionMapping, ingestionMappingType and ingestionMappingReference, which are properties of ingestionProperties and replace mapping and mappingReference.
Note that mapping and mappingReference will be deprecated in the next major version.
FIXES:
None.
One column per quarter.
Before the fix, some imports were not performed when pandas is not installed, but were still referenced in code.
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
Before the fix, None values in non nullable column types (e.g Decimal) would raise when returned from queries. Now, will gracefully assign Nones Refer
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
None values in non nullable column types (e.g Decimal) would raise when returned from queries.
Now, will gracefully assign Nones
Refer to test test_null_values_in_data for examplesAdded multijson support. this means that when trying to ingest json files that look like : ` [ {...}, {...} ] ` is now possible by specifying the form
BREAKING CHANGES:
None.
FEATURES:
multijson support. this means that when trying to ingest json files that look like :[
{...},
{...}
]
is now possible by specifying the format using ingestion properties.FIXES:
None.
This release mostly contains minor improvements, most of which are to the KustoStreamingIngestClient
This release mostly contains minor improvements, most of which are to the KustoStreamingIngestClient
This is the first mention of it due to some minor alignments made.
In general, KustoStreamingIngestClient is meant for advanced use-cases, where you would want to ingest data immediately, bypassing the queued ingestion flow (KustoIngestClient).
There are usage samples provided.
BREAKING CHANGES:
None.
FEATURES:
with_aad_user_token_authentication__str__ to column mapping objects so that str(JsonColumnMapping()) will show useful debug info.FIXES:
None.
Change the type of server timeout from int/float into timedelta. So far, a code snippet as follow will run, but have the default timeout: `python from
BREAKING CHANGES:
from azure.kusto.data.request import KustoClient, KustoConnectionStringBuilder, ClientRequestProperties
properties = ClientRequestProperties()
properties.set_option(properties.OptionServerTimeout, 8 * 60)
kcsb = KustoConnectionStringBuilder.with_aad_device_authentication(cluster)
client = KustoClient(kcsb)
response = client.execute(db, query, properties=properties)
Client request properties will now expect receiving timedelta. The following timeout will apply:
from datetime import timedelta
from azure.kusto.data.request import KustoClient, KustoConnectionStringBuilder, ClientRequestProperties
properties = ClientRequestProperties()
properties.set_option(properties.OptionServerTimeout, timedelta(8 * 60))
kcsb = KustoConnectionStringBuilder.with_aad_device_authentication(cluster)
client = KustoClient(kcsb)
response = client.execute(db, query, properties=properties)
FEATURES:
None.
FIXES:
None.
Fixed performance issues when converting from Kusto's table to pandas dataframe
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
Prevent messing up azure namespace on upgrade in environments with other azure packages.
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
Old Kusto (<0.0.25) packaging (as documented by azure-sdk-for-python) included azure/__init__.py file which was the root of azure namespace and used pkg-resource to declare the namespace.
After installation, Kusto's dist-info/RECORD included azure/__init__.py which caused it to be deleted once you upgrade (as upgrade is essentially uninstall + install newer).
New setup excludes azure/__init__.py from packaging, because we declare a dependency on azure-nspkg which is the owner of the azure name space and is responsible for the site-packages dir.
Because azure-nspkg is already installed, it's skipped, but the azure/__init__.py file is deleted (because it was present in the old dist-info/RECORD).
There is a setup.py property called namespace_packages which is meant to be used with pkg-resource but, when specified, installing with it, prevents the removal of the namespace.
Add the ability to set the source id of source descriptors. Useful for monitoring purposes (when reading statuses from queue, can correlate status via
BREAKING CHANGES:
None.
FEATURES:
import uuid
size = 1024 # insert correct size
file_path = "/path/to/file"
source_id = uuid.uuid4()
file_desc = FileDescriptor(file_path, size, source_id)
ingest_client.ingest_from_file(file_desc , json_ingestion_props)
FIXES:
None.
errors working with proxy - fix reverts to use python requests which handles proxy env vars (HTTP_PROXY) properly
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
requests which handles proxy env vars (HTTP_PROXY) properlyWhen getting empty KustoResultTable, let converting it into empty DataFrame. For more details please see the pull request comment.
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
Change the default conversion from dynamic string.empty into dynamic null. ```python from azure.kusto.data.request import KustoClient, KustoConnection
BREAKING CHANGES:
from azure.kusto.data.request import KustoClient, KustoConnectionStringBuilder
from azure.kusto.data.exceptions import KustoServiceError
from azure.kusto.data.helpers import dataframe_from_result_table
cluster = "https://help.kusto.windows.net:443"
kcsb = KustoConnectionStringBuilder.with_aad_device_authentication(cluster)
client = KustoClient(kcsb)
db = "Samples"
query = """print empty_dynamic = dynamic("")"""
response = client.execute(db, query)
empty = response.primary_results[0][0]["empty_dynamic"]
In the old version, the empty variable will have None type. From version 0.0.23 and on the empty variable will have "" value.
FEATURES:
None.
FIXES:
json.loads exception in python 3.5 - Decode the urllib pool manager response with UTF-8, so we can load it into json in python 3.5 .json.loads call for dynamic objects. It's been loaded once after we got the response.Support pandas 0.24.0 datetimes.
BREAKING CHANGES:
Stop supporting python 3.4 .
FEATURES:
FIXES:
Azure packaging has changed. Kusto clients are now aligned. To read more about azure packaging, read this link.
get_raw_response is no longer an option to: KustoClient.execute KustoClient.execute_query KustoClient.execute_mgmt The return type will be azure.kusto
BREAKING CHANGES:
FEATURES:
None
FIXES:
None
Create ClientRequestProperties class.
Create ClientRequestProperties class.
BREAKING CHANGES:
from azure.kusto.data.request import ClientRequestProperties
properties = ClientRequestProperties()
properties.set_option(ClientRequestProperties.OptionDeferPartialQueryFailures, True)
properties.set_option(ClientRequestProperties.OptionServerTimeout, 10) # 10 seconds to timeout
r = client.execute_query("Database1", query, properties)
FEATURES:
FIXES:
None
KustoAuthenticationError is introduced. Once authentication fails, the exception will have details of the request to acquire the token.
Add anonymous authentication.
BREAKING CHANGES:
None
FEATURES:
FIXES:
Supporting dynamic types serialization both as dynamic (new serialization in query v2) and as string (old, for backwards compatibility).
Supporting dynamic types serialization both as dynamic (new serialization in query v2) and as string (old, for backwards compatibility).
BREAKING CHANGES: None
FEATURES: Support dynamic types in dataframe when dynamic types are serialized as dynamic (and not as strings).
FIXES: None
Default authentication method changed from device to anonymous . In order to use device login it should be specified explicitly KustoConnectionStringB
Add anonymous authentication.
BREAKING CHANGES:
device to anonymous .
In order to use device login it should be specified explicitly KustoConnectionStringBuilder.with_aad_device_authentication.FEATURES:
KustoClient("https://<cluster>.kusto.windows.net.").FIXES:
None
Mandatory authority_id for app key and secret authentication
Mandatory authority_id for app key and secret authentication
BREAKING CHANGES:
FEATURES:
None
FIXES:
None
Fixing docs with regards to serializing kusto data table
Fixing docs with regards to serializing kusto data table
BREAKING CHANGES:
None
FEATURES:
None
FIXES:
Added the ability to track ingestion via status queues.
Added the ability to track ingestion via status queues.
BREAKING CHANGES:
ReportMethod.QueueAndTable is no longer a valid option. Currently only supported reporting method is Queues.FEATURES:
FIXES: NONE
Pandas are no longer a requirement for the package. if pandas are needed, please install with optional flag (pip install azure-kusto-data[pandas] and
Pandas are no longer a requirement for the package. if pandas are needed, please install with optional flag (pip install azure-kusto-data[pandas] and pip install azure-kusto-ingest[pandas]).
BREAKING CHANGES:
KustoResultTable.to_dataframe moved to helpers
from azure.kusto.data.helpers import dataframe_from_result_tableFEATURES:
authority_id as part of KustoConnectionStringBuilder. for further info on how to get the id - follow this linkFIXES:
pandas are no longer installed as part of package which should make installation much faster.Nothing published for this version
Security: Add ability to authenticate with application certificate Interface: Kusto Connection String Builder is introduced. For more information look
Security: Add ability to authenticate with application certificate Interface: Kusto Connection String Builder is introduced. For more information look at: https://kusto.azurewebsites.net/docs/concepts/kusto_connection_strings.html
Nothing published for this version
azure-kusto-data: Add refresh token mechanism. Make all 3 dimensions of Kusto response iterables: Response: iterate over tables. Table: iterate over r
azure-kusto-data: Add refresh token mechanism. Make all 3 dimensions of Kusto response iterables: Response: iterate over tables. Table: iterate over rows. Rows: iterate over cells.
azure-kusto-ingest: Added resource manager.
General: Make the code black compatible.
Adding additional properties to ingestion properties. Changing requirements according to the use.
Adding additional properties to ingestion properties. Changing requirements according to the use.
Add accept headers to rest calls. Add missing types while converting KustoResponse to DataFrame.
Add accept headers to rest calls. Add missing types while converting KustoResponse to DataFrame.
Fix adal dependency. Adjust ingestion data formats.
Fix adal dependency. Adjust ingestion data formats.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →