You need to enable JavaScript to run this app.
导航

Java

最近更新时间2023.12.19 19:49:34

首次发布时间2023.10.31 18:06:02

一、简介

火山引擎DataSail提供通用数据上报Java SDK,用户在开通DataSail服务之后,可以通过API将数据上报到火山云DataSail。

二、前置准备

服务开通

请确保您已开通了您需要访问的服务。您可前往火山引擎控制台开通全域数据集成服务,详见服务开通

获取安全凭证

Access Key(访问密钥)是访问火山引擎服务的安全凭证,包含Access Key ID(简称为AK)和Secret Access Key(简称为SK)两部分。您可登录火山引擎控制台,前往访问控制访问密钥 中创建及管理您的Access Key。更多信息可参考访问密钥帮助文档

产品接入

  1. 申请Topic

路径:数据采集-topic管理-新建Topic

  1. 申请数据采集

路径:数据采集-采集管理-新建采集任务

三、SDK接入

所需信息汇总

字段说明示例备注

AK

火山引擎Access Key

AKLTZWU*****

SK

火山引擎Secret Key

TW1KaVl******

采集任务ID

采集任务ID

hkktppvwtuv0xy000

获取路径:数据采集->采集管理->采集任务 ID 🔗

服务域名上报数据的域名datasail01-cn-beijing.volceapplog.com

服务域名

地域服务域名
华北2(北京)datasail01-cn-beijing.volceapplog.com

接入Demo

Java

  1. 将jar包导入maven本地仓库

general-collector-java-cloud.jar
19.52KB
mvn install:install-file -Dfile=general-collector-java-cloud.jar -DgroupId=com.volcengine.datasail -DartifactId=general-collector-java-cloud -Dversion=1.0-SNAPSHOT -Dpackaging=jar
  1. pom依赖配置

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.8</version>
</dependency>
<dependency>
    <groupId>com.volcengine</groupId>
    <artifactId>volc-sdk-java</artifactId>
    <version>1.0.49</version>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>
<dependency>
  <groupId>com.volcengine.datasail</groupId>
  <artifactId>general-collector-java-cloud</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>
  1. Demo

package org.example;

import com.volcengine.datasail.GeneralCollector;
import com.volcengine.datasail.config.Config;
import com.volcengine.datasail.exceptions.CollectException;
import com.volcengine.datasail.request.GeneralDataRequest;
import com.volcengine.datasail.request.JsonArrayRequest;
import com.volcengine.datasail.response.GeneralDataResponse;
import com.volcengine.datasail.response.JsonArrayResponse;

public class App {
    public static void main( String[] args ) {
        // 设置Config
        Config config = new Config();
        config.AK = System.getenv("AK");
        config.SK = System.getenv("SK");
        config.endpoint = System.getenv("DOMAIN");
        config.taskKey = System.getenv("TASK_KEY");

        // 创建GeneralCollector对象,该对象的方法线程安全,仅在初始化时创建无需频繁创建
        GeneralCollector collector = new GeneralCollector(config);

        // 上报任意类型的数据
        GeneralDataRequest generalDataRequest = new GeneralDataRequest();
        generalDataRequest.data = "abc".getBytes();
        GeneralDataResponse generalDataResponse = null;
        try {
            generalDataResponse = collector.collectGeneralData(generalDataRequest);
        } catch (CollectException e) {
            e.printStackTrace();
        }
        System.out.println(generalDataResponse);

        // 通过JsonArray批量上报数据,需符合JsonArray的格式
        JsonArrayRequest jsonArrayRequest = new JsonArrayRequest();
        jsonArrayRequest.data = "[\"a\",\"b\",\"c\"]".getBytes();
        JsonArrayResponse jsonArrayResponse = null;
        try {
            jsonArrayResponse = collector.collectJsonArray(jsonArrayRequest);
        } catch (CollectException e) {
            e.printStackTrace();
        }
        System.out.println(jsonArrayResponse);

        // 不再使用GeneralCollector时关闭资源
        try {
            collector.close();
        } catch (CollectException e) {
            e.printStackTrace();
        }
    }
}
  1. 接口说明

通用数据上报

collectGeneralData用于上报任意类型的数据,GeneralDataRequest中的data会原封不动地传至服务端,服务端收到数据后直接投递至task_key对应的topic。

// 上报通用数据(任意类型)
GeneralDataResponse collectGeneralData(GeneralDataRequest request) throws CollectException
Json数组上报

collectJsonArray通过Json数组上报批量数据,JsonArrayRequest中的data需要符合Json Array的格式;服务端收到数据后,会以Json Array进行解析,并遍历Json Array中的每一个Item,将抓包后的每一个Item投递至task_key对应的topic。

// 上报Json数组
JsonArrayResponse collectJsonArray(JsonArrayRequest request) throws CollectException
  1. 异常说明

  • GeneralCollector初始化

    • 当Config配置错误时,会抛出运行时异常IllegalArgumentException
  • GeneralCollector方法调用

    • 对数据上报不符合预期的情况,会抛出受检异常CollectException,需要调用方关注

响应

参数名含义状态码

e

状态码

  • StatusOk = 0

  • StatusInvalidParam = -1

  • StatusInvalidEventFormat = -2

  • StatusParseArgError = -3

  • StatusNoSupportMethodError = -4

  • StatusTooManyElementError = -5

  • StatusTooManyEventError = -6

  • StatusGetAppidError = -7

  • StatusParseUserError = -8

  • StatusParseHeaderError = -9

  • StatusParseEventError = -10

  • StatusSaveEventError = -11

  • StatusEventEmptyError = -12

  • StatusUnknownError = -100

  • StatusIdentityMatchError = -101

  • StatusSignatureMatchError = -102

  • StatusNotSupportAppIdError = -103

  • StatusNotFoundRouteError = -104

m如失败,显示错误信息