- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 开始使用ROMA Connect
- 实例管理
- 集成应用管理
-
数据源管理
- ROMA Connect支持的数据源
- 接入API数据源
- 接入ActiveMQ数据源
- 接入ArtemisMQ数据源
- 接入DB2数据源
- 接入DIS数据源
- 接入DWS数据源
- 接入DM数据源
- 接入Gauss100数据源
- 接入FTP数据源
- 接入HL7数据源
- 接入HANA数据源
- 接入HIVE数据源
- 接入LDAP数据源
- 接入IBM MQ数据源
- 接入Kafka数据源
- 接入MySQL数据源
- 接入MongoDB数据源
- 接入MQS数据源
- 接入MRS Hive数据源
- 接入MRS HDFS数据源
- 接入MRS HBase数据源
- 接入MRS Kafka数据源
- 接入OBS数据源
- 接入Oracle数据源
- 接入PostgreSQL数据源
- 接入Redis数据源
- 接入RabbitMQ数据源
- 接入RocketMQ数据源
- 接入SAP数据源
- 接入SNMP数据源
- 接入SQL Server数据源
- 接入GaussDB(for MySQL)数据源
- 接入WebSocket数据源
- 接入自定义数据源
- 数据集成指导
- 服务集成指导
- 服务集成指导(旧版界面)
- 消息集成指导
- 设备集成指导
- 应用业务模型使用指导
- 扩大资源配额
- 查看审计日志
- 查看监控指标
- 权限管理
- 用户指南(新版)
- 最佳实践
-
开发指南
- 数据集成开发指导
-
服务集成开发指导
- 开发说明
- API调用认证开发(APP认证)
- API调用认证开发(IAM认证)
-
自定义后端开发(函数后端)
- 函数后端脚本开发说明
- AesUtils类说明
- APIConnectResponse类说明
- Base64Utils类说明
- CacheUtils类说明
- CipherUtils类说明
- ConnectionConfig类说明
- DataSourceClient类说明
- DataSourceConfig类说明
- ExchangeConfig类说明
- HttpClient类说明
- HttpConfig类说明
- JedisConfig类说明
- JSON2XMLHelper类说明
- JSONHelper类说明
- JsonUtils类说明
- JWTUtils类说明
- KafkaConsumer类说明
- KafkaProducer类说明
- KafkaConfig类说明
- MD5Encoder类说明
- Md5Utils类说明
- QueueConfig类说明
- RabbitMqConfig类说明
- RabbitMqProducer类说明
- RedisClient类说明
- RomaWebConfig类说明
- RSAUtils类说明
- SapRfcClient类说明
- SapRfcConfig类说明
- SoapClient类说明
- SoapConfig类说明
- StringUtils类说明
- TextUtils类说明
- XmlUtils类说明
- 自定义后端开发(数据后端)
- 后端服务签名校验开发
- 消息集成开发指导
- 设备集成开发指导
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 公共资源API
- 数据集成API
- 服务集成API
- 消息集成API
- 设备集成API
- 应用示例
- 权限和授权项
- 附录
- 历史API
- 修订记录
- SDK参考
-
常见问题
- 实例管理
-
数据集成
-
数据集成普通任务
- FDI各类数据库支持哪些数据类型?
- 跟踪号是什么,能跟踪到数据吗?
- FDI任务是否支持清空目标表?
- FDI任务只能采集单张表到单张表吗?
- 用户创建的FDI任务,同一账号的其他用户可见吗?
- FDI通过公网对接其他租户的MRS HIVE如何配置?
- 从OBS解析文件到RDS数据库,采集过一次后,后面采集会进行更新吗?
- OBS源端的CSV文件解析到关系型数据库时,列的值不对怎么办?
- MRS Hive目标字段和源端字段数据类型不匹配时,数据是否能集成到目标端?
- MRS Hive、MRS HBase和MongoDB的Mapping映射手动输入时,是否区分大小写?
- MRS Hive是否支持分区?
- 源端API类型数据源自定义周期如何设置?
- SAP是否支持分页读取视图?
- 数据集成组合任务
-
数据集成普通任务
- 服务集成
- 消息集成
- 设备集成
-
故障排除
-
数据集成任务
- MRS Hive目标端写入时出现数据乱码
- MRS Hive写入时数据全部写在第一个字段里
- 目标端任务报任务运行超时
- MySQL到MRS Hive时目标端报“could only be written to 0 of the 1 minReplication nodes. There are 2 datanode(s) running and 2 node(s) are excluded in this operation”错误
- Mysql到Mysql时源端报“Illegal mix of collations for operation 'UNION'”错误
- 源端Mysql增量采集每小时执行一次时部分数据丢失
- API到MySQL时源端报“401 unauthorized”错误
- Kafka集到Mysql目标端报“cannot find record mapping field”错误
- API到MySQL的定时任务时会出现源端报“connect timeout”错误
- Kafka到Mysql的实时任务时,MQS中的Topic下有数据,但是FDI任务没有采集到数据。
- Mysql到Mysql的定时任务,源端有类型为tinyint(1),值为2的字段,但是采集到目标端值就变成了1
- 目标端数据源为公网Kafka时,定时任务目标端报“The task executes failed.Writer data to kafka failed”错误
- 数据集成组合任务
- 数据源
- 服务集成
- 设备集成
-
数据集成任务
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
配置示例
前提条件
- 已获取IAM和ROMA Connect服务所在区域的Endpoint地址。
- 已获取ROMA Connect实例的实例ID,以及实例所在区域的项目ID。
- 在调用ROMA Connect的接口时,需要为调用请求添加认证信息。有Token认证和AK/SK认证两种认证方式,您可以选择其中一种进行认证鉴权,具体操作请参见认证鉴权。推荐使用AK/SK认证,其安全性比Token认证要高。
获取集成应用ID
在ROMA Connect实例中创建的资源(如数据源、API等)都要归属到某个集成应用下,在创建资源前需要获取资源所归属的集成应用ID。
- 如果有可用的集成应用,则调用“查询应用列表”接口,获取集成应用ID。
其中加粗部分需要根据接口参数说明,替换为实际的数据值。
响应示例:
{ "total" : 1, "size" : 1, "apps" : [ { "id" : "b2e6b145********f4b8029f95a3", "name" : "AppName", "remark" : "example" } ], ... }
响应消息中“apps”的值为查询到的集成应用信息列表,找到要使用的集成应用,其中“id”的值即为集成应用ID,保存并留待后续步骤使用。
- 如果没有可用的集成应用,则调用“创建应用”接口,创建一个集成应用并获取集成应用ID。
请求示例:
POST /v2/{project_id}/instances/{instance_id}/apps { "name" : "AppName", "key" : "xxxxxx", "secret" : "******" }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。
响应示例:
{ "id" : "b2e6b145********f4b8029f95a3", "name" : "AppName", "remark" : "example", ... }
响应消息中“id”的值即为集成应用ID,保存并留待后续步骤使用。
接入数据源
调用“创建数据源”接口,接入需要开放数据的数据库,并获取返回的数据源ID。此处以MySQL数据库为例进行说明,其他类型数据库请参考接口的参数说明。
请求示例:
POST /v2/{project_id}/fdi/instances/{instance_id}/datasources { "datasource_name" : "fdi_ds_mysql", "datasource_type" : "MYSQL", "content" : { "host" : "10.10.10.10", "port" : "3306", "database_name" : "romatest", "user_name" : "romatest", "password" : "******", "mode" : "default" }, "app_id" : "xxxxxx", "description" : "test" }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。xxxxxx为获取集成应用ID中获取并保存的集成应用ID。
响应示例:
{ "datasource_id" : "0fd3669d********ed3160ed051", "datasource_name" : "fdi_ds_api_v2", "datasource_type" : "API", ... }
响应消息中“datasource_id”的值即为数据源ID,保存并留待后续步骤使用。
创建数据后端
通过创建数据后端,把要开放的数据库转换为API的后端服务。
- 调用“创建后端API”接口,创建一个自定义后端,并获取返回的后端API编号。
请求示例:
POST /v2/{project_id}/apic/instances/{instance_id}/livedata-apis { "name" : "data_api_demo", "path" : "/data/test", "method" : "GET", "roma_app_id" : "xxxxxx", "version" : "1.0", "content_type" : "json", "return_format" : false, "parameters" : [ { "name" : "param1", "in" : "Parameters", "required" : true } ] }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。xxxxxx为获取集成应用ID中获取并保存的集成应用ID。“parameters”下可根据实际需要设置多个后端请求参数,或不设置请求参数。
响应示例:
{ "id" : "bd42841c********c6d8a06e37", "name" : "data_backend", "roma_app_id" : "98df09fb********2b55ca6f3d5d", "content_type" : "json", ... }
响应消息中“id”的值即为后端API编号,保存并留待后续步骤使用。
- 调用“创建后端API脚本”接口,配置数据后端。
请求示例:
POST /v2/{project_id}/apic/instances/{instance_id}/livedata-apis/{ld_api_id}/scripts { "api_type" : "data", "scripts" : [ { "ds_id" : "xxxxxx", "type" : "SQL", "object_name" : "data", "content" : "ZnVuY3Rpb24g******cmxkISIKfQ==" } ] }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。{ld_api_id}为创建自定义后端时获取并保存的后端API编号,xxxxxx为接入数据源中获取并保存的数据源ID。
获取API分组ID
API分组是同一类业务API的集合,每个API都要归属到某个API分组下,在发布数据API前需要获取API所归属的API分组ID。
- 如果有可用的API分组,则调用“查询分组列表”接口,获取分组ID。
其中加粗部分需要根据接口参数说明,替换为实际的数据值。
响应示例:
{ "total" : 2, "size" : 2, "groups" : [ { "name" : "api_group_001", "id" : "c77f5e81d********ef2b0ac7600", "remark" : "group1", ... }, ... ] }
响应消息中“groups”的值为查询到的API分组列表,找到要使用的API分组,其中“id”的值即为API分组ID,保存并留待后续步骤使用。
- 如果没有可用的API分组,则调用“创建API分组”接口,创建一个API分组并获取分组ID。
请求示例:
POST /v2/{project_id}/apic/instances/{instance_id}/api-groups { "name" : "api_group_001", "version" : "V2", "roma_app_id" : "xxxxxx" }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。xxxxxx为获取集成应用ID中获取并保存的集成应用ID。
响应示例:
{ "name" : "api_group_001", "id" : "c77f5e81d********ef2b0ac7600", "remark" : "group1", ... }
响应消息中“id”的值即为API分组ID,保存并留待后续步骤使用。
部署并发布数据API
- 调用“部署后端API”接口,部署数据后端并发布一个数据API,获取返回的前端数据API编号。
POST /v2/{project_id}/apic/instances/{instance_id}/livedata-apis/{ld_api_id}/deploy { "deploy_front_api" : true, "roma_app_id" : "xxxxxx" "auth_type" : "APP", "group_id" : "yyyyyy", "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", "method" : "GET", "path" : "/data/test", "protocol" : "HTTPS", "backend_timeout" : 5000, "cors": false }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。{ld_api_id}为创建数据后端时获取并保存的后端API编号,xxxxxx为获取集成应用ID中获取并保存的集成应用ID,yyyyyy为获取API分组ID中获取并保存的API分组ID。
响应示例:
{ "id" : "5e19590f54444d8a9b8fe698ce26e9fe", "deploy_time" : "2020-09-19T06:58:13Z", "api_id" : "1d0432f1a********ae7bd96ca6", "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", ... }
响应消息中“api_id”的值即为前端数据API的编号,保存并留待后续步骤使用。
- (可选)在发布数据API时无法为数据API添加请求参数,若需要为数据API添加请求参数,则调用“修改API”接口为数据API添加请求参数。
请求示例:
PUT /v2/{project_id}/apic/instances/{instance_id}/apis/{api_id} { "name": "Data_API", "type": 1, "req_protocol": "HTTPS", "req_method": "GET", "req_uri": "/data/test", "auth_type": "APP", "backend_type": "HTTP", "group_id": "c77f5e81d********ef2b0ac7600", "req_params": [ { "name": "param01", "type": "STRING", "location": "QUERY" } ], }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。{api_id}为发布数据API时获取并保存的前端数据API编号,“req_protocol”、“req_method”、“req_uri”、“auth_type”、“group_id”需与发布数据API时设置的值保持一致。“parameters”下可根据实际需要设置多个后端请求参数,或不设置请求参数。
为数据API绑定独立域名
开放的API需要绑定独立域名,用户通过独立域名访问API。
- 调用“绑定域名”接口,为数据API绑定一个独立域名,并获取返回的域名编号。
请求示例:
POST /v2/{project_id}/apic/instances/{instance_id}/api-groups/{group_id}/domains { "url_domain" : "www.example.com" }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。{group_id}为获取API分组ID中获取并保存的API分组ID。
响应示例:
{ "url_domain" : "www.example.com", "id" : "c5e0d5ba********ae22c1a17", "status" : 3, "min_ssl_version" : "TLSv1.1" }
响应消息中“id”的值即为域名编号,保存并留待后续步骤使用。
- (可选)若部署并发布数据API时配置了使用HTTPS协议,则需要调用“绑定域名证书”接口为独立域名添加SSL证书。
请求示例:
POST /v2/{project_id}/apic/instances/{instance_id}/api-groups/{group_id}/domains/{domain_id}/certificate { "name" : "cert_demo", "private_key" : "-----Start certificate----********-----End certificate-----", "cert_content" : "-----Start RSA private key----- ********-----End RSA private key-----" }
其中加粗部分需要根据接口参数说明,替换为实际的数据值。{group_id}为获取API分组ID中获取并保存的API分组ID,{domain_id}为绑定独立域名时获取并保存的域名编号。
获取数据API的调用信息
调用“查询API详情”接口,查看并保存API的调用信息,包括API的请求协议、请求方式、请求路径、访问域名、请求参数和认证方式。
请求示例:
GET /v2/{project_id}/apic/instances/{instance_id}/apis/{api_id}
其中加粗部分需要根据接口参数说明,替换为实际的数据值。{api_id}为部署并发布数据API中获取并保存的前端数据API编号。
响应示例:
{ "name": "API_test", "type": 1, "version": "V1.0", "req_protocol": "HTTP", "req_method": "GET", "req_uri": "/api/demo", "auth_type": "APP", ... "domain_name": "www.example.com", ... "req_params": [], ... }
响应消息中,“req_protocol”为请求协议,“req_method”为请求方式,“req_uri”为请求路径,“domain_name”为访问域名,“req_params”为请求参数信息,“auth_type”为认证方式。
把API调用信息提供给其他用户,其他用户通过调用数据API,获取开放的业务数据。不同的API认证方式,调用数据API的操作有所不同,具体请参考调用开放的API。