随着企业数字化转型的提速,数据量急剧增长且来源日益多样化,传统的数据处理方式已难以满足当前业务需求。DataLeap 具备数据服务 API 和数据集成功能,作为一种高效的数据访问手段,它支持企业创建数据服务 API 以读取不同数据库中的数据,并借助 DataLeap 的数据集成能力,将这些数据同步至数据湖中,从而为后续的数据分析和机器学习提供统一的基础。
在本次实践中,我们通过数据集成 Rest_API 到 LAS 数据源通道任务,将 Oracle 数据源 API 中查询到的数据,传输到 LAS 数据源库表下,进行深入分析。同时,Oracle 数据源 API 还将启用动态 Token 鉴权能力,以保障数据安全性和 API 灵活性。
新建数据集成任务运行所需的 Rest_API 和 LAS 数据源,具体操作如下:
登录DataLeap控制台。
选择具体项目后进入数据开发 > 数据源管理 > 自定义数据源,进入自定义数据源管理页面。
单击右上角新建数据源按钮,进入新建数据源页面。
依次完成以下数据源注册信息配置:
配置 Rest_API 数据源
参数 | 说明 |
|---|---|
数据源类型 | 下拉可选 Rest_API 数据源类型。 |
接入方式 | 目前仅支持公网的接入方式。 |
数据源名称 | 数据源的名称,可自行设置。 |
数据源描述 | 数据源的描述信息。 |
REST_API参数配置 | |
API Url | 输入源端 API Url 链接地址,可从数据服务 API 详情中获取。 |
默认请求头 | 默认的请求头格式,例如:{"Autzzzzzion":"Bexxxxet-toxxxn-1"},没有时可不填写。 |
验证方式 | REST_API数据源注册时,目前支持以下三种验证方式,您可根据实际场景选择鉴权模式:
此处无验证方式时,可选择 No auth。 |
配置 LAS 数据源
参数 | 说明 |
|---|---|
数据源类型 | 下拉可选 LAS 数据源类型。 |
接入方式 | 目前仅支持公网的接入方式。 |
数据源名称 | 数据源的名称,可自行设置。 |
数据源描述 | 数据源的描述信息。 |
LAS 参数配置 | |
LAS Schema | 输入已创建好的 LAS Schema 库名,如 dataleap_deploy_test |
数据源信息配置完成后,单击连通性测试按钮,验证配置信息是否正确。
连通成功后,单击确认按钮,完成数据源注册。
本实践中为您介绍两种工作流配置方式。
工作流任务创建完成后,您可以单击工作流名称,进入工作流配置界面。在工作流界面中,便可通过可视化拖拉拽的方式,将 Python 和 数据集成任务往右侧拖入画布中,进行多引擎任务混合编排设计。
拖入 Python 任务类型,并输入任务名称为:Python获取Token;
双击已拖入的 Python 子节点,在新页签中,输入以下 Python 逻辑,来实现数据服务 API 动态 Token 的获取:
import requests import json url = "http://exxxxxxxx-onpremise.volces.com/data_service/api/v2/api_service/token" payload = json.dumps({ "AppKey": "57xxxxxxxxxx6n", "AppSecret": "onxxxxxxxxxxGND" }) headers = { 'user': 'dladmin', 'Content-Type': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) data = response.json() token_value = data["data"]["Token"] print(token_value)
脚本中参数说明:
参数 | 说明 |
|---|---|
url | API 应用使用动态密钥方式时,在 API 详情的接口文档中,可获取其调用的 URL 信息。 |
AppKey | 填写数据服务 > 系统管理 > 应用管理,对应应用的密钥管理中的 AppKey 信息。 |
AppSecret | 填写数据服务 > 系统管理 > 应用管理,对应应用的密钥管理中的 AppSecret 信息。 |
脚本设置完成后,在编辑器上方,下拉选择执行引擎为 2.7 版本。
执行引擎选择完成后,进入右侧调度设置界面,进行任务输出参数设置,勾选”将运行结果当做输出“选项,便可自动生成输出参数”outputs“。
至此,Python 子节点已配置完成,单击编辑器上方的保存按钮,保存任务配置。
返回工作流节点,并在画板中拖入数据集成子节点,并输入任务名称为 api2las;
添加子任务依赖
数据集成子任务创建完成后,您可通过子任务中心的点,用拉线的方式来形成子任务间的上下游依赖关系。
依赖添加完成后,双击数据集成子节点,进入数据集成任务配置界面,依次进行数据来源和目标端的配置:
其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
REST_API 离线读参数说明
参数 | 说明 |
|---|---|
*数据源类型 | 您可下拉选择或输入关键词进行搜索REST_API数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的REST_API数据源,名称为:doc_rest_api |
*是否拼接header | 按需选择是否在REST_API中拼接header信息,此处无需拼接,可选否。 |
*请求Method | 选择请求Method方法,支持指定请求参数的传参位置。 |
请求参数 | 按需添加传递给API的请求参数信息,若创建 API 时无设定请求参数,可跳过。 |
*请求Body | 请求Method为POST时,传参位置为Body,需添加请求Body信息,此处以JSON方式添加,内容可参考数据服务 API 调用示例,如:
说明 其中:
|
*返回数据结构 | 根据实际接口返回数据的类型进行选择,此示例中选择数组数据结构。 |
*数据格式 | 仅支持json的格式。 |
*编码格式 | 支持设置响应体编码格式:UTF-8、GBK两种格式。 |
数据存储json路径 | 输入数组数据存储的 json 路径,可为$(表示保存在根路径),或者类似aa.bb.cc的格式。此示例中路径为:$.Data |
*预览数据 | 您可通过数据服务 API 测试或使用第三方工具 Postman 事先调用一次 API 后,获得该API返回的预览数据,填写想要获取的数据格式,如:
以此来获取源端需要读取数据的字段信息,方便字段映射时进行自动添加。 |
*请求次数 | 选择 reader 端是单次请求、多次请求或分页请求。 |
LAS 离线写说明
参数 | 说明 |
|---|---|
*数据源类型 | 您可下拉选择或输入关键词进行搜索LAS数据源类型。 |
*数据源名称 | 已在数据源管理中注册成功的LAS数据源,名称为:Las_Preparation_Source |
*数据表 | 选择对应数据源 Schema 下所需要采集的数据表信息,下拉可选。 |
*分区设置 | 分区字段从 LAS 表自动获取。 |
数据来源和目标端基础信息配置完成后,在字段映射中,单击自动添加按钮,可自动配置源端和目标端映射的字段信息,一一对应即可。
字段映射配置完成后,单击右侧调度设置按钮,进行任务输入参数设置。
单击手动添加按钮,输入参数名称outputs、类型为任务、来源下拉选择为上游 Python 任务名称及对应的输出参数名称。
输入参数添加完成后,单击任务保存按钮,保存数据集成子节点任务配置。
子节点任务配置完成后,在整体工作流任务的右侧导航栏中,单击调度配置按钮,进入调度配置窗口,您可以在此设置基本信息、调度属性、依赖等信息,详细参数设置详见“”调度设置。
调试结果确认无误后,单击上方操作栏中的保存和提交上线按钮,在提交上线对话框中,选择回溯数据、监控设置、提交设置等参数,最后单击确认按钮,完成作业提交。 提交上线说明详见“提交上线”。
工作流任务提交发布完成后,您便可前往任务运维界面,进行任务的关闭、回溯等运维操作。详见“离线任务运维”。
此方式中,您可不依赖整体的一个工作流,可创建独立的 Python 和 数据集成任务。
说明
Python 脚本逻辑与参数说明,详见5.1.2.1 配置 Python 子节点。
数据集成任务新建完成后,进入到任务配置详情界面完成相关配置。
此方式配置完 Python 和数据集成任务后,若需要立即验证数据结果,则您需将任务发布到运维中心,并发起数据回溯,来验证 API 数据入湖结果。或者,您也可以在两个任务正常到达调度实例执行之后,再来验证数据结果。
以上两种方式其一执行完成后,您便可通过数据开发 > 临时查询能力,查询落入 LAS 库表中的实际数据。
在任务开发界面左侧导航栏中,进入临时查询界面。
单击新建查询按钮,新建 LAS SQL 查询任务。
在查询编辑界面,选择执行的队列信息和相应的执行引擎(默认为 Spark,可切换为 Auto 来执行)后,编辑如下查询语句:
SELECT * from dataleap_deploy_test.doc_restapi_las where date=20240909;