v3.0.0
This is a major release.
Breaking Changes
- Many of the public fields in classes have turned into privates, with getters and setters replacing them
- Renamed according to java conventions: -
- All enum members are now in UPPER_SNAKE_CASE to conform with java conventions
- enum DATA_FORMAT was renamed to DataFormat
- Removed enum DataFormat.Unknown
KustoResultSetTable
no longer implements the interfacejava.sql.ResultSet
, as they never really matched in their functionality and interfaces- Creating a
ClientImpl
requires in itsConnectionStringBuilder
a URL with at least its authority defined IngestionProperties
now works withDataFormat
as its object type instead of aString
- Ingestion will now fail validation if any of the following ingestion property conditions are met:
- Mapping isn't specified for a data format that requires one
IngestionMappingKind
was defined, but a mapping wasn't defined- Provided
IngestionMappingKind
doesn't match the data format's expected ingestion mapping format - Both mapping reference and column mappings were defined
- A provided column mapping is invalid for the provided
IngestionMappingKind
Features
Added Quickstart application
- Inside the repo there is now a new module for a Quickstart app. It serves as a sample and a tutorial for the entire flow for working with the sdk, including creating tables, ingesting data and querying.
Authentication improvements
- Added Managed Identity Authentication
- Add subject issuer and certificate chain (SNI) support to authentication
ManagedStreamingIngest Improvements
- Sleeps exponentially between retries
- Custom ClientRequestId for improved telemetry
- Protect better against empty ClientRequestId
- Added helper constructors for easy construction
- Supports non-resettable streams
- Supports LeaveOpen for streams
- Fallback to queued on big files
Data formats and mappings
- Added support for new formats and mapping, including W3CLogFile, SStream and better support for TXT and RAW
- Improved OO nature of
DataFormat
andIngestionMappingKind
, and the relationship between them
Typed parameterized query helpers
Helper functions to add parameters to a query in a type-safe manner
Minor features and bug fixes
- Add
x-ms-activitycontext
andx-ms-user-id
(fromUserNameForTracing
inConnectionStringBuilder
) headers for better telemetry - KustoDataExceptionBase is available
- Enable timeout config to be passed in additional formats besides String
- Flexibility with whether
ConnectionStringBuilder
's cluster URL has an ending slash - Improved E2E tests to only run tests whose prerequisites are defined
- Better exception reporting of 404 Not Found errors
- Better localhost support
- Fixed error that caused streams to be closed in the wrong order
- Default uploaded blob extension to csv instead of being empty when
IngestionProperty.DataFormat
is null getMappingReference()
would fail unnecessarily because it was comparing theDataFormat
to theIngestionMappingKind
, because the former doesn't have a one-to-one with the latter, but instead a one-to-many relationship with the latter- Many dependency upgrades
- Many dependency conflict preventions
- Specify runtime scope for slf4j's impl