MaxCompute Tunnel上传典型问题场景

本文总结了MaxCompute Tunnel上传数据时遇到的数据问题、网络问题和计费问题,包括数据上传、分区处理、速度优化、错误排查等方面,并提供了相应的解决方案和最佳实践。
摘要由CSDN通过智能技术生成

摘要: 分别描述使用MaxCompute Tunnel命令行工具上传数据的数据类、网络类、计费类问题,长期更新,欢迎大家拍砖~~

数据问题

Q:使用Tunnel Java SDK上传数据,上传数据可以自动分配到各个分区吗?

A:目前Tunnel是无法自动上传数据并自动分配到各个分区的:每一次上传只支持数据上传到一张表或表的一个分区,有分区的表一定要指定上传的分区,多级分区一定要指定到末级分区。关于JAVA SDK可参考:Java SDK

Q:使用Tunnel Java SDK上传数据,如果是分区表,SDK能够动态根据数据创建不同的分区吗?

A:分区需要首先创建好,在使用SDK上传数据时指定。您也可以先把数据上传到MaxCompute上的表中,再用SQL语句动态分区。

Q:使用Tunnel命令行tunnel upload D:\test test/pt="time" 在 DataIDE上进行分区上传为什么报错:FAILED: error occurred while running tunnel command

A:DataIDE是不支持MaxCompute Tunnel命令行工具的upload语句的。

Q:利用Tunnel命令行工具上传数据时,共分为50个block,开始一切正常,但是在第22个block时,出现Upload fail,retry 5次后,直接跳过开始上传第23个block,为什么会发生这种情况?

A:Block 的概念:一个 block 对应一个HTTP request,多个 block 的上传可以并发而且是原子的,一次同步请求要么成功要么失败,不会污染其他的 block。
重传retry有次数的限制的,当重传的次数超过了这个限制,就会继续上传下一个block。上传完成后,可以通过select count(*)语句,检查是否有数据丢失。

Q:本地服务器每天采集的网站日志有10GB,需要上传至MaxCompute,在使用Tunnel Upload命令上传达到的速度约300KB/S 如何提升上传速度?

A:Tunnel Upload命令上传是不设速度限制的。上传速度的瓶颈在网络带宽以及服务器性能。为了提升性能,可以考虑分区分表,在多台ECS上传下载数据。

Q:如何在Shell脚本中将一个TXT文件中的数据上传到MaxCompute的表中, 即把这两条命令组合成一条?命令如下:

/odpscmd/bin/odpscmd

tunnel upload "$FILE" project.table

A:可参考客户端设置命令行客户端的启动参数,在Shell中启动命令是:
/odpscmd/bin/odpscmd -e “tunnel upload "$FILE" project.table”

Q:MaxCompute使用TunnelUpload命令上传数据,如果数据里面有回车或空格为什么上传失败?

A:如果数据里有回车空格,可以给数据设置不同与回车或空格的分隔符后,用-rd和-fd指定对应的分隔符实现数据的上传。如果无法更换数据中的分隔符,可以将数据作为单独一行上传,然后使用UDF解析。

例如下列数据中包含回车,使用“,”作为列分隔符rd,使用“@”作为行分隔符fd,可以正常上传:

数据内容

shopx,x_id,100@
shopy,y_id,200@
shopz,z_i
d,300@

上传命令

odps@ MaxCompute_DOC>tunnel u d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false -fd "," -rd "@";

上传结果

+-----------+-------------+-------------+-----------+--------+
| shop_name | customer_id | total_price | sale_date | region |
+-----------+-------------+-------------+-----------+--------+
| shopx     | x_id        | 100.0       | 201312    | hangzhou |
| shopy   | y_id        | 200.0       | 201312    | hangzhou |
| shopz   | z_id
d   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值