订单同步服务使用

订单同步服务背景

许多卖家和ISV在采用API获取订单、商品、退款等主要的信息的时候,由于网络、服务器、开发技术水平等影响,常常会出现数据重复、数据漏单或者是获取不了数据的现象,这使得卖家尤其是在应对大促的时候束手无策,只能眼睁睁的看着生意溜走或者被投诉,如何才能让卖家再也不用为这些事情烦恼呢?天猫联合淘宝、万网、阿里云一起推出了数据同步服务,通过使用聚石塔中的云数据库,实现将淘宝的订单、商品、退款等主要数据直接实时、准确地推送给用户,让用户再也不用为这些数据而烦恼!

最新咨询

相信ISV们在使用云数据库RDS的时候,肯定遇到过慢sql的一系列问题,我们如何能够快速的排查到原因?如何来优化sql的性能?同样,我们在使用同步服务数据库的时候,也会遇到查询时因为索引问题慢,因为子查询导致查询慢,分页的问题等等,这么麻烦的事情我们的DBA根据实际经验积累,对这些问题进行了总结和归纳,更好的帮助ISV们优化sql,更好的使用RDS以及同步服务。详细请下载:

双十一RDS最佳实践

同步服务数据库访问规范

 

订单同步服务价值

1、各项专利技术(对单,补单)确保订单数据不漏;

2、使用聚石塔appkey 下载数据,走绿色通道。不占客户流量,别人排队走API,你是领导先飞;
3、数据下载存放至RDS中,确保商家的数据安全。成交的客户放进RDS里,才是真正自己的客户。
4、数据下载后,存放进 sys_info 数据库,表结构与API返回数据格式一模一样。对于ISV来说这意味着,开发成本为0.005(开发一个API取订单程序,就能用订单同步服务取订单)。

订单同步服务使用

有了价值和功能的介绍,那么要怎么使用订单同步服务呢,在聚石塔控制平台做如下设置,

选择订单同步服务,若订购过数据推送也会在此显示


设置推送历史数据时间(最长三个月),并根据需求设置sys_info保留时长

 

自定义推送类目及返回字段

选择同步到哪台RDS,选择同步的实例名称右箭头添加,RDS较多可通过搜索实例名称的方式添加

 通过聚石塔Portal页面添加,点击“选择用户”选择应用所属用户

选中用户点击右箭头添加或左箭头删除已选用户,如果用户量大可通过搜索的方式添加,点击确定完成。

 

启用停止订单同步服务

打勾则启用订单同步,去掉对勾刚取消订单同步

代码示例

删除sys_info数据

http://api.taobao.com/apidoc/api.htm?path=apiId:22128

 

API的方法批量添加删除用户

//添加用户

 JushitaJdpUserAddRequest request=new JushitaJdpUserAddRequest();
      request.setRdsName(
"xxxx");//xxxxrds实例名(注:原使用数据推送2.0的用户请需更新为权限版SDK,下载文档http://open.taobao.com/doc/detail.htm?spm=0.0.0.0.zq2Xw0&id=34
     JushitaJdpUserAddResponse response=client.execute(request,"session_xxxx");//session_xxxx为用户授权sessionKey;

使用API的方式 删除用户

//删除用户
      JushitaJdpUserDeleteRequest request=
new JushitaJdpUserDeleteRequest();
      request.setUserId(0L);
//这里设置用户id
      JushitaJdpUserDeleteResponse response=
client.execute(request);

 注:

     如果用户已经存在,调用add接口只会改变路由关系,而不会重复推历史数据。

     如果先调用delete接口,再调用add接口,则会重新推送历史数据。

 

轮询sys_info订单同步服务数据代码示例

public static void doSyncToBiz(Connection con, String start, String end)
         
throws SQLException, ApiException {
      
// 这里以mysql库,查询交易表为例子
      String query = 
"select tid,jdp_response from jdp_tb_trade where jdp_modified >? and jdp_modified;
      PreparedStatement sqlStatement = con.prepareStatement(query);
      sqlStatement.setString(1, start);
      sqlStatement.setString(2, end);
      ResultSet result = sqlStatement.executeQuery();
      
while (result.next()) {         
         String jdpResponse = result.getString(
"jdp_response");
         
// 把json转为API的返回对象
         TradeFullinfoGetResponse 
rsp = TaobaoUtils.parseResponse(
               jdpResponse, TradeFullinfoGetResponse.
class);
         
// TODO isv根据业务需要把相关字段更新到业务库
         
//
      }
   }

 

订单同步服务的sysinfo的表结构

表结构设计为:关键字段+Text大字段,其中关键字段的命名和API返回字段是一致的。业务字段增加,只增加到Text大字段里。而关键字段一旦确定,就不会再改变。

表结构如下:

交易

JDP_TB_TRADE

名称

类型

说明

tid

NUMBER

交易订单id

status

VARCHAR

交易状态

type

VARCHAR

交易类型

seller_nick

VARCHAR

卖家昵称

buyer_nick

VARCHAR

买家昵称

created

DATETIME

交易创建时间

modified

DATETIME

交易修改时间

jdp_created

DATETIME

数据推送的创建时间

jdp_modified

DATETIME

数据推送的修改时间

Jdp_hashcode

VARCHAR

Jdp用来做数据校验的字段

jdp_response

MEDIUMTEXT(sqlserverTEXT)

API返回的整个JSON字符串,格式和API保持一致

(参看taobao.trade.fullinfo.get)

索引

jdp_tb_trade` 
(`seller_nick`,`jdp_modified`),
(`jdp_modified`),
(`seller_nick`,`modified`),
(`modified`)

退款

JDP_TB_REFUND

名称

类型

说明

refund_id

NUMBER

退款单号

status

VARCHAR

退款状态

seller_nick

VARCHAR

卖家昵称

buyer_nick

VARCHAR

买家昵称

created

DATETIME

退款时间

modified

DATETIME

修改时间

jdp_created

DATETIME

 

数据推送的创建时间,197011日到现在的毫秒数

jdp_modified

DATETIME

 

数据推送的修改时间,197011日到现在的毫秒数

Jdp_hashcode

VARCHAR

Jdp用来做数据校验的字段

jdp_response

MEDIUMTEXT

(sqlserverTEXT)

API返回的整个JSON字符串,格式和API保持一致

(参看taobao.refund.get)

索引

jdp_tb_refund` 
(`seller_nick`,`jdp_modified`),
(`jdp_modified`),
(`seller_nick`,`modified`),
(`modified`)

 

商品

JDP_TB_ITEM

名称

类型

说明

num_iid

NUMBER

商品数字id

nick

VARCHAR

卖家nick

Approve_status

VARCHAR

商品上传后的状态。onsale出售中,instock库中

cid

NUMBER

商品类目ID

has_showcase

VARCHAR

橱窗推荐,true/false

has_discount

VARCHAR

支持会员打折,true/false

created

DATETIME

商品创建时间

modified

DATETIME

商品修改时间

jdp_created

DATETIME

 

数据推送的创建时间,197011日到现在的毫秒数

jdp_modified

DATETIME

 

数据推送的修改时间,197011日到现在的毫秒数

Jdp_delete

NUMBER

0表示正常,1表示逻辑删除。当收到商品删除消息时,程序做逻辑删除

Jdp_hashcode

VARCHAR

Jdp用来做数据校验的字段

jdp_response

MEDIUMTEXT(sqlserverTEXT)

API返回的整个JSON字符串,格式和API保持一致,但不包含商品描述字段

(参看taobao.item.get)

索引

jdp_tb_item` 
(`nick`,`jdp_modified`),
(`jdp_modified`),
(`nick`,`modified`),
(`modified`)

 

分销

JDP_FX_TRADE

名称

类型

说明

fenxiao_id

NUMBER

分销流水号,分销平台产生的主键

tc_order_id

NUMBER

主订单ID (经销不显示)

status

VARCHAR

采购单交易状态

supplier_username

VARCHAR

供应商在来源网站的帐号名

distributor_username

VARCHAR

分销商在来源网站的帐号名

created

DATETIME

采购单创建时间

modified

DATETIME

交易修改时间

jdp_created

DATETIME

 

数据推送的创建时间,197011日到现在的毫秒数

jdp_modified

DATETIME

 

数据推送的修改时间,197011日到现在的毫秒数

Jdp_hashcode

VARCHAR

Jdp用来做数据校验的字段

jdp_response

MEDIUMTEXT(sqlserverTEXT)

API返回的整个JSON字符串,格式和API保持一致

(参看taobao.fenxiao.orders.get)

索引

jdp_fx_trade`
(`supplier_username`,`jdp_modified`),
(`jdp_modified`),
(`supplier_username`,`modified`),
(`modified`)

分销退款

JDP_FX_REFUND

名称

类型

说明

sub_order_id

NUMBER

子单id

refund_create_time

DATETIME

退款创建时间

refund_status

Number

退款状态

supplier_nick

VARCHAR

供应商nick

distributor_nick

VARCHAR

分销商nick

modified

DATETIME

退款修改时间

jdp_created

DATETIME

 

数据推送的创建时间,197011日到现在的毫秒数

jdp_modified

DATETIME

 

数据推送的修改时间,197011日到现在的毫秒数

Jdp_hashcode

VARCHAR

Jdp用来做数据校验的字段

jdp_response

MEDIUMTEXT(sqlserverTEXT)

API返回的整个JSON字符串,格式和API保持一致

(参看taobao.fenxiao.refund.get)

索引

jdp_fx_refund` 
(`supplier_nick`,`jdp_modified`),
(`jdp_modified`),
(`supplier_nick`,`modified`),
(`modified`)

 

 

天猫退款

JDP_TM_REFUND

名称

类型

说明

refund_id

NUMBER

退款单号

refund_status

VARCHAR

退款状态

refund_phase

VARCHAR

售中、售后

seller_nick

VARCHAR

卖家昵称

buyer_nick

VARCHAR

买家昵称

created

DATETIME

退款时间

modified

DATETIME

修改时间

jdp_created

DATETIME

 

数据推送的创建时间,197011日到现在的毫秒数

jdp_modified

DATETIME

 

数据推送的修改时间,197011日到现在的毫秒数

Jdp_hashcode

VARCHAR

Jdp用来做数据校验的字段

jdp_response

MEDIUMTEXT(sqlserverTEXT)

API返回的整个JSON字符串,格式和API保持一致

索引

jdp_tm_refund` 
(`seller_nick`,`jdp_modified`),
(`jdp_modified`),
(`seller_nick`,`modified`),
(`modified`)

 

天猫退货

JDP_TM_RETURN

名称

类型

说明

refund_id

NUMBER

退款单号

status

VARCHAR

退货状态

sid

VARCHAR

物流运单号

refund_phase

VARCHAR

售中、售后

created

DATETIME

退款时间

modified

DATETIME

修改时间

jdp_created

DATETIME

 

数据推送的创建时间,197011日到现在的毫秒数

jdp_modified

DATETIME

 

数据推送的修改时间,197011日到现在的毫秒数

Jdp_hashcode

VARCHAR

Jdp用来做数据校验的字段

jdp_response

MEDIUMTEXT(sqlserverTEXT)

API返回的整个JSON字符串,格式和API保持一致

索引

jdp_tm_return` 
(`status`,`jdp_modified`),
(`jdp_modified`)

有话要说