MySQL数据集成到金蝶云星空的实践案例
在本次技术分享中,我们将介绍如何使用轻易云数据集成平台,将MySQL数据库中的生产汇报单新增数据高效、可靠地集成到金蝶云星空。具体场景为:深圳天一公司的"SHw生产汇报单新增-带料委外全工序"项目。
首先要解决的问题是确保MySQL数据不漏单,并能够高吞吐量写入至金蝶云星空系统。在这个流程中,实时监控及异常处理显得尤为重要。我们通过MySQL接口select
抓取所需的数据,而后利用金蝶云星空提供的batchSave
API接口进行批量保存。
为了适应业务需求和数据结构,我们自定义了数据转换逻辑,确保从MySQL拉取的数据能无缝对接进入金蝶云。此外,为避免分页和限流问题影响性能,对MySQL接口进行了优化处理。同时,通过设计精细化的异常检测与错误重试机制,提高整个集成过程的可靠性。
轻易云平台提供了强大的可视化工具,使得整个配置过程更加直观,从而快速定位与解决潜在问题。最后,通过集中监控和告警系统,我们实现了实时跟踪任务状态,有效提高运维效率。这些措施共同保障了此次项目的不间断、高质量的数据流转与整合。
调用MySQL接口获取并加工数据的技术实现
在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用MySQL接口select获取并加工数据。
元数据配置解析
元数据配置是实现数据请求与清洗的关键。以下是我们需要重点关注的元数据配置字段:
api
: 表示我们使用的API类型,这里为select
。effect
: 该字段表示操作类型,这里为QUERY
,即查询操作。method
: 该字段表示方法类型,这里为SQL
。number
和id
: 用于标识入库单号。request
: 包含主参数对象,用于动态传递查询参数。otherRequest
: 包含主查询语句,用于定义具体的SQL查询逻辑。
主参数对象
主参数对象包含两个重要字段:
limit
: 返回的记录数,默认值为100。offset
: 数据偏移量,默认值为0。
这些参数允许我们灵活地控制查询结果的数量和起始位置。
"request":[
{
"field":"main_params",
"label":"主参数",
"type":"object",
"describe":"对应主查询语句内的动态参数对象",
"children":[
{
"field":"limit",
"label":"返回的记录数",
"type":"int",
"describe":"你可以使用 LIMIT 属性来设定返回的记录数。",
"value":"100"
},
{
"field":"offset",
"label":"数据偏移量",
"type":"int",
"describe":"你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。"
}
]
}
]
主查询语句
主查询语句是整个数据请求与清洗过程中的核心部分。以下是具体的SQL查询逻辑:
select
case m.delivery_org
when 'T01.01' then CONCAT('HJ', CAST(hj1.id AS CHAR))
when 'T04' then CONCAT('HJGD', CAST(hj1.id AS CHAR))
else
CONCAT('HJ', CAST(hj1.id AS CHAR))
end as 生产订单号,
a.part_no as 成品编号,
c.mode_no as 计划跟踪号,
CONCAT('RKB',CAST(a.id AS CHAR)) as 入库单号,
date(a.update_time) as 日期,
a.confirm_numb as 入库数量,
a.id as sourceid,
0.000001 as 工时,
m.delivery_org as 供应组织
from wms_instock_confirm_task_detail a
left join wms_instock_purchase_task_detail c on c.out_type='1' and c.matterial_type='4'
left join wms_instock_confirm_main_task_detail b on b.connect_uuid=c.uuid
left join mbs_nuclear_price_task hj on hj.mold_no=c.mode_no and hj.part_no=a.part_no
left join mbs_nuclear_price_info hj1 on hj1.nuclear_price_task_uuid=hj.nuclear_price_task_uuid
left join mbs_order_plan_bom l on c.mode_no=l.bom_no
left join mbs_order_bom m on m.bom_uuid=l.bom_uuid
where a.connect_uuid=b.uuid
and a.company_code='TYZN'
and a.update_time>'2023-08-01'
and hj1.create_time>(select config_value from sys_config where config_id=337)
and a.is_success2 !='1' and a.is_success='1'
limit :limit offset :offset
该SQL语句从多个表中联结并提取所需的数据字段,通过条件过滤和动态参数(如limit
和offset
)控制返回的数据集。
实现步骤
- 配置元数据:在轻易云平台上,根据上述元数据配置进行设置。
- 编写SQL查询:根据业务需求编写具体的SQL查询语句,并确保其与元数据中的动态参数相匹配。
- 执行查询:通过平台提供的API接口调用功能,执行配置好的SQL查询,获取并加工数据。
技术要点
- 动态参数化:利用元数据中的动态参数(如
limit
和offset
),实现灵活的数据分页和批量处理。 - 多表联结:通过多表联结操作,实现复杂的数据提取和整合。
- 条件过滤:利用条件过滤(如日期范围、状态标识等),确保仅提取符合业务需求的数据。
以上内容详细介绍了如何通过轻易云平台调用MySQL接口select获取并加工数据。通过合理配置元数据和编写高效的SQL查询,可以实现高效、灵活的数据集成。
轻易云数据集成平台与金蝶云星空API接口的ETL转换与写入
在数据集成生命周期的第二阶段,重点在于将已经集成的源平台数据进行ETL(提取、转换、加载)处理,转为目标平台——金蝶云星空API接口所能够接收的格式,并最终写入目标平台。本文将深入探讨如何使用轻易云数据集成平台配置元数据,以实现这一过程。
API接口配置
在实现ETL转换过程中,首先需要了解金蝶云星空API接口的配置。以下是一个典型的元数据配置示例:
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"number": "FBillNo",
"id": "FID",
"name": "FBillNo",
"idCheck": true,
"operation": {
"method": "merge",
"field": "入库单号",
"bodyName": "items",
"bodySum": ["工时", "入库数量"],
"header": ["生产订单号", "日期", "入库单号"],
"body": ["成品编号", "入库数量", "工时"]
},
...
}
该配置定义了API接口调用的基本信息,包括请求方法(POST)、操作类型(merge)以及关键字段(如FBillNo
和FID
)。
数据请求与清洗
在ETL过程中,首先需要从源系统提取数据,并进行必要的清洗和预处理。以下是一些关键字段及其配置:
FBillNo
: 单据编号,通过模板变量{{入库单号}}
动态赋值。FDate
: 单据日期,通过模板变量{{日期}}
动态赋值。FPrdOrgId
: 生产组织,通过条件语句_function case '{{供应组织}}' when 'T01.01' then 'T01.06' when 'T04' then 'T04' else '' end
动态解析。
这些字段通过模板变量和条件语句,实现了从源系统到目标系统的数据映射和转换。
数据转换与写入
接下来,我们需要将清洗后的数据进行转换,并按照金蝶云星空API接口的要求进行格式化。以下是一些关键字段及其对应关系:
FMaterialId
: 物料编码,通过模板变量{{items.成品编号}}
动态赋值。FFinishQty
: 完成数量,通过模板变量{{items.入库数量}}
动态赋值。FHrWorkTime
: 人员实作工时,通过模板变量{{items.工时}}
动态赋值。
这些字段通过元数据配置中的children
节点定义,实现了对明细行数据的详细映射和转换。
执行操作
最后一步是执行操作,将转换后的数据写入目标系统。以下是一些关键配置:
FormId
: 金蝶表单ID,必须填写为"PRD_MORPT"
。IsAutoSubmitAndAudit
: 是否自动提交并审核,设置为true
。Operation
: 执行操作类型,设置为"Save"
。
这些配置确保了在数据写入过程中能够自动提交并审核,提高了操作效率。
实际案例应用
假设我们有一条生产汇报单的数据需要写入金蝶云星空,源数据如下:
{
"生产订单号": "MO20231001",
"日期": "2023-10-01",
"入库单号": "RK20231001",
...
}
通过上述元数据配置,我们可以将该条数据成功转换并写入金蝶云星空系统中。具体步骤包括:
- 提取源数据,并根据模板变量进行字段映射。
- 根据条件语句和解析规则,对特定字段进行动态赋值。
- 调用金蝶云星空API接口,将格式化后的数据发送至目标系统。
通过以上步骤,我们实现了从源系统到目标系统的数据无缝对接,大大提高了业务处理效率和准确性。
以上即为使用轻易云数据集成平台实现ETL转换并写入金蝶云星空API接口的技术案例。希望通过本文的详细讲解,能够帮助读者更好地理解和应用这一过程。