# data-sdk-java
**Repository Path**: carollia/data-sdk-java
## Basic Information
- **Project Name**: data-sdk-java
- **Description**: 数据上报SDK
1. 将数据模型进行封装, 封装具体接口调用过程, 用户无需关心具体实现
2. 数据上报封装成批量, 定时, 异步的方式, 提供传输性能
3. 错误处理只限于内部代码, 无需抛给调用者, 打印错误日志即可。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2022-01-13
- **Last Updated**: 2022-11-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 数据平台 java sdk 使用文档
#### maven集成并初始化 SDK
1.使用 Maven 集成 SDK,请在`pom.xml`文件中置入以下依赖信息(推荐):
```java
// others...
com.hys.sdk
java_sdk
1.0-SNAPSHOT
// 下载jar包到本地后的maven引用
com.hys.sdk
java_sdk
1.0-SNAPSHOT
system
${project.basedir}/src/main/resources/lib/java_sdk.jar
```
#### 使用 jar 包导入SDK
**[Java SDK JAR 下载地址](http://172.13.1.94/sdk/sdk/java_sdk.jar)**
idea项目如何加入jar包,参考地址:https://zhuanlan.zhihu.com/p/338474913
#### 示例
```java
// 配置类
// set the sdk config
DataConfig dataConfig = new DataConfig();
dataConfig.setCompression("None"); // 压缩方式(None)
dataConfig.setCronSpec("0/5 * * * * ?"); // linux定时器
dataConfig.setGameId(150); // 游戏ID(由数据中心分配)
dataConfig.setGameType("RPG"); // 游戏类型
dataConfig.setLogLevel("warn"); // 日志级别(logback)
dataConfig.setMaxConsumer(25); // 消费者数量(生产者消费者模式)
dataConfig.setMaxQueue(500000); // 本地请求缓存队列大小
dataConfig.setSecret("5a0775376b81c57f1fa85a30cecb8987");
dataConfig.setTimeout(new Long(3)); // 请求耗时
dataConfig.setTimezone("Asia/Shanghai"); // 上报的时区(服务部署的本地时区, 不支持utc+n, gmw+n, 只支持地区名)
dataConfig.setUrl("http://172.13.1.94:8019/data_api/events_report"); // 上报接口地址
dataConfig.setMaxSize(100); // 批量请求的数据长度
// 实例化 DataClient,create global client
try {
DataClient client = DataClientFactory.getDataClient(dataConfig);
} catch (DataConfigLoadException e) {
System.out.println("加载异常"+ e.getMessage());
// 异常信息
}
// 事件上报示例 properties 属性
Map properties = new HashMap<>();
properties.put("os","ios");
properties.put("media","今日头条");
properties.put("optimizer","小小");
// 用户信息设置
client.ProfileSet("01cc9e2b80b5c37281b3c3f4974f8ef6",1,properties);
```
```java
// 用户行为事件
client.Action("$test1","111",1,properties);
```
```java
// 设备行为事件
client.Device("$ad_view","device_no" ,"idfa","device_no1_name",properties);
```
```java
// 实体信息
client.Entity("lineup", "22",properties);
```
```java
// 用户信息设置
client.ProfileSet("01cc9e2b80b5c37281b3c3f4974f8ef6",1,properties);
```
```java
// 创建物品
client.ItemSet("12345", "元宝", "钻石", 14.0, properties);
```
```java
// 删除物品
client.ItemDelete("12345", "元宝");
```
```java
// 删除礼包
client.BundleDelete("21");
```
```java
// 创建礼包
client.BundleSet("12345", "豪华大礼包", 198.0,items,properties);
```
#### **配置参数详细说明**
| 字段 | 数据类型 | 备注 |
| ----------- | -------- | ------------------------------------------------------------ |
| GameType | string | 游戏类型,目前仅支持 以下类型 CAG,CCG,RPG,SLG,ACT,AVG,PUZ,MOBA,RAC,RTS,TBG,MSC,SPG |
| GameId | int | 应用唯一id, 由sdk中心提供 |
| Secret | string | 游戏的apiKey |
| Url | string | 数据上报接口,http://172.13.1.230:8015/data_api/events_report |
| Timeout | int | 压缩算法, 默认是none代表不压缩, 暂时不支持压缩算法 |
| CronSpec | string | 定时消费的定时任务表达式,目前默认 0/1 * * * * ? |
| MaxSize | int | 批次上报的数量,默认 100 |
| MaxQueue | int | 消息队列最大数量,默认 50000 |
| MaxConsumer | int | 消费者线程数最大数量,默认 10 |
| Compression | string | 压缩算法,为None,目前暂不支持 |
| Timezone | string | 时区,示例:Asia/Shanghai(不要使用 utc+8 方式),默认Asia/Shanghai,上报请根据服务部署时区进行上报 |
| LogLevel | string | info 、debug、warn、error |