Getting Started: Subscribing to Real-time Data¶
Real-time Data refers to timestamped measuring point data sent by assets or generated through calculations, including real-time asset data. This guide introduces how to quickly use the EnOS data subscription configuration interface to configure data subscription tasks and consume subscribed data with the Data Subscription SDK (Java).
Prerequisites¶
You are able to access the Data Subscription module.
The device is connected and is uploading data to EnOS.
The service account (SA) for subscribing data has been authorized to access asset data. For authorizing the service account, see Getting the Service Accounts
You have a workstation with IDE (for Java) installed.
Goal and Data Preparation¶
Goal
The goal of this guide is to subscribe to the real-time data of the test_raw measurement point.
Data Preparation
Model configuration: The model used in this guide (testModel) is configured as follows.
Feature Type |
Name |
Identifier |
Point Type |
Data Type |
---|---|---|---|---|
Measurement Point |
test_raw |
test_raw |
AI |
DOUBLE |
For information about device connection and data ingestion, see Device Connection.
Procedure¶
The steps for subscribing and consuming real-time data are as follows.
Create and configure a real-time data subscription job.
Save and enable the subscription job.
Get the subscribed data with Java SDK.
Check the data consumption results.
Step 1. Create and Configure a Data Subscription Job¶
Log in to the EnOS Application Portal > Developer Console and select the Data Subscription module.
All the subscription jobs created for the current organization are listed in the table. Follow the steps below to create and configure an alert data subscription job.
Click the New Subscription button and complete the configuration for the job. For this guide, select Time Series Data Subscription as the type.
ID: Enter or generate an ID for the subscription job.
SA: Select an SA account. Each consumer instance must have an associated SA account, which can be generated by registering an application on EnOS.
Message Channel: Select the message channel of the subscribed data. For this guide, select Real-Time message channel.
Description: Enter a short description for the data subscription job.
Clients: Each SA can access the data of multiple clients (through purchasing applications). Select the clients whose data you want to subscribe to.
Model Filter: Select the model and measurement points to subscribe to. For this guide, select test_raw the testModel. The subscription system will filter the data to meet the specified conditions.
Step 2. Save and Enable the Subscription Job¶
After the subscription job is configured, click Save to save the configuration. On the Data Subscription page, find the created job, and click the Enable icon to run the subscription job.
Step 3. Get Subscribed Data with Java SDK¶
EnOS provides SDKs (Java) to help you with offline application development and data consumption. The following example is for consuming subscribed data with Java SDK:
Add Maven dependency for the SDK. See the following example:
<dependency> <groupId>com.enos-iot</groupId> <artifactId>subscription-client</artifactId> <version>2.4.11</version> </dependency> <dependency> <groupId>com.enos-iot</groupId> <artifactId>enos-subscribe-impl</artifactId> <version>2.4.11</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
Use IDE for offline application development. See the following code sample:
String sub_server_host ="sub_server_host"; int sub_server_port ="sub_server_port"; String accessKey ="access_Key"; String secretKey ="secret_Key"; String subId = "subscriptionId"; /* Optional */ /* service */ EosClient eosClient = new EosClient(sub_server_host, sub_server_port, accessKey, secretKey); IDataService dataService = eosClient.getDataService(); /* handler */ IDataHandler dataHandler = new IDataHandler(){ @Override public void dataRead(StreamMessage message) { System.out.println(message); } }; /* subscribe */ dataService.subscribe(dataHandler, subId); /* (Optional) subscribe with consumer group */ dataService.subscribe(dataHandler, subId, consumerGroup);
Note
In this sample, the sub_server_host and sub_server_port are the host and port of the subscription server, which will vary with the cloud region and instance. For private cloud instances, contact your system administrator or support representative to get the host and port information.
For more information about the SDK, see the Data Subscription SDK Reference.
Step 4. Check the Data Consumption Results¶
Run the application for data consumption and check the data consumption results in the logs of the application.