更新时间:2021-01-04 15:00
开放数据处理服务MaxCompute(原ODPS)是一个开放的计算平台,如果您要导入到OpenSearch的数据是由MaxCompute平台计算而产生的,则可以在应用中配置MaxCompute源信息,在触发应用索引重建任务后,系统会自动去获取 MaxCompute 表中的全量数据,后续的增量需通过调用SDK API推送过来。
目前 MaxCompute 数据源只支持全量同步,不支持增量同步。
OpenSearch支持当前账号下的MaxCompute(原ODPS)的project,或者已经授权给当前账号访问的project中获取数据。选择“ODPS”数据源后,选择“被授权的project”,输入odps中要访问的project信息进行连接校验(已成功连接的project系统会进行缓存,直接点击对应的project名称即可,无需重新连接)。
若报错“没有odps服务权限”,请联系该odps的owner在odps客户端授权project的list权限以及表的all权限,授权账号为使用OpenSearch的阿里云主账号。
注意:RAM子账号不支持授权odps服务权限。原因是:当主帐号授权project给子帐号后,子账号因云有云限制无权限列出主账号全部项目,因此无法引用project作为数据源接入开放搜索。建议先使用主账号连MaxCompute(原ODPS),然后再通过子账号操作应用。
如果连接校验失败,则需要检查授权是否存在或授权最近有无变更过。(需注意ODPS表字段若没有权限或权限不对,也会报错。)
配置字段映射关系:OpenSearch为MaxCompute(原ODPS)的数据提供了若干数据源插件说明,如要使用,则在配置字段对应关系的同时,点击“内容转换”列中的“+”符号,则会在源字段被同步到OpenSearch之前,先进行内容转换,再进行同步。
如果内容转换插件由于配置错误、无法连接等错误失效,则源字段仍然会被同步到目标字段,只是内容不会被转换。
注意:
2.1 根据MaxCompute(原ODPS)数据特性,OpenSearch允许用户根据具体需要来指定导入的分区,高级版支持正则表达式,表示导入前一天的数据,结合应用基本信息-索引重建-定时索引重建功能,可以实现每天导入新分区数据的效果。
2.2 标准版以及高级版均支持正则表达式 (等号/逗号/分号/双竖线为系统保留字符,分区列名/列值中应避免出现这些字符):
【高级版/标准版应用每天自动导入前1天分区全量数据条件例子】 pt=%Y%m%d || -1 days 【注:pt为分区字段名】
不同场景下MaxCompute(原ODPS)分区条件用法,参考如下所示:
正则表达式全部可用参数及含义,参考如下:
%a: 星期的简写。如 星期三为Wed
%A: 星期的全写。如 星期三为Wednesday
%b: 月份的简写。如4月份为Apr
%B: 月份的全写。如4月份为April
%c: 日期时间的字符串表示。(如: 04/07/10 10:43:39)
%d: 日在这个月中的天数(是这个月的第几天)
%f: 微秒(范围[0,999999])
%H: 小时(24小时制,[0, 23])
%I: 小时(12小时制,[0, 11])
%j: 日在年中的天数 [001,366](是当年的第几天)
%m: 月份([01,12])
%M: 分钟([00,59])
%p: AM或者PM
%S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
%U: 周在当年的周数当年的第几周),星期天作为周的第一天
%w: 今天在这周的天数,范围为[0, 6],6表示星期天
%W: 周在当年的周数(是当年的第几周),星期一作为周的第一天
%x: 日期字符串(如:04/07/10)
%X: 时间字符串(如:10:43:39)
%y: 2个数字表示的年份
%Y: 4个数字表示的年份
%z: 与utc时间的间隔 (如果是本地时间,返回空字符串) 。
当用户勾选【使用done文件】后,OpenSearch支持用户通过上传done文件的方式控制系统拉取全量数据的时机,保证全量数据的完整性。系统在开始从MaxCompute(原ODPS)拉全量数据之前会先判断一下当天的done文件是否存在,如果不存在则等待,默认等待1小时后超时。
odpscmd –u accessid –p accesskey --project=<prj_name> –e "add file <done file>;"
{
"timestamp":"1234567890000"
}
在文档使用中是否遇到以下问题
更多建议
匿名提交