火山引擎DataSail提供通用数据上报Java SDK,用户在开通DataSail服务之后,可以通过API将数据上报到火山云DataSail。
请确保您已开通了您需要访问的服务。您可前往火山引擎控制台开通全域数据集成服务,详见服务开通。
Access Key(访问密钥)是访问火山引擎服务的安全凭证,包含Access Key ID(简称为AK)和Secret Access Key(简称为SK)两部分。您可登录火山引擎控制台,前往访问控制 的访问密钥 中创建及管理您的Access Key。更多信息可参考访问密钥帮助文档 。
路径:数据采集-topic管理-新建Topic
路径:数据采集-采集管理-新建采集任务
字段 | 说明 | 示例 | 备注 |
---|---|---|---|
AK | 火山引擎Access Key | AKLTZWU***** | |
SK | 火山引擎Secret Key | TW1KaVl****** | |
采集任务ID | 采集任务ID | hkktppvwtuv0xy000 | 获取路径:数据采集->采集管理->采集任务 ID 🔗 |
服务域名 | 上报数据的域名 | datasail01-cn-beijing.volceapplog.com |
地域 | 服务域名 |
---|---|
华北2(北京) | datasail01-cn-beijing.volceapplog.com |
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
<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>
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(); } } }
collectGeneralData用于上报任意类型的数据,GeneralDataRequest中的data会原封不动地传至服务端,服务端收到数据后直接投递至task_key对应的topic。
// 上报通用数据(任意类型) GeneralDataResponse collectGeneralData(GeneralDataRequest request) throws CollectException
collectJsonArray通过Json数组上报批量数据,JsonArrayRequest中的data需要符合Json Array的格式;服务端收到数据后,会以Json Array进行解析,并遍历Json Array中的每一个Item,将抓包后的每一个Item投递至task_key对应的topic。
// 上报Json数组 JsonArrayResponse collectJsonArray(JsonArrayRequest request) throws CollectException
GeneralCollector初始化
IllegalArgumentException
GeneralCollector方法调用
CollectException
,需要调用方关注参数名 | 含义 | 状态码 |
---|---|---|
e | 状态码 |
|
m | 如失败,显示错误信息 |