Azure / azure-kusto-java

Microsoft Azure Kusto Library for Java
MIT License
38 stars 43 forks source link
azure-data-explorer java kusto sdk

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:

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

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?

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 opencode@microsoft.com 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).