轻易云平台实现跨系统数据转换与写入MySQL的实战

  • 轻易云集成顾问-姚缘

案例解析:吉客云·奇门数据集成到MySQL

轻易云数据集成平台在系统对接和元数据配置方面表现出色,下面我们将分享一个实际案例:如何将吉客云·奇门的数据高效、准确地集成到MySQL数据库中。通过这一实例,我们可以看到具体的技术细节和最佳实践。

背景与需求

在本次案例中,我们需要实现的是从吉客云·奇门获取销售退货单信息,并通过轻易云平台进行处理,再迁移到MySQL数据库。这一过程不仅要求高吞吐量的数据写入能力,还需兼顾实时监控与故障处理,以确保数据的完整性和一致性。

设计思路与解决方案概述

  1. API接口调用

    • 吉客云·奇门提供了jackyun.tradenotsensitiveinfos.list.get API用于查询销售退货单。
    • MySQL写入使用execute API。
  2. 定时抓取与批量处理

    • 采用定时任务机制,从吉客云·奇门系统定期抓取最新的销售退货单信息。
    • 批量导入到MySQL,以提升整体效率并减少资源消耗。
  3. 监控与告警

    • 实现对整个数据流动过程的实时监控及异常告警,确保问题能够及时发现并快速解决。
  4. 分页与限流

    • 对于大批量的数据,通过分页机制提高接口调用效率,避免因请求次数过多导致限流问题。
  5. 格式转换与映射

    • 数据格式差异是跨系统整合的一大挑战,通过自定义转换逻辑,将不同结构的数据映射为统一格式,实现无缝对接。
  6. 错误重试机制

    • 在网络波动或服务暂时不可用等情况下,利用重试机制保证任务执行成功率,提高系统可靠性。

继续阅读以了解详细实施步骤和关键技术点。 金蝶与MES系统接口开发配置

使用轻易云数据集成平台调用吉客云·奇门接口获取并加工数据

在数据集成的生命周期中,第一步是从源系统获取数据。本文将详细探讨如何通过轻易云数据集成平台调用吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get来获取销售退货单数据,并对其进行初步加工。

接口调用配置

首先,我们需要配置接口调用的元数据。根据提供的元数据配置,接口jackyun.tradenotsensitiveinfos.list.get使用POST方法进行请求,以下是具体的请求参数配置:

  • modified_beginmodified_end:用于指定修改时间范围,必须同时存在且时间间隔不能超过七天。
  • startModifiedendModified:最后修改时间范围。
  • tradeNo:销售单号,可以传多个,用半角逗号分隔。
  • pageSize:每页记录数,默认50,最大1000。
  • pageIndex:页码,从0开始。
  • hasTotal:首次调用时传1以获取总记录数。
  • startCreatedendCreated:创建时间范围。
  • startAuditTimeendAuditTime:审核时间范围。
  • startConsignTimeendConsignTime:发货时间范围,默认值分别为当前时间前3天和当前时间。
  • tradeStatus:订单状态,默认值为9090。
  • tradeType:订单类型,默认值为8。
  • sourceTradeNos:网店订单号。
  • fields:需要返回的字段列表,用逗号分隔,包括tradeNo, consignTime, totalFee, tradeCount, discountFee, payment, receivedTotal, warehouseCode, warehouseName, goodsDetail.sellCount, goodsDetail.shareFavourableAfterFee等字段。

数据请求与清洗

在发送请求后,我们会收到一个包含多个字段的数据响应。为了便于后续处理和存储,需要对这些数据进行初步清洗和格式化。以下是具体的格式化规则:

  1. 将字段 consignTime 转换为 datetime_new 并格式化为日期类型。
  2. 将字段 tradeNo 转换为 order_no_new 并格式化为字符串类型。

示例代码如下:

{
  "api": "jackyun.tradenotsensitiveinfos.list.get",
  "method": "POST",
  "number": "tradeNo",
  "id": "tradeId",
  "pagination": {
    "pageSize": 100
  },
  "idCheck": true,
  "formatResponse": [
    {
      "old": "consignTime",
      "new": "datetime_new",
      "format": "date"
    },
    {
      "old": "tradeNo",
      "new": "order_no_new",
      "format": "string"
    }
  ],
  ...
}

请求示例

为了更好地理解如何构建请求,这里提供一个实际的请求示例:

{
  "modified_begin": "2023-09-01T00:00:00Z",
  "modified_end": "2023-09-07T23:59:59Z",
  ...
}

在这个请求中,我们指定了修改起始时间和结束时间,同时设置了其他必要参数,如页码、每页记录数等。

数据转换与写入

在完成数据清洗后,我们需要将其转换并写入目标数据库(如MySQL)。这一步骤通常包括以下几个子步骤:

  1. 数据映射:将清洗后的字段映射到目标数据库中的相应字段。例如,将 datetime_new 映射到 MySQL 表中的 consign_time 字段,将 order_no_new 映射到 order_no 字段等。
  2. 数据插入或更新:根据主键或唯一标识符(如 tradeId)判断是插入新记录还是更新已有记录。

示例代码如下:

INSERT INTO sales_return_orders (order_no, consign_time, total_fee, trade_count, discount_fee, payment)
VALUES (?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
total_fee = VALUES(total_fee),
trade_count = VALUES(trade_count),
discount_fee = VALUES(discount_fee),
payment = VALUES(payment);

通过上述步骤,我们可以实现从吉客云·奇门接口获取销售退货单数据,并将其高效地集成到目标数据库中。这不仅提高了数据处理的透明度和效率,还确保了不同系统间的数据一致性和完整性。 用友与MES系统接口开发配置

将源平台数据转换为MySQL API接口格式并写入目标平台

在轻易云数据集成平台的生命周期中,数据转换与写入是关键的一步。本文将深入探讨如何将已经集成的源平台数据进行ETL转换,并转为目标平台 MySQL API 接口所能接收的格式,最终写入目标平台。

数据请求与清洗

在进行数据转换之前,我们需要确保数据已经从源平台成功请求并清洗。这一步骤通常包括从异构系统中提取数据、处理脏数据、去重和格式化等操作。假设我们已经完成了这些步骤,现在进入数据转换与写入阶段。

数据转换配置

在轻易云数据集成平台中,元数据配置是实现数据转换的核心。以下是一个具体的元数据配置示例,用于将吉客云查询销售退货单的数据转换为 MySQL API 接口所能接收的格式:

{
  "api": "execute",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "main_params",
      "label": "main_params",
      "type": "object",
      "describe": "111",
      "children": [
        {
          "field": "subTradeId",
          "label": "明细id",
          "type": "string",
          "value": "{goodsDetail_subTradeId}"
        },
        {
          "field": "order_no_new",
          "label": "单号",
          "type": "string",
          "value": "{order_no_new}"
        },
        {
          "field": "datetime_new",
          "label": "时间",
          "type": "date",
          "value": "{datetime_new}"
        },
        {
          "field": "sales_count",
          "label": "金额",
          "type": "string",
          ...

在这个配置中,我们定义了多个字段,并通过value属性指定了每个字段的来源。例如,subTradeId字段的值来自于{goodsDetail_subTradeId},而sales_count字段则通过一个函数计算得出:_function '{{goodsDetail_shareFavourableAfterFee}}' * -1

数据写入配置

为了将转换后的数据写入 MySQL 数据库,我们需要定义 SQL 插入语句。在元数据配置中,这部分通过 otherRequest 字段实现:

{
  ...
  ],
  ...
  ],
  ...
  ],
  ...
  ],
  ...
  ],
  ...
}

这里我们使用了 REPLACE INTO SQL语句,将各个字段插入到 jky_xsth 表中。注意,SQL语句中的参数以冒号(:)开头,例如:subTradeId:order_no_new等,这些参数对应于前面定义的字段。

实际操作步骤

  1. 获取源数据:通过API或其他方式从吉客云查询销售退货单的数据。
  2. 清洗与预处理:对获取的数据进行清洗和预处理,确保其符合后续处理要求。
  3. 配置元数据:按照上述示例配置元数据,包括字段映射和SQL插入语句。
  4. 执行ETL过程:利用轻易云平台执行ETL过程,将源数据转换为目标格式并写入MySQL数据库。

技术要点

  • 字段映射与计算:在元数据配置中,通过 value 属性可以直接映射字段值,也可以使用 _function 来进行复杂计算。
  • SQL注入防护:使用参数化查询(如:subTradeId)来防止SQL注入攻击。
  • 异步处理:轻易云平台支持全异步处理,可以提高性能和可靠性。

通过以上步骤和技术要点,我们可以高效地将源平台的数据转换为MySQL API接口所能接收的格式,并成功写入目标平台。这不仅提升了业务透明度和效率,还确保了数据处理过程的准确性和安全性。 金蝶与CRM系统接口开发配置

更多系统对接方案