Skip to content

Releases: Azure/azure-kusto-go

Version 0.10.2

26 Dec 13:34
e90b845
Compare
Choose a tag to compare
Version 0.10.2 Pre-release
Pre-release

Version 0.10.2

  • Fixed issue with managed identity parameters

v0.10.1

14 Dec 06:58
fa98f18
Compare
Choose a tag to compare
v0.10.1 Pre-release
Pre-release

Version 0.10.1
Fixed issue with queued ingestion to other clouds

Version 0.10.0

11 Dec 07:49
7a03eab
Compare
Choose a tag to compare
Version 0.10.0 Pre-release
Pre-release

Version 0.10.0

  • [BREAKING] - The minimal go version is now 1.19

  • [BREAKING] - Moving to a connection-string based approach to creating and authenticating clients.
    This change aligns the go SDK with the others, and gives the option to re-use connection strings between SDKs.
    As part of this change use of go-autorest based authentication is deprecated in favor of Azure Identity.

    To initialize a client:

    // OLD WAY - REMOVED
    authConfig := auth.NewClientCredentialsConfig("clientID", "clientSecret", "tenantID")
    client, err := kusto.New("endpoint", kusto.Authorization{Config: authConfig})
    
    // NEW WAY
    kcsb := kusto.NewConnectionStringBuilder(`endpoint`).WithAadAppKey("clientID", "clientSecret", "tenentID")
    client, err := kusto.New(kcsb)
  • [BREAKING] - Upgraded the azblob library to 0.6.1 This solves compatibility issues with other libraries, but might cause errors to those who still depend on the old version.

  • Implicit cloud detection.

  • All of our operations now share the same HTTP client inside the kusto client object.
    Using the option WithHttpClient will use the passed http client for all of the SDKs request, granting support for configuring proxies and other HTTP related settings.

  • Fixed various goroutine leaks. Now there are automatic tests to make sure we are not leaking resources.

  • Fetching ingestion resources is now done more consistently, without blocking the user.

  • Removed the header caching mechanism from streaming ingestion, as it was using a lot of memory for no major benefit.

Version 0.9.2

01 Dec 13:45
f727236
Compare
Choose a tag to compare
Version 0.9.2 Pre-release
Pre-release

Version 0.9.2

  • Fixed default values for parameters not parsing correctly
  • Fixed goroutine leak when streaming ingestion fails
  • Fixed leaks in tests

Full Changelog: v0.9.1...v0.9.2

Version 0.9.1

20 Nov 14:13
4c222c9
Compare
Choose a tag to compare
Version 0.9.1 Pre-release
Pre-release

Version 0.9.1

  • Setting a mapping now implies the ingestion format
  • Fixed possible context race
  • Json parsing errors now display the failed json string
  • E2E tests require fewer prerequisites

v0.9.0 - Improved performance, Column Types

09 Nov 10:32
746cf1c
Compare
Choose a tag to compare

What's Changed

  • Deprecate AllowWrite - now it is the default like in other SDKs.
  • Remove mutex from query client. Now queries can run in parallel, achieving much better performance.
  • Fix Column.Type assignment. Was using string, now using types. by @jesseward
  • Lint and test fixes

New Contributors

Full Changelog: v0.8.1...v0.9.0

v0.8.1 - More Client Request Options

28 Sep 09:10
cbea4d7
Compare
Choose a tag to compare
Pre-release
  • Added Application and User as ClientRequestProperties to set the x-ms-app and x-ms-user headers, and the matching fields in .show queries.

Version 0.8.0 - Client request properties and Query to json

05 Sep 05:38
5720f71
Compare
Choose a tag to compare

Version 0.8.0

  • Add all missing client request properties, and the ability to use custom ones using CustomQueryOption
  • Add the option to not parse the response when querying, but to receive the json directly - QueryToJson
  • Various lint fixes and code improvements

v0.7.0

09 May 05:25
5139d9c
Compare
Choose a tag to compare
v0.7.0 Pre-release
Pre-release

What's Changed

  • Make clients closeable
  • Support port in http host
  • Add retry mechanism for throttled requests
  • Added custom http options for all clients

New Contributors

Full Changelog: v0.6.0...v0.7.0

New ingest clients, new convenience apis, many bug fixes

12 Apr 08:22
b63231b
Compare
Choose a tag to compare

Deprecations

  • Ingestion.Stream has been deprecated in favor of dedicated streaming clients - ingest.Streaming and ingest.Managed.
    This API was very limited - it required you to create a queued ingestion client, it only accepted a byte array, and had no customization options.
  • RowIterator.Next and RowIterator.Do are now deprecated and replaced by RowIterator.NextRowOrError and RowIterator.DoOnRowOrError.
    In previous versions, when encountering an error in-line with the results (also known as partial success), the SDK panicked. Now RowIterator.Next and RowIterator.Do will return the first error they encounter, including in-line errors or partials successes and finish.
    This means that there could be extra data that will be skipped when using these APIs. Fixed #81

Addtional Ingest Clients

  • ingest.Streaming and ingest.Managed were added to the SDK. Their interface is identical to ingest.Ingestion (in fact - they all share an interface Ingestor), and are created via ingest.NewStreaming and ingest.NewManaged respectively.
    ingest.Streaming uses streaming ingestion to ingest data to kusto. It supports ingesting from a file or a Reader, but not a blob.
    ingest.Managed is a managed streaming ingest client. It will try to use streaming ingest, but on transient failures and other conditions will fall back to queued ingestion.

New APIs for querying

  • As mentioned before, RowIterator.NextandRowIterator.Doare now deprecated and replaced byRowIterator.NextRowOrErrorandRowIterator.DoOnRowOrError. The new APIs will act the same as the old, with the following changes: RowIterator.NextRowOrErrorwill return an additionalinlineErrorvalue, when it's non-nil it indicates an inline error. After encountering it, the iteration doesn't end and you should continue consuming the iterator.RowIterator.DoOnRowOrErrorrequires an additional parameter of type*errors.Error`, which indicates an inline error. It can be ignored or handled, but while returning nil the iteration will continue.

Addtional Features

  • Support extracting non-primary tables from a RowIterator using the following methods - GetNonPrimary, GetExtendedProperties and GetQueryCompletionInformation. Fixed #85
  • Expose TableFragmentType via a Replace flag by @w1ndy in #74
  • Refactor value converters and implement ExtractValues for Row by @w1ndy in #75
  • Better Dynamic converter by @w1ndy in #78
  • Support more forms of decimal type, and accept input of big.Int for it. Fixed #86

Fixes

  • Add support for gzipped errors,. Fixed #84
  • Moved from the old deprecated azblob to the new supported one. This should solve some issues in uploading blobs, specifically memory leaks.

Internal Improvements

  • Added go-fmt gate check by @AsafMah in #77
  • Parallelized tests and made them more robust

New Contributors

  • @w1ndy made their first contribution in #74

Full Changelog: v0.5.2...v0.6.0