• 关于

    创建多级目录

    的搜索结果

回答

在Python中可以使用os.mkdir()函数创建目录(创建一级目录)。其原型如下所示:os.mkdir(path)其参数path 为要创建目录的路径。例如要在D盘下创建hello的目录import osos.mkdir('d:hello')可以使用os.makedirs()函数创建多级目录。

ylrf1212 2019-12-02 01:08:59 0 浏览量 回答数 0

回答

你生成多级目录的地方有问题,php不可能一次生成多级目录date("Y/m/d"),你必须循环检测目录是否存在,如果不存在然后再一级一级的创建好像加个参数就可以了。mkdir($directory,0777,true);

落地花开啦 2019-12-02 02:42:07 0 浏览量 回答数 0

回答

Re在线上传按月份存储 $ossService = new ALIOSS();$response = $ossService->upload_file_by_file("bucket", "a/b/c/d/e/f.txt", "./uploads/a/b/c/d/e/f.txt") 经测试,OSS 会自动创建多级目录,只要在 $object 参数(第二个参数)中像上面这样填写即可,无需手动创建目录。

lujjjh 2019-12-01 23:16:41 0 浏览量 回答数 0

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

回答

楼主是说的php吗? 检查一下php的配置吧,看有没有禁用mkdir函数。 再看一下日志,应该有些提示的 再检查文件系统权限 还有就是mkdir不能创建多级目录

yemin 2019-12-02 02:24:43 0 浏览量 回答数 0

回答

本文罗列了资源管理中用到的基本概念,帮助您正确理解和使用。 资源目录 资源目录(Resource Directory)是阿里云面向企业客户提供的一套多级资源(账号)关系管理服务。 资源目录服务的本质:建立一套与您的企业相关的,基于资源使用的关系结构。资源目录具有全局一致性的特点,方便您基于此关系结构,对企业内多个应用服务所对应的各种资源进行高效的规划、构建和管理。 云账号 云账号是企业购买云资源时的计量、计费以及资源归属的基本主体。注册云账号时通常需要进行实名认证,以满足当地法律及合规性要求。 • 云账号是云资源的容器。 说明 例如:阿里云上的任何一个ECS实例、RDS实例或OSS实例等资源都必须归属于某一个云账号。 • 云账号是阿里云资源隔离的安全边界,不同云账号间的云资源是完全隔离的。 • 云账号是云资源属主,对云资源的合规性使用承担相应法律责任。 • 云账号对其所购买的云资源拥有root权限,并可以将资源操作权限授予RAM用户、用户组或RAM角色。 主账号 资源目录的管理员账号,每个资源目录有且只有一个主账号。主账号可以建立组织关系结构,也可以基于任一资源夹创建成员。 说明 主账号在资源目录中仅具有管理权限,主账号下资源不归属于资源目录。 根资源夹 资源目录的父节点。资源关系依据根资源夹向下进行分布。 资源夹 资源目录的组织单元,也是账号的容器。每个资源夹都可以包含其他资源夹,以组成树形的组织关系。 成员 目录中作为资源载体的容器,也是一种分组单位。基于资源目录创建的成员默认受主账号完全管控。 资源组 资源组是在阿里云账号下进行资源分组管理的一种机制,资源组能帮助用户解决单个云账号内多项目(多应用)的资源分组和用户授权管理的复杂性问题。 • 一个云账号包含一个默认资源组和多个自定义的资源组。 • 一个资源组内包含的云资源可以是不同地域创建的。 • 一个云资源只能归属于某一个资源组,资源组之间不支持嵌套。 • 资源归属同一个云账号时,允许将资源从一个资源组移动到另一个资源组。 • 支持在资源组内对RAM用户或用户组进行授权。 • 同一账户内不同资源组中的资源可以进行关联,即允许不同生命周期的两个资源建立关联关系。 例如:资源组1中的ECS实例可以加入资源组2中创建的VPC。 • 可以按应用或项目管理对云资源进行分组。 例如:具有相同生命周期的资源(一起部署、升级或删除)一般会放在同一个资源组。 云账号管理员 资源组中可以存在云账号管理员,其权限如下: • 创建资源组。 • 删除资源组。 • 设置资源组管理员。 • 在资源组内创建资源,或将其它资源组内的资源转移进入新建的资源组。 • 在资源组内为RAM用户或用户组进行授权。 资源组管理员 在资源组内被授予Administrator权限的RAM用户,可认为是资源组的管理员。其权限如下: • 登录控制台后,只能选择进入有管理权限的资源组。 • 进入资源组后,能访问组内所有资源。 • 可以将资源在有管理权限的多个资源组之间进行转移。 • 可以在有管理权限的资源组内为RAM用户或用户组进行授权。

LiuWH 2020-03-26 08:28:44 0 浏览量 回答数 0

问题

vsftp配置创建文件夹的权限:报错

kun坤 2020-06-14 15:58:24 0 浏览量 回答数 1

问题

vsftp配置创建文件夹的权限:配置报错 

kun坤 2020-06-02 15:28:46 0 浏览量 回答数 1

问题

vsftp配置创建文件夹的权限 - vsftp报错

montos 2020-06-03 21:53:42 2 浏览量 回答数 1

回答

详细解答可以参考官方帮助文档 分区表是指在创建表时指定分区空间,即指定表内的某几个字段作为分区列。大多数情况下,您可以将分区类比为文件系统下的目录。 MaxCompute将分区列的每个值作为一个分区(目录),您可以指定多级分区,即将表的多个字段作为表的分区,分区之间如多级目录的关系。 使用数据时,如果指定需要访问的分区名称,则只会读取相应的分区,可避免全表扫描,提高处理效率,降低费用。 分区类型MaxCompute2.0对分区类型的支持进行了扩充,目前MaxCompute支持Tinyint、Smallint、Int、Bigint、Varchar和String分区类型。 说明 在旧版MaxCompute中,仅承诺String类型分区。因为历史原因,虽然可以指定分区类型为Bigint,但是除了表的schema表示其为Bigint外,任何其他情况实际都被处理为String。示例如下:create table parttest (a bigint) partitioned by (pt bigint); insert into parttest partition(pt) select 1, 2 from dual; insert into parttest partition(pt) select 1, 10 from dual; select * from parttest where pt >= 2;执行上述语句后,返回的结果只有一行,因为10被当作字符串和2比较,所以没能返回。 分区使用限制 分区有以下使用限制。 单表分区层级最多6级。 单表分区数最多允许60000个分区。 一次查询最多查询分区数为10000个分区。 示例如下: --创建一个二级分区表,以日期为一级分区,地域为二级分区 create table src (key string, value bigint) partitioned by (pt string,region string); 查询时,Where条件过滤中使用分区列作为过滤条件。 select * from src where pt='20170601' and region='hangzhou'; --正确使用方式。MaxCompute在生成查询计划时只会将'20170601'分区下region为'hangzhou'二级分区的数据纳入输入中。 select * from src where pt = 20170601; -- 错误的使用方式。在这样的使用方式下,MaxCompute并不能保障分区过滤机制的有效性。pt是String类型,当String类型与Bigint(20170601)比较时,MaxCompute会将二者转换为Double类型,此时有可能会有精度损失。 部分对分区操作的SQL的运行效率则较低,会给您带来较高的计费,例如输出到动态分区(DYNAMIC PARTITION)。 对于部分MaxCompute的操作命令,处理分区表和非分区表时的语法有差别,详情请参见表操作和 INSERT 操作。

2019-12-01 23:10:55 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 分区表是指在创建表时指定分区空间,即指定表内的某几个字段作为分区列。大多数情况下,您可以将分区类比为文件系统下的目录。 MaxCompute将分区列的每个值作为一个分区(目录),您可以指定多级分区,即将表的多个字段作为表的分区,分区之间如多级目录的关系。 使用数据时,如果指定需要访问的分区名称,则只会读取相应的分区,可避免全表扫描,提高处理效率,降低费用。 分区类型MaxCompute2.0对分区类型的支持进行了扩充,目前MaxCompute支持Tinyint、Smallint、Int、Bigint、Varchar和String分区类型。 说明 在旧版MaxCompute中,仅承诺String类型分区。因为历史原因,虽然可以指定分区类型为Bigint,但是除了表的schema表示其为Bigint外,任何其他情况实际都被处理为String。示例如下:create table parttest (a bigint) partitioned by (pt bigint); insert into parttest partition(pt) select 1, 2 from dual; insert into parttest partition(pt) select 1, 10 from dual; select * from parttest where pt >= 2;执行上述语句后,返回的结果只有一行,因为10被当作字符串和2比较,所以没能返回。 分区使用限制 分区有以下使用限制。 单表分区层级最多6级。 单表分区数最多允许60000个分区。 一次查询最多查询分区数为10000个分区。 示例如下: --创建一个二级分区表,以日期为一级分区,地域为二级分区 create table src (key string, value bigint) partitioned by (pt string,region string); 查询时,Where条件过滤中使用分区列作为过滤条件。 select * from src where pt='20170601' and region='hangzhou'; --正确使用方式。MaxCompute在生成查询计划时只会将'20170601'分区下region为'hangzhou'二级分区的数据纳入输入中。 select * from src where pt = 20170601; -- 错误的使用方式。在这样的使用方式下,MaxCompute并不能保障分区过滤机制的有效性。pt是String类型,当String类型与Bigint(20170601)比较时,MaxCompute会将二者转换为Double类型,此时有可能会有精度损失。 部分对分区操作的SQL的运行效率则较低,会给您带来较高的计费,例如输出到动态分区(DYNAMIC PARTITION)。 对于部分MaxCompute的操作命令,处理分区表和非分区表时的语法有差别,详情请参见表操作和 INSERT 操作。

2019-12-01 23:10:55 0 浏览量 回答数 0

问题

MaxCompute产品简介:基本概念:分区

行者武松 2019-12-01 22:01:02 1397 浏览量 回答数 0

回答

python 读写、创建 文件的方法: python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r“c:python”) 检验给出的路径是否是一个文件:os.path.isfile() 检验给出的路径是否是一个目录:os.path.isdir() 判断是否是绝对路径:os.path.isabs() 检验给出的路径是否真地存:os.path.exists() 返回一个路径的目录名和文件名:os.path.split() eg os.path.split(‘/home/swaroop/byte/code/poem.txt’) 结果:(‘/home/swaroop/byte/code’, ‘poem.txt’) 分离扩展名:os.path.splitext() 获取路径名:os.path.dirname() 获取文件名:os.path.basename() 运行shell命令: os.system() 读取和设置环境变量:os.getenv() 与os.putenv() 给出当前平台使用的行终止符:os.linesep Windows使用’rn’,Linux使用’n’而Mac使用’r’ 指示你正在使用的平台:os.name 对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’ 重命名:os.rename(old, new) 创建多级目录:os.makedirs(r“c:pythontest”) 创建单个目录:os.mkdir(“test”) 获取文件属性:os.stat(file) 修改文件权限与时间戳:os.chmod(file) 终止当前进程:os.exit() 获取文件大小:os.path.getsize(filename) 文件操作: os.mknod(“test.txt”) 创建空文件 fp = open(“test.txt”,w) 直接打开一个文件,如果文件不存在则创建文件 关于open 模式: w 以写方式打开, a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+ 以读写模式打开 w+ 以读写模式打开 (参见 w ) a+ 以读写模式打开 (参见 a ) rb 以二进制读模式打开 wb 以二进制写模式打开 (参见 w ) ab 以二进制追加模式打开 (参见 a ) rb+ 以二进制读写模式打开 (参见 r+ ) wb+ 以二进制读写模式打开 (参见 w+ ) ab+ 以二进制读写模式打开 (参见 a+ ) fp.read([size]) #size为读取的长度,以byte为单位 fp.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分 fp.readlines([size]) #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。 fp.write(str) #把str写到文件中,write()并不会在str后加上一个换行符 fp.writelines(seq) #把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。 fp.close() #关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。 如果一个文件在关闭后还对其进行操作会产生ValueError fp.flush() #把缓冲区的内容写入硬盘 fp.fileno() #返回一个长整型的”文件标签“ fp.isatty() #文件是否是一个终端设备文件(unix系统中的) fp.tell() #返回文件操作标记的当前位置,以文件的开头为原点 fp.next() #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。 fp.seek(offset[,whence]) #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。 fp.truncate([size]) #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。 目录操作: os.mkdir(“file”) 创建目录 复制文件: shutil.copyfile(“oldfile”,”newfile”) oldfile和newfile都只能是文件 shutil.copy(“oldfile”,”newfile”) oldfile只能是文件夹,newfile可以是文件,也可以是目标目录 复制文件夹: shutil.copytree(“olddir”,”newdir”) olddir和newdir都只能是目录,且newdir必须不存在 重命名文件(目录) os.rename(“oldname”,”newname”) 文件或目录都是使用这条命令 移动文件(目录) shutil.move(“oldpos”,”newpos”) 删除文件 os.remove(“file”) 删除目录 os.rmdir(“dir”)只能删除空目录 shutil.rmtree(“dir”) 空目录、有内容的目录都可以删 转换目录 os.chdir(“path”) 换路径 Python读写文件 1.open 使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。 file_object = open(‘thefile.txt’) try: all_the_text = file_object.read( ) finally: file_object.close( ) 注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。 2.读文件 读文本文件 input = open(‘data’, ‘r’) 第二个参数默认为r input = open(‘data’) 读二进制文件 input = open(‘data’, ‘rb’) 读取所有内容 file_object = open(‘thefile.txt’) try: all_the_text = file_object.read( ) finally: file_object.close( ) 读固定字节 file_object = open(‘abinfile’, ‘rb’) try: while True: chunk = file_object.read(100) if not chunk: break do_something_with(chunk) finally: file_object.close( ) 读每行 list_of_all_the_lines = file_object.readlines( ) 如果文件是文本文件,还可以直接遍历文件对象获取每行: for line in file_object: process line 3.写文件 写文本文件 output = open(‘data’, ‘w’) 写二进制文件 output = open(‘data’, ‘wb’) 追加写文件 output = open(‘data’, ‘w+’) 写数据 file_object = open(‘thefile.txt’, ‘w’) file_object.write(all_the_text) file_object.close( ) 写入多行 file_object.writelines(list_of_text_strings) 注意,调用writelines写入多行在性能上会比使用write一次性写入要高。 在处理日志文件的时候,常常会遇到这样的情况:日志文件巨大,不可能一次性把整个文件读入到内存中进行处理,例如需要在一台物理内存为 2GB 的机器上处理一个 2GB 的日志文件,我们可能希望每次只处理其中 200MB 的内容。 在 Python 中,内置的 File 对象直接提供了一个 readlines(sizehint) 函数来完成这样的事情。以下面的代码为例: file = open(‘test.log’, ‘r’)sizehint = 209715200 # 200Mposition = 0lines = file.readlines(sizehint)while not file.tell() - position < 0: position = file.tell() lines = file.readlines(sizehint) 每次调用 readlines(sizehint) 函数,会返回大约 200MB 的数据,而且所返回的必然都是完整的行数据,大多数情况下,返回的数据的字节数会稍微比 sizehint 指定的值大一点(除最后一次调用 readlines(sizehint) 函数的时候)。通常情况下,Python 会自动将用户指定的 sizehint 的值调整成内部缓存大小的整数倍。 file在python是一个特殊的类型,它用于在python程序中对外部的文件进行操作。在python中一切都是对象,file也不例外,file有file的方法和属性。下面先来看如何创建一个file对象: file(name[, mode[, buffering]]) file()函数用于创建一个file对象,它有一个别名叫open(),可能更形象一些,它们是内置函数。来看看它的参数。它参数都是以字符串的形式传递的。name是文件的名字。 mode是打开的模式,可选的值为r w a U,分别代表读(默认) 写 添加支持各种换行符的模式。用w或a模式打开文件的话,如果文件不存在,那么就自动创建。此外,用w模式打开一个已经存在的文件时,原有文件的内容会被清空,因为一开始文件的操作的标记是在文件的开头的,这时候进行写操作,无疑会把原有的内容给抹掉。由于历史的原因,换行符在不同的系统中有不同模式,比如在 unix中是一个n,而在windows中是‘rn’,用U模式打开文件,就是支持所有的换行模式,也就说‘r’ ‘n’ ‘rn’都可表示换行,会有一个tuple用来存贮这个文件中用到过的换行符。不过,虽说换行有多种模式,读到python中统一用n代替。在模式字符的后面,还可以加上+ b t这两种标识,分别表示可以对文件同时进行读写操作和用二进制模式、文本模式(默认)打开文件。 buffering如果为0表示不进行缓冲;如果为1表示进行“行缓冲“;如果是一个大于1的数表示缓冲区的大小,应该是以字节为单位的。 file对象有自己的属性和方法。先来看看file的属性。 closed #标记文件是否已经关闭,由close()改写 encoding #文件编码 mode #打开模式 name #文件名 newlines #文件中用到的换行模式,是一个tuple softspace #boolean型,一般为0,据说用于print file的读写方法: F.read([size]) #size为读取的长度,以byte为单位 F.readline([size]) 读一行,如果定义了size,有可能返回的只是一行的一部分 F.readlines([size]) 把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。 F.write(str) 把str写到文件中,write()并不会在str后加上一个换行符 F.writelines(seq) 把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西。 file的其他方法: F.close() 关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。如果一个文件在关闭后还对其进行操作会产生ValueError F.flush() 把缓冲区的内容写入硬盘 F.fileno() 返回一个长整型的”文件标签“ F.isatty() 文件是否是一个终端设备文件(unix系统中的) F.tell() 返回文件操作标记的当前位置,以文件的开头为原点 F.next() 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。 F.seek(offset[,whence]) 将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。 F.truncate([size]) 把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

元芳啊 2019-12-02 01:04:30 0 浏览量 回答数 0

问题

mkdir怎样创建多级中文文件夹??报错

爱吃鱼的程序员 2020-06-08 20:27:11 0 浏览量 回答数 1

问题

Java-SDK之如何实现上传文件(二)?

青衫无名 2019-12-01 21:39:42 1127 浏览量 回答数 0

问题

OSS基本概念介绍

青衫无名 2019-12-01 21:35:42 1011 浏览量 回答数 0

问题

LM计算引擎 DUMP语法是什么?

nicenelly 2019-12-01 21:25:23 1087 浏览量 回答数 0

问题

LM计算引擎 DUMP语法是什么?

nicenelly 2019-12-01 21:10:47 1237 浏览量 回答数 0

问题

Windows下UPUPW简介及简单使用

鬼才神兵 2019-12-01 21:06:28 12986 浏览量 回答数 4

回答

详细解答可以参考官方帮助文档 功能简介 您可以通过客户端提供的Tunnel命令实现原有Dship工具的功能。 Tunnel命令主要用于数据的上传和下载等功能。 Upload:支持文件或目录(指一级目录)的上传,每一次上传只支持数据上传到一张表或表的一个分区,有分区的表一定要指定上传的分区,多级分区一定要指定到末级分区。tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"; -- 将log.txt中的数据上传至项目空间test_project的表test_table(二级分区表)中的p1="b1",p2="b2"分区 tunnel upload log.txt test_table --scan=only; -- 将log.txt中的数据上传至表 test_table 中。--scan参数表示需要扫描log.txt中的数据是否符合 test_table 的定义,如果不符合报错,并停止上传数据。 Download:只支持下载到单个文件,每一次下载只支持下载一张表或一个分区到一个文件,有分区的表一定要指定下载的分区,多级分区一定要指定到末级分区。tunnel download test_project.test_table/p1="b1",p2="b2" test_table.txt; -- 将test_project.test_table表(二级分区表)中的数据下载到 test_table.txt 文件中 Resume:因为网络或tunnel服务的原因出错,支持文件或目录的续传。可以继续上一次的数据上传操作,但Resume命令暂时没有对下载操作的支持。tunnel resume; Show:显示历史任务信息。tunnel show history -n 5; --显示前5次上传/下载数据的详细命令 tunnel show log; --显示最后一次上传/下载数据的日志 Purge:清理session目录,默认清理3天内的。tunnel purge 5; --清理前5天的日志 Tunnel上传下载限制 Tunnel命令不支持上传下载Array、Map和Struct类型的数据。 每个Tunnel的Session 在服务端的生命周期为 24 小时,创建后 24 小时内均可使用,也可以跨进程/线程共享使用,但是必须保证同一个 BlockId 没有重复使用。 Tunnel命令使用说明 Tunnel命令支持在客户端通过help子命令获取帮助信息,每个命令和选择支持短命令格式。 odps@ project_name>tunnel help; Usage: tunnel <subcommand> [options] [args] Type 'tunnel help <subcommand>' for help on a specific subcommand. Available subcommands: upload (u) download (d) resume (r) show (s) purge (p) help (h) tunnel is a command for uploading data to / downloading data from ODPS. 参数说明: upload:上传数据到MaxCompute的表中。 download:从MaxCompute的表中下载数据。 resume:如果上传数据失败,通过resume命令进行断点续传,目前仅支持上传数据的续传。每次上传、下载数据被称为一个session。在resume命令后指定session id完成续传。 show:查看历史运行信息。 purge:清理session目录。 help:输出tunnel帮助信息。 Upload 将本地文件的数据导入MaxCompute的表中,以追加模式导入。子命令使用提示: odps@ project_name>tunnel help upload; usage: tunnel upload [options] <path> <[project.]table[/partition]> upload data from local file -acp,-auto-create-partition <ARG> auto create target partition if not exists, default false -bs,-block-size <ARG> block size in MiB, default 100 -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -cp,-compress <ARG> compress, default true -dbr,-discard-bad-records <ARG> specify discard bad records action(true|false), default false -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss; -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -mbr,-max-bad-records <ARG> max bad records, default 1000 -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -s,-scan <ARG> specify scan file action(true|false|only), default true -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\ds hip -ss,-strict-schema <ARG> specify strict schema mode. If false, extra data will be abandoned and insufficient field will be filled with null. Default true -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai Example: tunnel upload log.txt test_project.test_table/p1="b1",p2="b2" 参数说明: -acp:如果不存在,自动创建目标分区,默认关闭。 -bs:每次上传至Tunnel的数据块大小,默认100MiB(1MiB=1024*1024B)。 -c:指定本地数据文件编码,默认为UTF-8。不设定,默认下载源数据。 -cp:指定是否在本地压缩后再上传,减少网络流量,默认开启。 -dbr:是否忽略脏数据(多列、少列、列数据类型不匹配等情况)。 值为true时,将全部不符合表定义的数据忽略。 值为false时,若遇到脏数据,则给出错误提示信息,目标表内的原始数据不会被污染。 -dfp:DateTime类型数据格式,默认为yyyy-MM-dd HH:mm:ss。如果您想指定时间格式到毫秒级别,可以使用tunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS',有关DateTime数据类型的详情请参见数据类型。 -fd:本地数据文件的列分割符,默认为逗号。 -h:数据文件是否包括表头,如果为true,则dship会跳过表头从第二行开始上传数据。 -mbr:默认情况下,当上传的脏数据超过1000条时,上传动作终止。通过此参数,可以调整可容忍的脏数据量。 -ni:NULL数据标志符,默认为“ ”(空字符串)。 -rd:本地数据文件的行分割符,默认为\r\n。 -s:是否扫描本地数据文件,默认值为false。 值为true时,先扫描数据,若数据格式正确,再导入数据。 值为false时,不扫描数据,直接进行数据导入。 值为only时,仅进行扫描本地数据,扫描结束后不继续导入数据。 -sd:设置session目录。 -te:指定tunnel的Endpoint。 -threads:指定threads的数量,默认为1。 -tz:指定时区。默认为本地时区:Asia/Shanghai。 示例如下: 创建目标表,如下所示: CREATE TABLE IF NOT EXISTS sale_detail( shop_name STRING, customer_id STRING, total_price DOUBLE) PARTITIONED BY (sale_date STRING,region STRING); 添加分区,如下所示:alter table sale_detail add partition (sale_date='201312', region='hangzhou'); 准备数据文件data.txt,其内容如下所示:shopx,x_id,100 shopy,y_id,200 shopz,z_id这份文件的第三行数据与sale_detail的表定义不符。sale_detail定义了三列,但数据只有两列。 导入数据,如下所示:odps@ project_name>tunnel u d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false Upload session: 20150610xxxxxxxxxxx70a002ec60c Start upload:d:\data.txt Total bytes:41 Split input to 1 blocks 2015-06-10 16:39:22 upload block: '1' ERROR: column mismatch -,expected 3 columns, 2 columns found, please check data or delimiter由于data.txt中有脏数据,数据导入失败。并给出session id及错误提示信息。 数据验证,如下所示:odps@ odpstest_ay52c_ay52> select * from sale_detail where sale_date='201312'; ID = 20150610xxxxxxxxxxxvc61z5 +-----------+-------------+-------------+-----------+--------+ | shop_name | customer_id | total_price | sale_date | region | +-----------+-------------+-------------+-----------+--------+ +-----------+-------------+-------------+-----------+--------+由于有脏数据,数据导入失败,表中无数据。 Show 显示历史记录。子命令使用提示: odps@ project_name>tunnel help show; usage: tunnel show history [options] show session information -n,-number <ARG> lines Example: tunnel show history -n 5 tunnel show log 参数说明: -n:指定显示行数。 示例如下: odps@ project_name>tunnel show history; 20150610xxxxxxxxxxx70a002ec60c failed 'u --config-file /D:/console/conf/odps_config.ini --project odpstest_ay52c_ay52 --endpoint http://service.odps.aliyun.com/api --id UlxxxxxxxxxxxrI1 --key 2m4r3WvTxxxxxxxxxx0InVke7UkvR d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false' 说明 20150610xxxxxxxxxxx70a002ec60c是上节中导入数据失败时的运行ID。 Resume 修复执行历史记录,仅对上传数据有效。子命令使用提示: odps@ project_name>tunnel help resume; usage: tunnel resume [session_id] [-force] resume an upload session -f,-force force resume Example: tunnel resume 示例如下: 修改data.txt文件为如下内容: shop9,97,100 shop10,10,200 修复执行上传数据,如下所示: odps@ project_name>tunnel resume 20150610xxxxxxxxxxx70a002ec60c --force; start resume 20150610xxxxxxxxxxx70a002ec60c Upload session: 20150610xxxxxxxxxxx70a002ec60c Start upload:d:\data.txt Resume 1 blocks 2015-06-10 16:46:42 upload block: '1' 2015-06-10 16:46:42 upload block complete, blockid=1 upload complete, average speed is 0 KB/s OK 说明 20150610xxxxxxxxxxx70a002ec60c为上传失败的session ID。 数据验证,如下所示: odps@ project_name>select * from sale_detail where sale_date='201312'; ID = 20150610xxxxxxxxxxxa741z5 +-----------+-------------+-------------+-----------+--------+ | shop_name | customer_id | total_price | sale_date | region | +-----------+-------------+-------------+-----------+--------+ | shopx | x_id | 100.0 | 201312 | hangzhou| | shopy | y_id | 200.0 | 201312 | hangzhou| +-----------+-------------+-------------+-----------+--------+ Download 子命令使用提示: odps@ project_name>tunnel help download; usage:tunnel download [options] <[project.]table[/partition]> <path> download data to local file -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -ci,-columns-index <ARG> specify the columns index(starts from 0) to download, use comma to split each index -cn,-columns-name <ARG> specify the columns name to download, use comma to split each name -cp,-compress <ARG> compress, default true -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss -e,-exponential <ARG> When download double values, use exponential express if necessary. Otherwise at most 20 digits will be reserved. Default false -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -limit <ARG> specify the number of records to download -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\dshi p -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai usage: tunnel download [options] instance://<[project/]instance_id> <path> download instance result to local file -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -ci,-columns-index <ARG> specify the columns index(starts from 0) to download, use comma to split each index -cn,-columns-name <ARG> specify the columns name to download, use comma to split each name -cp,-compress <ARG> compress, default true -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss -e,-exponential <ARG> When download double values, use exponential express if necessary. Otherwise at most 20 digits will be reserved. Default false -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -limit <ARG> specify the number of records to download -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\dshi p -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai Example: tunnel download test_project.test_table/p1="b1",p2="b2" log.txt tunnel download instance://test_project/test_instance log.txt 参数说明: -c:本地数据文件编码,默认为UTF-8。 -ci:指定列索引(从0)下载,使用逗号分隔。 -cn:指定要下载的列名称,使用逗号分隔每个名称。 -cp,-compress:指定是否压缩后再下载,减少网络流量,默认开启。 -dfp:DateTime类型数据格式,默认为yyyy-MM-dd HH:mm:ss。 -e:当下载double值时,如果需要,使用指数函数表示,否则最多保留20位。 -fd:本地数据文件的列分割符,默认为逗号。 -h:数据文件是否包括表头,如果为true,则dship会跳过表头从第二行开始下载数据。 说明 -h=true和threads>1即多线程不能一起使用。 -limit:指定要下载的文件数量。 -ni:NULL数据标志符,默认为“ ”(空字符串)。 -rd:本地数据文件的行分割符,默认为\r\n。 -sd:设置session目录。 -te:指定tunnel endpoint。 -threads:指定threads的数量,默认为1。 -tz:指定时区。默认为本地时区:Asia/Shanghai。 示例如下: 下载数据到 result.txt文件中,如下所示: $ ./tunnel download sale_detail/sale_date=201312,region=hangzhou result.txt; Download session: 20150610xxxxxxxxxxx70a002ed0b9 Total records: 2 2015-06-10 16:58:24 download records: 2 2015-06-10 16:58:24 file size: 30 bytes OK 验证 result.txt的文件内容,如下所示: shopx,x_id,100.0 shopy,y_id,200.0 Purge 清除session目录,默认清除距离当前日期3天内的。子命令使用提示: odps@ project_name>tunnel help purge; usage: tunnel purge [n] force session history to be purged.([n] days before, default 3 days) Example: tunnel purge 5 数据类型说明: 类型 描述 STRING 字符串类型,长度不能超过8MB。 BOOLEN 上传值只支持true、false、0和1。下载值为true/false且不区分大小写。 BIGINT 取值范围[-9223372036854775807,9223372036854775807]。 DOUBLE 有效位数16位 上传支持科学计数法表示 下载仅使用数字表示 最大值:1.7976931348623157E308 最小值:4.9E-324 无穷大:Infinity 无穷小:-Infinity DATETIME Datetime类型默认支持时区为GMT+8的数据上传,可以通过命令行指定用户数据日期格式的format pattern。 如果您上传DATETIME类型的数据,需要指定时间日期格式,具体格式请参见SimpleDateFormat。 "yyyyMMddHHmmss": 数据格式"20140209101000" "yyyy-MM-dd HH:mm:ss"(默认):数据格式"2014-02-09 10:10:00" "yyyy年MM月dd日": 数据格式"2014年09月01日" 示例如下: tunnel upload log.txt test_table -dfp "yyyy-MM-dd HH:mm:ss" 空值:所有数据类型都可以有空值。 默认空字符串为空值。 可在命令行下通过-null-indicator参数来指定空值的字符串。 tunnel upload log.txt test_table -ni "NULL" 字符编码:您可以指定文件的字符编码,默认为UTF-8。 tunnel upload log.txt test_table -c "gbk" 分隔符:tunnel命令支持您自定义的文件分隔符,行分隔符选项为-record-delimiter,列分隔符选项为-field-delimiter。 分隔符说明如下: 支持多个字符的行列分隔符。 列分隔符不能够包含行分隔符。 转义字符分隔符,在命令行方式下只支持\r、\n和\t。 示例如下: tunnel upload log.txt test_table -fd "||" -rd "\r\n"

2019-12-01 23:10:57 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 功能简介 您可以通过客户端提供的Tunnel命令实现原有Dship工具的功能。 Tunnel命令主要用于数据的上传和下载等功能。 Upload:支持文件或目录(指一级目录)的上传,每一次上传只支持数据上传到一张表或表的一个分区,有分区的表一定要指定上传的分区,多级分区一定要指定到末级分区。tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"; -- 将log.txt中的数据上传至项目空间test_project的表test_table(二级分区表)中的p1="b1",p2="b2"分区 tunnel upload log.txt test_table --scan=only; -- 将log.txt中的数据上传至表 test_table 中。--scan参数表示需要扫描log.txt中的数据是否符合 test_table 的定义,如果不符合报错,并停止上传数据。 Download:只支持下载到单个文件,每一次下载只支持下载一张表或一个分区到一个文件,有分区的表一定要指定下载的分区,多级分区一定要指定到末级分区。tunnel download test_project.test_table/p1="b1",p2="b2" test_table.txt; -- 将test_project.test_table表(二级分区表)中的数据下载到 test_table.txt 文件中 Resume:因为网络或tunnel服务的原因出错,支持文件或目录的续传。可以继续上一次的数据上传操作,但Resume命令暂时没有对下载操作的支持。tunnel resume; Show:显示历史任务信息。tunnel show history -n 5; --显示前5次上传/下载数据的详细命令 tunnel show log; --显示最后一次上传/下载数据的日志 Purge:清理session目录,默认清理3天内的。tunnel purge 5; --清理前5天的日志 Tunnel上传下载限制 Tunnel命令不支持上传下载Array、Map和Struct类型的数据。 每个Tunnel的Session 在服务端的生命周期为 24 小时,创建后 24 小时内均可使用,也可以跨进程/线程共享使用,但是必须保证同一个 BlockId 没有重复使用。 Tunnel命令使用说明 Tunnel命令支持在客户端通过help子命令获取帮助信息,每个命令和选择支持短命令格式。 odps@ project_name>tunnel help; Usage: tunnel <subcommand> [options] [args] Type 'tunnel help <subcommand>' for help on a specific subcommand. Available subcommands: upload (u) download (d) resume (r) show (s) purge (p) help (h) tunnel is a command for uploading data to / downloading data from ODPS. 参数说明: upload:上传数据到MaxCompute的表中。 download:从MaxCompute的表中下载数据。 resume:如果上传数据失败,通过resume命令进行断点续传,目前仅支持上传数据的续传。每次上传、下载数据被称为一个session。在resume命令后指定session id完成续传。 show:查看历史运行信息。 purge:清理session目录。 help:输出tunnel帮助信息。 Upload 将本地文件的数据导入MaxCompute的表中,以追加模式导入。子命令使用提示: odps@ project_name>tunnel help upload; usage: tunnel upload [options] <path> <[project.]table[/partition]> upload data from local file -acp,-auto-create-partition <ARG> auto create target partition if not exists, default false -bs,-block-size <ARG> block size in MiB, default 100 -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -cp,-compress <ARG> compress, default true -dbr,-discard-bad-records <ARG> specify discard bad records action(true|false), default false -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss; -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -mbr,-max-bad-records <ARG> max bad records, default 1000 -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -s,-scan <ARG> specify scan file action(true|false|only), default true -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\ds hip -ss,-strict-schema <ARG> specify strict schema mode. If false, extra data will be abandoned and insufficient field will be filled with null. Default true -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai Example: tunnel upload log.txt test_project.test_table/p1="b1",p2="b2" 参数说明: -acp:如果不存在,自动创建目标分区,默认关闭。 -bs:每次上传至Tunnel的数据块大小,默认100MiB(1MiB=1024*1024B)。 -c:指定本地数据文件编码,默认为UTF-8。不设定,默认下载源数据。 -cp:指定是否在本地压缩后再上传,减少网络流量,默认开启。 -dbr:是否忽略脏数据(多列、少列、列数据类型不匹配等情况)。 值为true时,将全部不符合表定义的数据忽略。 值为false时,若遇到脏数据,则给出错误提示信息,目标表内的原始数据不会被污染。 -dfp:DateTime类型数据格式,默认为yyyy-MM-dd HH:mm:ss。如果您想指定时间格式到毫秒级别,可以使用tunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS',有关DateTime数据类型的详情请参见数据类型。 -fd:本地数据文件的列分割符,默认为逗号。 -h:数据文件是否包括表头,如果为true,则dship会跳过表头从第二行开始上传数据。 -mbr:默认情况下,当上传的脏数据超过1000条时,上传动作终止。通过此参数,可以调整可容忍的脏数据量。 -ni:NULL数据标志符,默认为“ ”(空字符串)。 -rd:本地数据文件的行分割符,默认为\r\n。 -s:是否扫描本地数据文件,默认值为false。 值为true时,先扫描数据,若数据格式正确,再导入数据。 值为false时,不扫描数据,直接进行数据导入。 值为only时,仅进行扫描本地数据,扫描结束后不继续导入数据。 -sd:设置session目录。 -te:指定tunnel的Endpoint。 -threads:指定threads的数量,默认为1。 -tz:指定时区。默认为本地时区:Asia/Shanghai。 示例如下: 创建目标表,如下所示: CREATE TABLE IF NOT EXISTS sale_detail( shop_name STRING, customer_id STRING, total_price DOUBLE) PARTITIONED BY (sale_date STRING,region STRING); 添加分区,如下所示:alter table sale_detail add partition (sale_date='201312', region='hangzhou'); 准备数据文件data.txt,其内容如下所示:shopx,x_id,100 shopy,y_id,200 shopz,z_id这份文件的第三行数据与sale_detail的表定义不符。sale_detail定义了三列,但数据只有两列。 导入数据,如下所示:odps@ project_name>tunnel u d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false Upload session: 20150610xxxxxxxxxxx70a002ec60c Start upload:d:\data.txt Total bytes:41 Split input to 1 blocks 2015-06-10 16:39:22 upload block: '1' ERROR: column mismatch -,expected 3 columns, 2 columns found, please check data or delimiter由于data.txt中有脏数据,数据导入失败。并给出session id及错误提示信息。 数据验证,如下所示:odps@ odpstest_ay52c_ay52> select * from sale_detail where sale_date='201312'; ID = 20150610xxxxxxxxxxxvc61z5 +-----------+-------------+-------------+-----------+--------+ | shop_name | customer_id | total_price | sale_date | region | +-----------+-------------+-------------+-----------+--------+ +-----------+-------------+-------------+-----------+--------+由于有脏数据,数据导入失败,表中无数据。 Show 显示历史记录。子命令使用提示: odps@ project_name>tunnel help show; usage: tunnel show history [options] show session information -n,-number <ARG> lines Example: tunnel show history -n 5 tunnel show log 参数说明: -n:指定显示行数。 示例如下: odps@ project_name>tunnel show history; 20150610xxxxxxxxxxx70a002ec60c failed 'u --config-file /D:/console/conf/odps_config.ini --project odpstest_ay52c_ay52 --endpoint http://service.odps.aliyun.com/api --id UlxxxxxxxxxxxrI1 --key 2m4r3WvTxxxxxxxxxx0InVke7UkvR d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false' 说明 20150610xxxxxxxxxxx70a002ec60c是上节中导入数据失败时的运行ID。 Resume 修复执行历史记录,仅对上传数据有效。子命令使用提示: odps@ project_name>tunnel help resume; usage: tunnel resume [session_id] [-force] resume an upload session -f,-force force resume Example: tunnel resume 示例如下: 修改data.txt文件为如下内容: shop9,97,100 shop10,10,200 修复执行上传数据,如下所示: odps@ project_name>tunnel resume 20150610xxxxxxxxxxx70a002ec60c --force; start resume 20150610xxxxxxxxxxx70a002ec60c Upload session: 20150610xxxxxxxxxxx70a002ec60c Start upload:d:\data.txt Resume 1 blocks 2015-06-10 16:46:42 upload block: '1' 2015-06-10 16:46:42 upload block complete, blockid=1 upload complete, average speed is 0 KB/s OK 说明 20150610xxxxxxxxxxx70a002ec60c为上传失败的session ID。 数据验证,如下所示: odps@ project_name>select * from sale_detail where sale_date='201312'; ID = 20150610xxxxxxxxxxxa741z5 +-----------+-------------+-------------+-----------+--------+ | shop_name | customer_id | total_price | sale_date | region | +-----------+-------------+-------------+-----------+--------+ | shopx | x_id | 100.0 | 201312 | hangzhou| | shopy | y_id | 200.0 | 201312 | hangzhou| +-----------+-------------+-------------+-----------+--------+ Download 子命令使用提示: odps@ project_name>tunnel help download; usage:tunnel download [options] <[project.]table[/partition]> <path> download data to local file -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -ci,-columns-index <ARG> specify the columns index(starts from 0) to download, use comma to split each index -cn,-columns-name <ARG> specify the columns name to download, use comma to split each name -cp,-compress <ARG> compress, default true -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss -e,-exponential <ARG> When download double values, use exponential express if necessary. Otherwise at most 20 digits will be reserved. Default false -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -limit <ARG> specify the number of records to download -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\dshi p -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai usage: tunnel download [options] instance://<[project/]instance_id> <path> download instance result to local file -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -ci,-columns-index <ARG> specify the columns index(starts from 0) to download, use comma to split each index -cn,-columns-name <ARG> specify the columns name to download, use comma to split each name -cp,-compress <ARG> compress, default true -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss -e,-exponential <ARG> When download double values, use exponential express if necessary. Otherwise at most 20 digits will be reserved. Default false -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -limit <ARG> specify the number of records to download -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\dshi p -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai Example: tunnel download test_project.test_table/p1="b1",p2="b2" log.txt tunnel download instance://test_project/test_instance log.txt 参数说明: -c:本地数据文件编码,默认为UTF-8。 -ci:指定列索引(从0)下载,使用逗号分隔。 -cn:指定要下载的列名称,使用逗号分隔每个名称。 -cp,-compress:指定是否压缩后再下载,减少网络流量,默认开启。 -dfp:DateTime类型数据格式,默认为yyyy-MM-dd HH:mm:ss。 -e:当下载double值时,如果需要,使用指数函数表示,否则最多保留20位。 -fd:本地数据文件的列分割符,默认为逗号。 -h:数据文件是否包括表头,如果为true,则dship会跳过表头从第二行开始下载数据。 说明 -h=true和threads>1即多线程不能一起使用。 -limit:指定要下载的文件数量。 -ni:NULL数据标志符,默认为“ ”(空字符串)。 -rd:本地数据文件的行分割符,默认为\r\n。 -sd:设置session目录。 -te:指定tunnel endpoint。 -threads:指定threads的数量,默认为1。 -tz:指定时区。默认为本地时区:Asia/Shanghai。 示例如下: 下载数据到 result.txt文件中,如下所示: $ ./tunnel download sale_detail/sale_date=201312,region=hangzhou result.txt; Download session: 20150610xxxxxxxxxxx70a002ed0b9 Total records: 2 2015-06-10 16:58:24 download records: 2 2015-06-10 16:58:24 file size: 30 bytes OK 验证 result.txt的文件内容,如下所示: shopx,x_id,100.0 shopy,y_id,200.0 Purge 清除session目录,默认清除距离当前日期3天内的。子命令使用提示: odps@ project_name>tunnel help purge; usage: tunnel purge [n] force session history to be purged.([n] days before, default 3 days) Example: tunnel purge 5 数据类型说明: 类型 描述 STRING 字符串类型,长度不能超过8MB。 BOOLEN 上传值只支持true、false、0和1。下载值为true/false且不区分大小写。 BIGINT 取值范围[-9223372036854775807,9223372036854775807]。 DOUBLE 有效位数16位 上传支持科学计数法表示 下载仅使用数字表示 最大值:1.7976931348623157E308 最小值:4.9E-324 无穷大:Infinity 无穷小:-Infinity DATETIME Datetime类型默认支持时区为GMT+8的数据上传,可以通过命令行指定用户数据日期格式的format pattern。 如果您上传DATETIME类型的数据,需要指定时间日期格式,具体格式请参见SimpleDateFormat。 "yyyyMMddHHmmss": 数据格式"20140209101000" "yyyy-MM-dd HH:mm:ss"(默认):数据格式"2014-02-09 10:10:00" "yyyy年MM月dd日": 数据格式"2014年09月01日" 示例如下: tunnel upload log.txt test_table -dfp "yyyy-MM-dd HH:mm:ss" 空值:所有数据类型都可以有空值。 默认空字符串为空值。 可在命令行下通过-null-indicator参数来指定空值的字符串。 tunnel upload log.txt test_table -ni "NULL" 字符编码:您可以指定文件的字符编码,默认为UTF-8。 tunnel upload log.txt test_table -c "gbk" 分隔符:tunnel命令支持您自定义的文件分隔符,行分隔符选项为-record-delimiter,列分隔符选项为-field-delimiter。 分隔符说明如下: 支持多个字符的行列分隔符。 列分隔符不能够包含行分隔符。 转义字符分隔符,在命令行方式下只支持\r、\n和\t。 示例如下: tunnel upload log.txt test_table -fd "||" -rd "\r\n"

2019-12-01 23:10:56 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 功能简介 您可以通过客户端提供的Tunnel命令实现原有Dship工具的功能。 Tunnel命令主要用于数据的上传和下载等功能。 Upload:支持文件或目录(指一级目录)的上传,每一次上传只支持数据上传到一张表或表的一个分区,有分区的表一定要指定上传的分区,多级分区一定要指定到末级分区。tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"; -- 将log.txt中的数据上传至项目空间test_project的表test_table(二级分区表)中的p1="b1",p2="b2"分区 tunnel upload log.txt test_table --scan=only; -- 将log.txt中的数据上传至表 test_table 中。--scan参数表示需要扫描log.txt中的数据是否符合 test_table 的定义,如果不符合报错,并停止上传数据。 Download:只支持下载到单个文件,每一次下载只支持下载一张表或一个分区到一个文件,有分区的表一定要指定下载的分区,多级分区一定要指定到末级分区。tunnel download test_project.test_table/p1="b1",p2="b2" test_table.txt; -- 将test_project.test_table表(二级分区表)中的数据下载到 test_table.txt 文件中 Resume:因为网络或tunnel服务的原因出错,支持文件或目录的续传。可以继续上一次的数据上传操作,但Resume命令暂时没有对下载操作的支持。tunnel resume; Show:显示历史任务信息。tunnel show history -n 5; --显示前5次上传/下载数据的详细命令 tunnel show log; --显示最后一次上传/下载数据的日志 Purge:清理session目录,默认清理3天内的。tunnel purge 5; --清理前5天的日志 Tunnel上传下载限制 Tunnel命令不支持上传下载Array、Map和Struct类型的数据。 每个Tunnel的Session 在服务端的生命周期为 24 小时,创建后 24 小时内均可使用,也可以跨进程/线程共享使用,但是必须保证同一个 BlockId 没有重复使用。 Tunnel命令使用说明 Tunnel命令支持在客户端通过help子命令获取帮助信息,每个命令和选择支持短命令格式。 odps@ project_name>tunnel help; Usage: tunnel <subcommand> [options] [args] Type 'tunnel help <subcommand>' for help on a specific subcommand. Available subcommands: upload (u) download (d) resume (r) show (s) purge (p) help (h) tunnel is a command for uploading data to / downloading data from ODPS. 参数说明: upload:上传数据到MaxCompute的表中。 download:从MaxCompute的表中下载数据。 resume:如果上传数据失败,通过resume命令进行断点续传,目前仅支持上传数据的续传。每次上传、下载数据被称为一个session。在resume命令后指定session id完成续传。 show:查看历史运行信息。 purge:清理session目录。 help:输出tunnel帮助信息。 Upload 将本地文件的数据导入MaxCompute的表中,以追加模式导入。子命令使用提示: odps@ project_name>tunnel help upload; usage: tunnel upload [options] <path> <[project.]table[/partition]> upload data from local file -acp,-auto-create-partition <ARG> auto create target partition if not exists, default false -bs,-block-size <ARG> block size in MiB, default 100 -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -cp,-compress <ARG> compress, default true -dbr,-discard-bad-records <ARG> specify discard bad records action(true|false), default false -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss; -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -mbr,-max-bad-records <ARG> max bad records, default 1000 -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -s,-scan <ARG> specify scan file action(true|false|only), default true -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\ds hip -ss,-strict-schema <ARG> specify strict schema mode. If false, extra data will be abandoned and insufficient field will be filled with null. Default true -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai Example: tunnel upload log.txt test_project.test_table/p1="b1",p2="b2" 参数说明: -acp:如果不存在,自动创建目标分区,默认关闭。 -bs:每次上传至Tunnel的数据块大小,默认100MiB(1MiB=1024*1024B)。 -c:指定本地数据文件编码,默认为UTF-8。不设定,默认下载源数据。 -cp:指定是否在本地压缩后再上传,减少网络流量,默认开启。 -dbr:是否忽略脏数据(多列、少列、列数据类型不匹配等情况)。 值为true时,将全部不符合表定义的数据忽略。 值为false时,若遇到脏数据,则给出错误提示信息,目标表内的原始数据不会被污染。 -dfp:DateTime类型数据格式,默认为yyyy-MM-dd HH:mm:ss。如果您想指定时间格式到毫秒级别,可以使用tunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS',有关DateTime数据类型的详情请参见数据类型。 -fd:本地数据文件的列分割符,默认为逗号。 -h:数据文件是否包括表头,如果为true,则dship会跳过表头从第二行开始上传数据。 -mbr:默认情况下,当上传的脏数据超过1000条时,上传动作终止。通过此参数,可以调整可容忍的脏数据量。 -ni:NULL数据标志符,默认为“ ”(空字符串)。 -rd:本地数据文件的行分割符,默认为\r\n。 -s:是否扫描本地数据文件,默认值为false。 值为true时,先扫描数据,若数据格式正确,再导入数据。 值为false时,不扫描数据,直接进行数据导入。 值为only时,仅进行扫描本地数据,扫描结束后不继续导入数据。 -sd:设置session目录。 -te:指定tunnel的Endpoint。 -threads:指定threads的数量,默认为1。 -tz:指定时区。默认为本地时区:Asia/Shanghai。 示例如下: 创建目标表,如下所示: CREATE TABLE IF NOT EXISTS sale_detail( shop_name STRING, customer_id STRING, total_price DOUBLE) PARTITIONED BY (sale_date STRING,region STRING); 添加分区,如下所示:alter table sale_detail add partition (sale_date='201312', region='hangzhou'); 准备数据文件data.txt,其内容如下所示:shopx,x_id,100 shopy,y_id,200 shopz,z_id这份文件的第三行数据与sale_detail的表定义不符。sale_detail定义了三列,但数据只有两列。 导入数据,如下所示:odps@ project_name>tunnel u d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false Upload session: 20150610xxxxxxxxxxx70a002ec60c Start upload:d:\data.txt Total bytes:41 Split input to 1 blocks 2015-06-10 16:39:22 upload block: '1' ERROR: column mismatch -,expected 3 columns, 2 columns found, please check data or delimiter由于data.txt中有脏数据,数据导入失败。并给出session id及错误提示信息。 数据验证,如下所示:odps@ odpstest_ay52c_ay52> select * from sale_detail where sale_date='201312'; ID = 20150610xxxxxxxxxxxvc61z5 +-----------+-------------+-------------+-----------+--------+ | shop_name | customer_id | total_price | sale_date | region | +-----------+-------------+-------------+-----------+--------+ +-----------+-------------+-------------+-----------+--------+由于有脏数据,数据导入失败,表中无数据。 Show 显示历史记录。子命令使用提示: odps@ project_name>tunnel help show; usage: tunnel show history [options] show session information -n,-number <ARG> lines Example: tunnel show history -n 5 tunnel show log 参数说明: -n:指定显示行数。 示例如下: odps@ project_name>tunnel show history; 20150610xxxxxxxxxxx70a002ec60c failed 'u --config-file /D:/console/conf/odps_config.ini --project odpstest_ay52c_ay52 --endpoint http://service.odps.aliyun.com/api --id UlxxxxxxxxxxxrI1 --key 2m4r3WvTxxxxxxxxxx0InVke7UkvR d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false' 说明 20150610xxxxxxxxxxx70a002ec60c是上节中导入数据失败时的运行ID。 Resume 修复执行历史记录,仅对上传数据有效。子命令使用提示: odps@ project_name>tunnel help resume; usage: tunnel resume [session_id] [-force] resume an upload session -f,-force force resume Example: tunnel resume 示例如下: 修改data.txt文件为如下内容: shop9,97,100 shop10,10,200 修复执行上传数据,如下所示: odps@ project_name>tunnel resume 20150610xxxxxxxxxxx70a002ec60c --force; start resume 20150610xxxxxxxxxxx70a002ec60c Upload session: 20150610xxxxxxxxxxx70a002ec60c Start upload:d:\data.txt Resume 1 blocks 2015-06-10 16:46:42 upload block: '1' 2015-06-10 16:46:42 upload block complete, blockid=1 upload complete, average speed is 0 KB/s OK 说明 20150610xxxxxxxxxxx70a002ec60c为上传失败的session ID。 数据验证,如下所示: odps@ project_name>select * from sale_detail where sale_date='201312'; ID = 20150610xxxxxxxxxxxa741z5 +-----------+-------------+-------------+-----------+--------+ | shop_name | customer_id | total_price | sale_date | region | +-----------+-------------+-------------+-----------+--------+ | shopx | x_id | 100.0 | 201312 | hangzhou| | shopy | y_id | 200.0 | 201312 | hangzhou| +-----------+-------------+-------------+-----------+--------+ Download 子命令使用提示: odps@ project_name>tunnel help download; usage:tunnel download [options] <[project.]table[/partition]> <path> download data to local file -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -ci,-columns-index <ARG> specify the columns index(starts from 0) to download, use comma to split each index -cn,-columns-name <ARG> specify the columns name to download, use comma to split each name -cp,-compress <ARG> compress, default true -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss -e,-exponential <ARG> When download double values, use exponential express if necessary. Otherwise at most 20 digits will be reserved. Default false -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -limit <ARG> specify the number of records to download -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\dshi p -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai usage: tunnel download [options] instance://<[project/]instance_id> <path> download instance result to local file -c,-charset <ARG> specify file charset, default ignore. set ignore to download raw data -ci,-columns-index <ARG> specify the columns index(starts from 0) to download, use comma to split each index -cn,-columns-name <ARG> specify the columns name to download, use comma to split each name -cp,-compress <ARG> compress, default true -dfp,-date-format-pattern <ARG> specify date format pattern, default yyyy-MM-dd HH:mm:ss -e,-exponential <ARG> When download double values, use exponential express if necessary. Otherwise at most 20 digits will be reserved. Default false -fd,-field-delimiter <ARG> specify field delimiter, support unicode, eg \u0001. default "," -h,-header <ARG> if local file should have table header, default false -limit <ARG> specify the number of records to download -ni,-null-indicator <ARG> specify null indicator string, default ""(empty string) -rd,-record-delimiter <ARG> specify record delimiter, support unicode, eg \u0001. default "\r\n" -sd,-session-dir <ARG> set session dir, default D:\software\odpscmd_public\plugins\dshi p -te,-tunnel_endpoint <ARG> tunnel endpoint -threads <ARG> number of threads, default 1 -tz,-time-zone <ARG> time zone, default local timezone: Asia/Shanghai Example: tunnel download test_project.test_table/p1="b1",p2="b2" log.txt tunnel download instance://test_project/test_instance log.txt 参数说明: -c:本地数据文件编码,默认为UTF-8。 -ci:指定列索引(从0)下载,使用逗号分隔。 -cn:指定要下载的列名称,使用逗号分隔每个名称。 -cp,-compress:指定是否压缩后再下载,减少网络流量,默认开启。 -dfp:DateTime类型数据格式,默认为yyyy-MM-dd HH:mm:ss。 -e:当下载double值时,如果需要,使用指数函数表示,否则最多保留20位。 -fd:本地数据文件的列分割符,默认为逗号。 -h:数据文件是否包括表头,如果为true,则dship会跳过表头从第二行开始下载数据。 说明 -h=true和threads>1即多线程不能一起使用。 -limit:指定要下载的文件数量。 -ni:NULL数据标志符,默认为“ ”(空字符串)。 -rd:本地数据文件的行分割符,默认为\r\n。 -sd:设置session目录。 -te:指定tunnel endpoint。 -threads:指定threads的数量,默认为1。 -tz:指定时区。默认为本地时区:Asia/Shanghai。 示例如下: 下载数据到 result.txt文件中,如下所示: $ ./tunnel download sale_detail/sale_date=201312,region=hangzhou result.txt; Download session: 20150610xxxxxxxxxxx70a002ed0b9 Total records: 2 2015-06-10 16:58:24 download records: 2 2015-06-10 16:58:24 file size: 30 bytes OK 验证 result.txt的文件内容,如下所示: shopx,x_id,100.0 shopy,y_id,200.0 Purge 清除session目录,默认清除距离当前日期3天内的。子命令使用提示: odps@ project_name>tunnel help purge; usage: tunnel purge [n] force session history to be purged.([n] days before, default 3 days) Example: tunnel purge 5 数据类型说明: 类型 描述 STRING 字符串类型,长度不能超过8MB。 BOOLEN 上传值只支持true、false、0和1。下载值为true/false且不区分大小写。 BIGINT 取值范围[-9223372036854775807,9223372036854775807]。 DOUBLE 有效位数16位 上传支持科学计数法表示 下载仅使用数字表示 最大值:1.7976931348623157E308 最小值:4.9E-324 无穷大:Infinity 无穷小:-Infinity DATETIME Datetime类型默认支持时区为GMT+8的数据上传,可以通过命令行指定用户数据日期格式的format pattern。 如果您上传DATETIME类型的数据,需要指定时间日期格式,具体格式请参见SimpleDateFormat。 "yyyyMMddHHmmss": 数据格式"20140209101000" "yyyy-MM-dd HH:mm:ss"(默认):数据格式"2014-02-09 10:10:00" "yyyy年MM月dd日": 数据格式"2014年09月01日" 示例如下: tunnel upload log.txt test_table -dfp "yyyy-MM-dd HH:mm:ss" 空值:所有数据类型都可以有空值。 默认空字符串为空值。 可在命令行下通过-null-indicator参数来指定空值的字符串。 tunnel upload log.txt test_table -ni "NULL" 字符编码:您可以指定文件的字符编码,默认为UTF-8。 tunnel upload log.txt test_table -c "gbk" 分隔符:tunnel命令支持您自定义的文件分隔符,行分隔符选项为-record-delimiter,列分隔符选项为-field-delimiter。 分隔符说明如下: 支持多个字符的行列分隔符。 列分隔符不能够包含行分隔符。 转义字符分隔符,在命令行方式下只支持\r、\n和\t。 示例如下: tunnel upload log.txt test_table -fd "||" -rd "\r\n"

2019-12-01 23:10:57 0 浏览量 回答数 0

问题

Activiti 工作流项目源码 代码生成器 websocket即时通讯 springmvc SS

游客egqjd4t7mlyom 2019-12-01 19:54:26 50 浏览量 回答数 0

问题

Activiti6.0 java项目框架 spring5 SSM 工作流引擎 审批流程

游客ydre72cd7ywew 2019-12-01 20:01:08 10 浏览量 回答数 0

问题

Activiti6.0 java项目框架 spring5 SSM 工作流引擎 审批流程

游客q6uipubrszn5g 2019-12-01 19:59:18 27 浏览量 回答数 0

问题

Activiti6.0 java项目框架 spring5 SSM 工作流引擎 审批流程

游客ydre72cd7ywew 2019-12-01 19:53:06 30 浏览量 回答数 0

问题

Activiti6.0 工作流引擎 websocket即时聊天发图片文字 好友群组 SSM源码

游客q6uipubrszn5g 2019-12-01 19:57:13 37 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 阿里云双十一主会场 阿里云双十一新人会场 1024程序员加油包 阿里云双十一拼团会场 场景化解决方案 阿里云双十一直播大厅