Skip to content

Azure/azure-kusto-java

Repository files navigation

Microsoft Azure Kusto (Azure Data Explorer) SDK for Java

Released Version

master: Build status Github Actions Build

This is the Microsoft Azure Kusto client library which allows communication with Kusto to bring data in (ingest) and query information already stored in the database. This library contains 3 different modules:

  • data: The main client that allows interaction with Kusto, including creating a connection, issuing (control) commands and querying data
  • ingest: Provides an easy way to bring data into Kusto
  • quickstart: Self-contained, configurable and runnable sample app for easily getting started with the SDK
  • samples: Sample code implementing various scenarios

Install

Maven

This method is the easiest to follow, just add the following dependency to your pom.xml (with the right version tag from maven central):

<dependency>
    <groupId>com.microsoft.azure.kusto</groupId>
    <artifactId>kusto-ingest</artifactId>
    <version>[see badge below]</version>
</dependency>

Maven Central

Clone

Download the source code, compile and install locally.

One way to do this is by using maven like in the following example:

git clone git://github.com/Azure/azure-kusto-java.git
cd azure-kusto-java
mvn install

Prerequisites

  • A Java Developer Kit (JDK), version 11 or later
  • Maven

Samples

Using A Proxy

The SDK includes support for the built-in proxy system properties in java. For example, when the address of your proxy server is 1.2.3.4:8989, you can run:
java -ea -Dhttp.proxyHost=1.2.34 -Dhttp.proxyPort=8989 -Dhttps.proxyHost=1.2.3.4 -Dhttps.proxyPort=8989
And the SDK will know to use these values automatically.

Alternatively, you can define a proxy programmatically when creating a client, using HttpClientProperties:

HttpClientProperties httpClientProperties = HttpClientProperties.builder()
        .proxy(new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("myproxy.contoso.com", 8080)))
        .build();

Client = ClientFactory.createClient(<engine_connection_string>, httpClientProperties); 
// Or for DM:
IngestClient ingestClient = IngestClientFactory.createClient(<dm_connection_string>, httpClientProperties)

Best Practices

See the SDK best practices guide, which though written for the .NET SDK, applies similarly here.

Need Support?

  • Have a feature request for SDKs? Please post it on User Voice to help us prioritize
  • Have a technical question? Ask on Stack Overflow with tag "azure-data-explorer"
  • Need Support? Every customer with an active Azure subscription has access to support with guaranteed response time. Consider submitting a ticket and get assistance from Microsoft support team
  • Found a bug? Please help us fix it by thoroughly documenting it and filing an issue.

Looking for SDKs for other languages/platforms?

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.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., label, 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.

Formatting

The code in this project is formatted using formatter-maven-plugin.
Code that isn't formatted will not be accepted.

To format your code, run the following command:
mvn formatter:format

It is also recommended importing the format file kusto-style.xml into your editor (the file is in the eclipse xml format).