全部产品
云市场

离线增量

更新时间:2019-09-11 16:08:29

适用场景

离线增量方式适用于较大规模(百万级)、离线数据操作。

操作步骤

离线增量需要用户开通对象存储( OSS,以下统称 OSS )服务,并对 图像搜索 服务账号进行授权,具体操作步骤如下:

1. 开通OSS

  • 如果您尚未开通 OSS,请参考 OSS官方开通文档 进行开通。 请确保开通的OSS服务与已购买的图像搜索服务在同一个地域。
  • 开通OSS服务后,需创建相应的存储空间(bucket),请参考OSS创建存储空间

2. 导入数据

完成存储空间(bucket)创建后,需要将增量的数据导入到您的 bucket 中,为此我们约定如下:

  • 图像搜索服务不限定路径(Path),您可以自定义路径,在 提交增量 步骤中传入即可。
  • 在您定义的路径下需要创建 increment.meta 文件,以存储增量任务相关内容,具体内容格式为:
    • 每行对应一个商品(商品、布料、商标图片搜索)或者一张图片(通用图片搜索)。
    • 每个商品/图片由 Json 格式表示,具体字段含义如下表:
字段名 类型 含义 说明
operator String 操作类型 ADD表示新增商品/图片。

DELETE表示删除商品/图片。
item_id String 商品/图片唯一标识符 对于商品图片搜索为商品 ID。

对于通用图片搜索为图片名称。
cat_id Integer 类目信息 对于商品图片搜索该处不填或者参考类目参考

对于布料、商标、通用图片搜索为该处不填或者填 88888888。
cust_content String 用户自定义内容 该处内容会在搜索结果中透出,系统只负责透传。
pic_list Array 图片列表 此处为需要上传的图片名称,系统会处理对应的图片。
  • increment.meta参考示例:

    1. {"operator":"ADD","item_id":"1000", "cat_id":0, "cust_content":"k1:v1,k2:v2,k3:v3", "pic_list":["girl_cloth1.jpg"]}
    2. {"operator":"ADD","item_id":"1001", "cat_id":0, "cust_content":"k1:v1,k2:v2,k3:v3", "pic_list":["girl_cloth2.jpg"]}
    3. {"operator":"ADD","item_id":"1002", "cat_id":0, "cust_content":"k1:v1,k2:v2,k3:v3", "pic_list":["girl_cloth3.jpg"]}
    4. {"operator":"ADD","item_id":"1003", "cat_id":0, "cust_content":"k1:v1,k2:v2,k3:v3", "pic_list":["girl_cloth4.jpg"]}
    5. {"operator":"DELETE","item_id":"10005", "pic_list":["fengyi.jpg"]}
    6. {"operator":"DELETE","item_id":"10006"}
  • increment.meta 文件中涉及的图片存放在 increment.meta 文件所在的同一路径下。

具体上传操作,请参考 OSS文件上传

3. 授权访问

图像搜索产品使用 OSS 服务来实现数据增量,是需要您通过STS(Security Token Service),给 图像搜索 服务账号颁发一个临时访问令牌来实现的。具体实现步骤如下:

创建角色

i. 在 RAM 控制台上,选择 角色管理 > 新建角色image.png | center | 802x390ii. 选择角色类型。这里选择服务角色 > 图像搜索image.png | center | 802x398

image.png | center | 802x595

iii. 配置角色基本信息。 image.png | center | 802x407

角色授权

创建完角色之后,角色是没有任何权限的,需要创建一个授权策略来为服务账号来授予相应的权限。

授权策略如下:

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "oss:GetObject"
  8. ],
  9. "Resource": [
  10. "acs:oss:*:*:${bucket}${path}/*"
  11. ]
  12. }
  13. ]
  14. }
  • ${bucket}: 表示您在 OSS 上创建的 bucket。
  • ${path}: 表示您的增量文件存储的路径。

示例

以用户的 bucket 为 imagesearch-increment,文件存储路径为 /increment 为例,授权策略如下:

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "oss:GetObject"
  8. ],
  9. "Resource": [
  10. "acs:oss:*:*:imagesearch-increment/increment/*"
  11. ]
  12. }
  13. ]
  14. }

具体授权操作步骤如下:

  1. 在RAM控制台上,选择 策略管理 > 新建授权策略image.png | center | 830x405

  2. 选择 空白模板image.png | center | 830x534

  3. 填入 授权策略名称策略内容 > 新建授权策略image.png | center | 830x639

  4. 为角色授权。返回 RAM 控制台首页,选择 角色管理 ,单击 创建角色 中创建的角色名称。image.png | center | 830x405

  5. 选择 角色授权策略 > 编辑授权策略 > 弹框中查找新建的策略 > 单击 确定image.png | center | 830x405

提交增量

实例列表页 或者 实例详情页 单击 增量 按钮,填入相应信息后,单击 提交 按钮,将触发后台服务从OSS上拉取数据,进行更新。

image.png | center | 830x404

资源名称(Arn):单击上述 授权访问 部分新建的角色,取 Arn 字段,示例如下:

image.png | center | 830x406

Bucket 名称:OSS 上创建的相应的 bucket 名称。

请确保开通的OSS服务与已购买的图像搜索服务在同一个地域。

数据路径:增量数据存储的路径。

路径以/符号开头, 如:/imagesearch

以 Bucket 名称:imagesearch1,数据路径:/imagesearch 为例,如下

image.png | center | 830x406

增量历史

在实例详情页,点击查看增量历史后,可以看到所有的增量任务的历史信息。
某个增量任务状态为成功后,用户可以查看相应的提示信息:

  • 如果提示信息为“部分照片处理失败,已为您分离,点击下载”,则表明该增量任务中有部分图片处理失败,用户可以下载相应文件查看处理失败的原因。
  • 如果提示信息为成功,则表明该任务中所有的图片均已处理成功。