# 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 |