Skip to content

cli_mapping

lijiaping edited this page Apr 25, 2019 · 1 revision

Mapping

与文件映射相关的子命令。有一些共同的参数用于筛选出符合要求的任务,包括:

  • project:项目ID
  • id:映射ID,支持筛选或操作多个映射
  • name: 映射名,必须完整匹配
  • source:本地或容器内的文件路径
  • destination:阿里OSS上的文件路径
  • is_write / is_not_write:是否为输出文件
  • is_immediate / is_not_immediate:是否为中间文件
  • is_required / is_not_required:是否为必须文件
  • yes:自动确认对映射的操作
  • fuzzy:模糊搜索source和destination

list

列出符合条件的映射关系。该子命令特有的参数主要与任务的筛选有关,包括:

  • task:任务ID,支持筛选或操作多个任务
  • shell:支持脚本路径任意字符的模糊查询,包括文件名和目录
  • status:任务状态,包括createdpendingwaitingrunningstoppedfailedfinishedcleaned
  • app:任务所属App名称
  • module:任务所属模块名称
  • size:列出映射的大小
  • sort:按指定列排序,支持id name source destination size

这些参数可以方便地筛选出与指定任务相关的映射。

asciicast

# 列出所有映射
snap mapping list -p 170
# 列出映射ID为2和3的任务
snap mapping list -p 170 -id 2 3
# 列出名字为line_stat的映射
snap mapping list -p 170 -name line_stat
# 列出名字为line_stat的只读映射
snap mapping list -p 170 -name line_stat -is_not_write
# 列出source中包含NB_A样品的输出映射
snap mapping list -p 170 -source NB_A -is_write
# 使用-fuzzy模糊查询
snap mapping list -p 170 -source NB_A -is_write -fuzzy

# 列出任务2的所有映射
snap mapping list -p 170 -task 2
# 同时列出每个映射的文件大小
snap mapping list -p 170 -task 2 -size
# 列出脚本文件名包含wc_NB_A的映射
snap mapping list -p 170 -shell wc_NB_A
# 列出app wc的所有映射
snap mapping list -p 170 -app wc
# 列出模块Pack的所有映射
snap mapping list -p 170 -module Pack
# 按名称排序
snap mapping list -p 170 -module Pack -sort name
# 列出所有失败任务的所有映射
snap task list -p 170 -status failed
snap mapping list -p 170 -status failed

show

查看符合要求的映射详细信息,筛选方式与list类似。其他参数包括:

  • size:查看映射的大小
  • tasks:查看映射对应的任务列表

asciicast

# 列出ID为2的文件映射
snap mapping show -p 170 -id 2
# 列出文件大小
snap mapping show -p 170 -id 2 -size
# 列出对应任务列表
snap mapping show -p 170 -id 2 -tasks
# 列出名字为line_stat的只读映射
snap mapping show -p 170 -name line_stat -is_not_write

add

添加新的自定义映射关系。可同时关联任务

  • task:任务ID,支持同时关联多个任务

asciicast

# 添加自定义映射mapping_test
snap mapping add -p 170 -name mapping_test -source /tmp/test_file -destination oss://igenecode-bcs/tmp/test_file -is_not_write -is_not_immediate -is_required
# 添加自定义映射mapping_test2,同时添加关联任务1 2 3
snap mapping add -p 170 -name mapping_test2 -source /tmp/test_file2 -destination oss://igenecode-bcs/tmp/test_file -is_write -is_not_immediate -is_required -task 1 2 3
# 查看自定义映射mapping_test2及其关联任务
snap mapping show -p 170 -name mapping_test2 -tasks
# 查看任务2的映射
snap mapping list -p 170 -t 2

update

修改已有的映射关系,也可修改映射关联的任务。参数与add相同,但需要指定需要修改的映射ID,支持批量操作但不推荐。

asciicast

# 修改ID为60的映射关系为输出文件,以及source路径
snap mapping update -p 170 -id 60 -is_write -source /tmp/test_file2
# 修改ID为60的映射关系名称为mapping_test2
snap mapping update -p 170 -id 60 -name mapping_test2
# 由于完全相同的映射已经存在,所以会失败

# 修改关联任务
snap mapping update -p 170 -id 60 -t 2 3

remove

删除已经存在的映射关系或关联任务,只有无关联任务时才可以删除映射本身。

asciicast

snap mapping remove -h
# 删除ID为60的映射关系的关联任务2 3
snap mapping remove -p 170 -id 60 -t 2 3
# 删除ID为60的映射关系
snap mapping remove -p 170 -id 60
# 删除ID为61的映射关系的关联任务3
snap mapping remove -p 170 -id 61 -t 3
# 不经询问直接删除ID为61的映射关系及其关联任务
snap mapping remove -p 170 -id 61 -yes

sync

同步映射关系相关文件,当is_write为True时,下载数据;反之,上传数据。筛选参数与list命令基本一致,若目标文件已存在或源文件不存在则会跳过,亦可用overwrite覆盖。注意,该命令需要预先安装配置好ossutil方能正常使用。

  • overwrite:覆盖已存在的文件

asciicast

snap mapping sync -h
# 同步(下载)映射名字为line_stat的输出文件到本地
snap mapping sync -p 170 -name line_stat -is_write
# 同步(上传)映射名字为line_stat的输入文件到OSS
snap mapping sync -p 170 -name line_stat -is_not_write
# 同步(下载)任务2的输出文件到本地
snap mapping sync -p 170 -t 2 -is_write
# 同步ID为10的映射,覆盖已存在文件
snap mapping sync -p 170 -id 10 -overwrite
# 上传项目所需的所有输入文件
snap mapping sync -p 170 -is_not_write
Clone this wiki locally