Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

External applications also can ingest json data to chango. For example, external applications like spark streaming application consumes json from kafka and then send these streaming json data to chango. For such cases, chango provides Chango Client API Library written in java.

Install Chango Client API Library

Add chango client as dependency in maven.

Code Block
<dependency>
  <groupId>co.cloudcheflabs.chango</groupId>
  <artifactId>chango-client</artifactId>
  <version>1.1.0</version>
</dependency>

Or, download chango client library which needs to be added to your application classpath.

Code Block
curl -L -O https://github.com/cloudcheflabs/chango-client/releases/download/1.1.0/chango-client-1.1.0-executable.jar;

Create Iceberg Table before sending json to chango

As seen in ingestion of json to chango using Chango CLI https://mykidong.atlassian.net/wiki/spaces/CHANGOCLOUD/pages/2212724750/Chango+CLI#Create-Iceberg-Table-before-Json-Data-Ingestion , you need to create iceberg table beforehand.

Example of sending json to chango using Chango Client Library

You may construct chango client instance like this.

Code Block
import co.cloudcheflabs.chango.client.component.ChangoClient;

...


String adminServer = "https://chango-admin-oci.cloudchef-labs.com";
String user = "user1";
String password = "anypassword";
String dataApiServer = "https://chango-data-api-jetty-oci-user1.cloudchef-labs.com";
int batchSize = 10000;
long interval = 1000;
String schema = "iceberg_db";
String table = "test_iceberg";

ChangoClient changoClient = new ChangoClient(adminServer,
        user,
        password,
        dataApiServer,
        schema,
        table,
        batchSize,
        interval);      
  • adminServer : used to get access token after login.

  • user: chango user name.

  • password : chango password.

  • dataApiServer : chango data api server url for json.

  • schema: iceberg schema which needs to be created before sending json data to chango.

  • table: iceberg table which also needs to be created beforehand.

  • batchSize : the size of json list which will be sent to chango in batch mode and in gzip format.

  • interval : json data will be queued internally in chango client. The queued json list will be sent in this period whose unit is milliseconds.

And then just call add() .

Code Block
        String json = ... 
       // add json coming from your application to the internal queue in chango client.    
       changoClient.add(json);

Query Iceberg Table using Trino Clients

Json data ingested to iceberg table in chango can be queries using trino clients like Trino CLI, Redash and Metabase.

You can run the following query if json data is ingested to chango.

...

Info

Chango Cloud Document Site was moved to https://cloudcheflabs.github.io/chango-cloud-docs .