轻易云平台实现ETL转换及金蝶云星空数据写入技术剖析

  • 轻易云集成顾问-贺强
### 店铺-客户同步:旺店通·企业奇门数据集成到金蝶云星空技术案例分享 在实现旺店通·企业奇门(以下简称"旺店通")的客户数据同步至金蝶云星空(以下简称“金蝶”)过程中,系统对接方案中涉及多个API接口调用和复杂的数据处理逻辑。本案例将详细探讨如何通过轻易云平台高效配置元数据,实现从源头到目的地的数据无缝衔接,包括定时抓取、批量写入以及异常处理等关键环节。 #### 确保集成过程中的完整性及效率 在系统对接中,我们首先需要解决的是确保每个从旺店通获取的数据不会遗漏。为此,通过调用`wdt.shop.query`接口,从源头以分页方式进行可靠抓取,每次只获取一定数量的记录,不仅保障了性能,还可以避免因大批量请求导致的限流问题。这一步骤利用轻易云提供的实时监控功能,将各个环节透明化,显著提升运维效率。 #### 大量数据快速写入金蝶 一旦成功获取了所需的数据,下一个挑战是如何将这些大量且多样化的信息高效写入到金蝶。在这里,我们采用了`batchSave` API来实现批量操作。一方面,这种方法能极大提高写入速度,另一方面,它也减少了网络交互次数,有利于降低延迟并提升整体性能。 #### 数据格式差异与映射关系处理 由于旺店通和金蝶使用不同的平台,各自存储的数据格式和字段定义有较大差异。因此,在实际对接前,需要进行细致且准确的字段映射工作。我们通过定制化的映射模块,对源数据进行预处理,使其符合目标数据库要求,同时结合错误重试机制,应对可能出现的不一致或数据转换错误。 这个集成案例不仅展示了系统之间高效、安全、稳定的数据交互流程,也为未来类似项目奠定了坚实基础。 ![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/D13.png~tplv-syqr462i7n-qeasy.image) ### 调用旺店通·企业奇门接口wdt.shop.query获取并加工数据 在数据集成的生命周期中,调用源系统接口是关键的第一步。本文将详细探讨如何使用轻易云数据集成平台调用旺店通·企业奇门接口`wdt.shop.query`,并对获取的数据进行初步加工。 #### 接口概述 `wdt.shop.query`接口用于查询旺店通系统中的店铺信息。该接口采用POST请求方式,支持分页查询,能够返回指定平台和店铺编号的详细信息。以下是该接口的元数据配置: ```json { "api": "wdt.shop.query", "method": "POST", "number": "shop_no", "id": "shop_id", "pagination": { "pageSize": 100 }, "idCheck": true, "request": [ { "field": "platform", "label": "平台ID", "type": "string" }, { "field": "shop_no", "label": "店铺编号", "type": "string", "describe": "代表店铺所有属性的唯一编码,用于店铺区分,ERP内支持自定义(ERP店铺界面设置),用于获取指定店铺数据信息" } ], "otherRequest": [ { "field": "page_size", "label": "分页大小", "type": "string", "describe": "每页返回的数据条数,输入值范围1~100,不传本参数,输入值默认为40,使用举例单击这里", "value": "{PAGINATION_PAGE_SIZE}" }, { "field": "page_no", "label": "页号", "type": "string", "describe":"不传值默认从0页开始", "value":"{PAGINATION_START_PAGE}" } ] } ``` #### 请求参数配置 在调用`wdt.shop.query`接口时,需要配置以下请求参数: 1. **platform**: 平台ID,用于标识不同的平台。 2. **shop_no**: 店铺编号,是唯一标识某个店铺的编码。 此外,还需要配置分页参数,以便处理大量数据时能够分批次获取: - **page_size**: 每页返回的数据条数,范围为1到100。 - **page_no**: 页号,从0开始。 #### 数据请求与清洗 在轻易云数据集成平台上,我们可以通过可视化界面配置上述请求参数,并发起API调用。以下是一个示例请求配置: ```json { "platform":"taobao", "shop_no":"TB123456", // 分页参数 { page_size:100, page_no:0 } } ``` 通过上述配置,我们可以获取指定平台和店铺编号的详细信息。为了确保数据的一致性和完整性,可以启用`idCheck`选项,该选项会检查返回数据中的`shop_id`字段是否存在重复或缺失。 #### 数据转换与写入 获取到原始数据后,需要对其进行初步清洗和转换。例如,可以对日期格式进行标准化处理,对数值字段进行单位转换等。以下是一个简单的数据清洗示例: ```json { // 原始数据 { shop_id:12345, shop_name:"测试店铺", create_time:"2023-10-01T12:00:00Z" }, // 清洗后的数据 { shop_id:12345, shop_name:"测试店铺", create_time:"2023-10-01" } } ``` 在这个示例中,我们将创建时间字段从ISO8601格式转换为简单的日期格式。 #### 实践案例 假设我们需要同步淘宝平台上的所有店铺信息,可以按照以下步骤进行操作: 1. **初始化请求**:设置初始分页参数(如`page_size=100`, `page_no=0`)。 2. **发起API调用**:使用轻易云平台发起对`wdt.shop.query`接口的调用。 3. **处理响应数据**:对返回的数据进行清洗和转换。 4. **存储结果**:将处理后的数据写入目标数据库或文件系统。 5. **循环分页**:根据返回结果判断是否需要继续请求下一页数据,直到所有数据获取完毕。 通过以上步骤,我们可以高效地完成淘宝平台上所有店铺信息的同步工作。这种方法不仅适用于淘宝平台,也适用于其他类似的平台,只需调整相应的请求参数即可。 总结来说,通过合理配置元数据和请求参数,并结合轻易云平台强大的可视化操作界面,我们可以高效地实现跨系统的数据集成和同步任务。 ![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/S12.png~tplv-syqr462i7n-qeasy.image) ### 轻易云数据集成平台:ETL转换与金蝶云星空API接口写入技术案例 在轻易云数据集成平台中,完成数据生命周期的第二步,即将已经集成的源平台数据进行ETL(Extract, Transform, Load)转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细探讨这一过程中的技术细节和实现方法。 #### 数据请求与清洗 首先,我们需要从源平台获取原始数据并进行清洗。这一步通常包括数据的去重、格式化和标准化处理,以确保后续步骤中的数据质量。在本文中,我们假设这一阶段已经完成,重点讨论如何将清洗后的数据转换并写入金蝶云星空。 #### 数据转换与写入 在轻易云数据集成平台中,元数据配置是实现数据转换和写入的核心。以下是一个典型的元数据配置示例: ```json { "api": "batchSave", "method": "POST", "idCheck": true, "operation": { "rowsKey": "array", "rows": 1, "method": "batchArraySave" }, "request": [ { "field": "FName", "label": "客户名称", "type": "string", "value": "{shop_name}" }, { "field": "FNumber", "label": "客户编码", "type": "string", "value": "{shop_no}" }, { "field": "FCreateOrgId", "label": "创建组织", "type": "string", "parser": { "name": "ConvertObjectParser", "params": "FNumber" }, "value": "100" }, { "field": "FUseOrgId", "label": "使用组织", "type": "string", "parser": { { name: 'ConvertObjectParser', params: 'FNumber' } value: '101' } }, { field: 'FDescription', label: '描述', type: 'string' } ], otherRequest: [ { field: 'FormId', label: '业务对象表单Id', type: 'string', describe: '必须填写金蝶的表单ID如:PUR_PurchaseOrder', value: 'BD_Customer' }, { field: 'Operation', label: '执行的操作', type: 'string', value: 'BatchSave' }, { field:'IsAutoSubmitAndAudit', label:'提交并审核', type:'bool', value:'true' }, { field:'IsVerifyBaseDataField', label:'验证基础资料', type:'bool', describe:'是否验证所有的基础资料有效性,布尔类,默认false(非必录)', value:'false' } ] } ``` #### API接口调用 在上述配置中,我们使用了`batchSave` API接口,并通过POST方法将数据发送到金蝶云星空。以下是具体字段的解释: - `api`: 指定要调用的API接口名称,这里是`batchSave`。 - `method`: HTTP请求方法,这里使用POST。 - `idCheck`: 是否进行ID检查,这里设置为true。 - `operation`: 包含操作相关的信息,如数组键名`rowsKey`、行数`rows`和方法名`method`。 #### 请求参数配置 请求参数部分定义了需要传递的数据字段及其对应关系: - `FName`: 客户名称,对应源数据中的`shop_name`。 - `FNumber`: 客户编码,对应源数据中的`shop_no`。 - `FCreateOrgId`: 创建组织,通过解析器`ConvertObjectParser`将值转换为金蝶系统所需格式,这里固定为"100"。 - `FUseOrgId`: 使用组织,同样通过解析器转换为"101"。 - `FDescription`: 描述字段,可以根据需要填充。 #### 其他请求参数 其他请求参数部分定义了一些必要的元数据信息: - `FormId`: 金蝶业务对象表单ID,这里指定为"BD_Customer"。 - `Operation`: 执行的操作类型,这里是"BatchSave"。 - `IsAutoSubmitAndAudit`: 是否自动提交并审核,这里设置为true。 - `IsVerifyBaseDataField`: 是否验证基础资料有效性,这里设置为false。 #### 数据处理流程 1. **提取(Extract)**:从源系统提取原始数据,并根据业务需求进行初步清洗和格式化处理。 2. **转换(Transform)**:利用元数据配置,将源系统的数据字段映射到目标系统所需格式,并进行必要的数据类型转换和校验。 3. **加载(Load)**:通过调用金蝶云星空API接口,将转换后的数据批量写入目标系统。 通过以上步骤,我们可以实现从源平台到目标平台的数据无缝对接,大大提高了业务流程的自动化程度和效率。在实际应用中,根据具体业务需求,还可以进一步优化和调整元数据配置,以满足不同场景下的数据集成需求。 ![用友与MES系统接口开发配置](https://pic.qeasy.cloud/T23.png~tplv-syqr462i7n-qeasy.image)