-
1、sdk版本:3.20.62、obs中目标文件的路径为obs://xx-file-storage/123/upload/abc.json3、使用sdk中的方法GetObjectRequest objectRequest = GetObjectRequest(); objectRequest.setBucketName(getBucketName()); objectRequest.setObjectKey(fileName); InputStream inputStream = .getObject(objectRequest).getObjectContent();4、报错:on Host 'xx-file-storage.obs.myhuaweicloud.com' @ 'Fri, 09 Apr 2021 06:35:16 GMT' -- ResponseCode: 404, ResponseStatus: Not Found, XML Error Message:com.obs.services.internal.ServiceException: Request Error.at com.obs.services.internal.RestStorageService.performRequest(RestStorageService.java:782)at com.obs.services.internal.RestStorageService.performRestGet(RestStorageService.java:982)at com.obs.services.internal.RestStorageService.performRestGet(RestStorageService.java:961)5、可能的原因是 原因目标文件名带了路径,并且请求方式为GET的原因。6、请问有什么方法可以解决吗?路径名不能省去!
-
一、从OBS上读数据并导入DWS进入OBS控制台,新建桶dws-test20210316及对象testobs1。上传txt数据文件到obs上。连接DWS集群建立内表table1,以及obs外表table1_inobs_ft。CREATE FOREIGN TABLE table1_inobs_ft(like table1)SERVER gsmpp_server OPTIONS(LOCATION 'obs://dws-test20210316/testobs1/text1.txt',FORMAT 'text' ,DELIMITER ',',ENCODING 'utf8',HEADER 'false',ACCESS_KEY 'U76V66',SECRET_ACCESS_KEY 'qCJyo9B',FILL_MISSING_FIELDS 'true',IGNORE_EXTRA_DATA 'true')READ ONLY LOG INTO product_info_err PER NODE REJECT LIMIT 'unlimited';注意:ACCESS_KEY,SECRET_ACCESS_KEY 是在“我的凭证”—“访问密钥”中下载。首次申请密钥后会提示下载。读取obs数据Select * from table1_inobs_ft;导入OBS数据到DWSinsert into table1 select * from table1_inobs_ft;二、DWS导出数据到OBS在桶dws-test20210316中新建对象output1,设置可读写。创建table1的obs导出外表CREATE FOREIGN TABLE table1_outobs_ft (like table1)SERVER gsmpp_server OPTIONS(LOCATION 'obs://dws-test20210316/output1/',FORMAT 'text',ENCODING 'utf8', DELIMITER ',', ENCRYPT 'off',ACCESS_KEY 'U7DGJ6V66',SECRET_ACCESS_KEY 'qC9B') WRITE ONLY;导出数据到obsinsert into table1_outobs_ft select * from table1;建立外表读取上步骤导出的数据(LOCATION 中table1_outobs_ft表示所有以table1_outobs_ft开头的文件)CREATE FOREIGN TABLE table1_selobs_ft (like table1) SERVER gsmpp_server OPTIONS(LOCATION 'obs://dws-test20210316/output1/table1_outobs_ft',FORMAT 'text' ,DELIMITER ',',ENCODING 'utf8',HEADER 'false',ACCESS_KEY 'U7D66',SECRET_ACCESS_KEY 'qCJycqn0wo9B',FILL_MISSING_FIELDS 'true',IGNORE_EXTRA_DATA 'true')READ ONLY ;select * from table1_selobs_ft;
-
问题场景客户作业场景如下图所示,从DMS kafka通过DLI Flink将业务数据实时清洗存储到DWS。其中,DMS Kafka 目标Topic 6个分区,DLI Flink作业配置taskmanager数量为12,并发数为1。问题现象客户在DLI服务共有三个相同规格的队列,该作业在其中003号队列上运行正常,在001和002号队列上都存在严重的反压导致数据处理缓慢。作业列表显示如下图,可以看到Sink反压状态正常,Souce和Map反压状态为HIGH。问题分析根据反压情况分析,该作业的性能瓶颈在Sink,由于Sink处理数据缓慢导致上游反压严重。该作业所定义的Sink类型为DwsCsvSink,该Sink的工作原理如下图所示:Sink将结果数据分片写入到OBS,每一分片写入完成后,调用DWS insert select sql将obs路径下该分片数据load到dws。因此性能瓶颈出现在分片数据写入到OBS这一步。但问题来了,写同一个桶,为什么在不同队列上的表现不一致?为此,我们排查了各个队列的CPU、内存和网络带宽情况,结果显示负载都很低。这种情况下,只能继续分析FlinkUI和TaskManager日志。数据倾斜?然后我们在FlinkUI任务情况页面,看到如下情况:Map阶段的12个TaskManager并不是所有反压都很严重,而是只有一半是HIGH状态,难道有数据倾斜导致分配到不同TaskManager的数据不均匀?然后看Source subTask详情,发现有两个TaskManager读取的数据量是其他几个的几十倍,这说明源端Kafka分区流入的数据量不均匀。难道就是这么简单的问题?很不幸并不是,通过进一步分析源端数据我们发现Kafka 6个分区数据流入记录数相差并不大。这两个Task只是多消费了部分存量数据,接收数据增长的速度各TaskManager保持一致。时钟同步进一步分析TaskManager日志,我们发现单个分片数据写入OBS竟然耗费3min以上。这非常异常,要知道单个分片数据才500000条而已。进一步通过分析代码发现如下问题:在写OBS数据时,其中一个taskmanager写分片目录后获取该目录的最后修改时间,作为处理该分片的开始时间,该时间为OBS服务端的时间。后续其他taskmanager向该分片目录写数据时,会获取本地时间与分片开始时间对比,间隔大于所规定的转储周期才会写分片数据。如果集群节点NTP时间与OBS服务端不同步,本地时间晚于OBS服务端时间,则会造成写入OBS等待。后续排查集群节点,发现6个节点中一半时间同步有问题,这也和只有一半taskmanager反压严重的现象相对应。问题修复在集群节点上执行如下命令,强制时间同步。systemctl stop ntp ntpdate ntp.myhuaweicloud.com systemctl start ntp systemctl status ntpdateNTP同步后,作业反压很快消失,故障恢复。
-
【摘要】 配置SQL ON OBS桶策略,实现DWS访问分离详情请点击博文链接:https://bbs.huaweicloud.com/blogs/246157
-
如题; 使用AWS S3 的C++ SDK 能访问OBS 么?
-
某软件对接了AWS S3,该系统C++开发;使用AWS S3 C++ SDK; 若该系统迁移到OBS需要做哪些改动? 有没有参考方案或者指导?
-
【功能模块】请问能否通过在obs上的kerberos认证文件完成认证【操作步骤&问题现象】1、当前账号仅有在dayu上发布作业执行的权力,没有给服务器的ip,账号,密码。2、如何仅通过该账号完成kerberos认证?3、如果不行我需要申请什么权限呢?4、对端太难说话了,刚刚上手不懂这块,一直被他们糊弄。【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
配置节点名,ak/sk正确执行例程:demo。出现如下:create bucket esdk-c-test failed(InternalError)使用教程例程还是出现:段错误
-
执行例程:demo,节点名,ak/sk正确出现如下:create bucket esdk-c-test failed(InternalError)
yd_283217222
发表于2021-03-25 20:06:43
2021-03-25 20:06:43
最后回复
yd_283217222
2021-03-25 20:06:43
2775 0 -
-
访问上传后的图片地址,会提示下面的错误提示然后看了一下图片只有拥有者才有权限观看,其他的都没有,要在那里去配置呢,我创建桶时桶策略是开启的公共读了的但是其他的用户都没有权限
-
OBS导入数据,将样例数据通过OBS导入到集群。数据导入流程:准备数据文件:CSV格式的数据文件。创建OBS存储桶,并将数据文件上传至桶。创建外表,用于引流OBS存储桶中的数据到GaussDB(DWS)集群。启动GaussDB(DWS)并创建数据库表后,将OBS上的数据导入到表中。 步骤1:上传数据到OBS 准备数据文件 GaussDB(DWS)支持将OBS上的TEXT、CSV、ORC和CARBONDATA格式的数据导入到集群中。提前准备一个数据文件。 OBS上传数据到将上面准备的3个CSV格式的数据源文件存储到OBS桶中。步骤2:外表字段说明步骤3:执行数据导入若出现以下类似信息,说明数据导入成功。执行SELECT命令查询目标表product_info,查看从OBS导入到GaussDB(DWS)中的查询结果显示如中所示的数据,表示导入成功。创建外表 CREATE FOREIGN TABLE date_dim_in_csv3(d_date_sk integer,d_date_id char(16),d_date date,d_month_seq integer,d_week_seq integer,d_quarter_seq integer,d_year integer,d_dow integer,d_moy integer,d_dom integer,d_qoy integer,d_fy_year integer,d_fy_quarter_seq integer,d_fy_week_seq integer,d_day_name char(9) ,d_quarter_name char(6),d_holiday char(1),d_weekend char(1),d_following_holiday char(1),d_first_dom integer,d_last_dom integer,d_same_day_ly integer,d_same_day_lq integer,d_current_day char(1),d_current_week char(1),d_current_month char(1),d_current_quarter char(1),d_current_year char(1)) SERVER gsmpp_server OPTIONS(location 'gsobs://obs-data.obs.ctyun.cn/data/date_dim.dat' ,FORMAT 'TEXT' ,DELIMITER '|', encoding 'utf8',access_key '$access_key ',secret_access_key '$secret_access_key ');在GaussDB(DWS)数据库中,创建一个名为catalog_page_scv的表,用于存储从OBS导入的数据。DROP TABLE IF EXISTS catalog_page_scv;CREATE TABLE catalog_page_scv(d_date_sk INT,d_date_id char(16),d_date date,d_month_seq INT,d_week_seq INT,d_quarter_seq INT,d_year INT,d_dow INT,d_moy INT,d_dom INT,d_qoy INT,d_fy_year INT,d_fy_quarter_seq INT,d_fy_week_seq INT,d_day_name char(9),d_quarter_name char(6),d_holiday char(1),d_weekend char(1),d_following_holiday char(1),d_first_dom INT,d_last_dom INT,d_same_day_ly INT,d_same_day_lq INT,d_current_day char(1),d_current_week char(1),d_current_month char(1),d_current_quarter char(1),d_current_year char(1));执行INSERT命令,通过外表date_dim_in_csv3将OBS上的数据导入到目标表catalog_page_scv 中:insert into catalog_page_scv select * from date_dim_in_csv3;SERVER:无需修改,即固定设为gsmpp_server。LOCATION:OBS路径由“obs://”、桶名和文件路径组成,即为:obs://<bucket_name>/<file_path>FORMAT此教程中待入库的为CSV格式的数据,故设为CSV。如果是其他格式,请对应替换。DELIMITER此教程中数据源文件中的数据是以“,”分隔的。ENCODING此教程中数据源文件编码格式为UTF-8。HEADER此参数用于指定数据文件是否包含标题行。该参数只针对CSV格式的数据文件有效。准备数据文件中的数据文件第一行不是标题行(即表头),故设为“false”。ACCESS_KEY和SECRET_ACCESS_KEY用户访问OBS的AK和SK,请根据实际替换。获取访问密钥,请登录管理控制台,将鼠标移至右上角的用户名,单击“我的凭证”,然后在左侧导航树单击“访问密钥”。在访问密钥页面,可以查看已有的访问密钥ID(即AK),如果要同时获取AK和SK,可以单击“新增访问密钥”创建并下载访问密钥。FILL_MISSING_FIELDS当数据导入时,数据源文件中一行的最后一个字段缺失的处理方式。默认为false/off。本教程中设为“true”。IGNORE_EXTRA_DATA数据源文件中的字段比外表定义列数多时,是否忽略多出的列。默认为false/off。本教程中设为“true”。READ ONLY外表的语法定义通用于从OBS导入数据到GaussDB(DWS)集群和从集群导出数据到OBS。数据导入集群时,请将外表设为READ ONLY;导出时,请设为WRITE ONLY。LOG INTO指定记录导入过程中数据格式错误信息的错误表。只需指定表名,无需预先创建。GaussDB(DWS)在执行创建外表语句时会自动创建该表,并在删除外表时对其自动删除。PER NODE REJECT LIMIT指定本次数据导入过程中每个DN实例上允许出现的数据格式错误的数量,如果有一个DN实例上的错误数量大于设定值,本次导入失败,报错退出。本教程设置为“unlimited”,即接受导入过程中所有数据格式错误。true/on:表示最后一个字段缺失时,把最后一个字段的值设置为NULL,不报错。false/off:表示最后一个字段缺失时,做如下报错提示:missing data for column "tt"。例如,源数据文件product_info2.csv中第2条记录的最后一个字段段“product_comment_content”缺失。当FILL_MISSING_FIELDS设为false/offtrue/on:数据源文件中字段比外表定义列数多,则忽略行尾多出来的列。不报错false/off:若数据源文件中字段比外表定义列数多,做如下报错提示:extra data after last expected column。例如,源数据文件product_info2.csv中第3条记录比外表定义列数多。当IGNORE_EXTRA_DATA设为false/off时,导入数据时错误表中会有类连接GaussDB(DWS)数据库。创建外表。传到OBS上的三个CSV格式的数据文件,为后续将数据引流至GaussDB(DWS)普通表中做准备。DROP FOREIGN TABLE IF EXISTS product_info_ext;CREATE FOREIGN TABLE product_info_ext( product_price integer not null, product_id char(30) not null, product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) SERVER gsmpp_server OPTIONS(LOCATION 'obs://mybucket/input_data/product_info | obs://mybucket02/input_data/product_info',FORMAT 'CSV' ,DELIMITER ',',ENCODING 'utf8',HEADER 'false',ACCESS_KEY 'access_key_value_to_be_replaced',SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced',FILL_MISSING_FIELDS 'true',IGNORE_EXTRA_DATA 'true')READ ONLY LOG INTO product_info_err PER NODE REJECT LIMIT 'unlimited';返回如下信息表示创建成功:CREATE FOREIGN TABLE外表中相关参数的设置说明如下:登录OBS管理控制台。单击“服务列表”,选择“对象存储服务”,打开OBS管理控制台页面。创建桶。如何创建OBS桶。新建文件夹。上传文件//认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全原文链接:https://bbs.huaweicloud.com/blogs/242254【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中) HOT 【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
-
### OBS Browser+简介 https://support.huaweicloud.com/browsertg-obs/obs_03_1000.html ### 安装   ### 运行与登录   * 如果登录中出现问题的话,可以点击 "教您登录"。我就是看了登录教程后,才会登录的。有多种登录方式,需要根据自己的需求来选择。  ### 我的使用场景 在使用modelarts的notebook开发应用时,会加载数据集等文件,这时就会使用obs。 网页端传大文件总觉得不太稳,所以专门下了客户端,管理与上传文件。  欢迎各位同学来讨论~!
-
工具概述文件传输协议(File Transfer Protocol,FTP)当前广泛应用于个人和企业场景,而随着使用时间越来越长,用户越来越多,本地搭建的FTP服务器都会面临空间使用量增长过快,扩容成本高等问题,增加了IT运维管理的难度。华为云的obsftp工具利用pyftpdlib库的FTP server能力和对象存储云端存储能力,提供出具有FTP接入的云上存储使用能力,提供给FTP近乎无限的存储空间。在企业实际业务中,无需单独搭建FTP服务器和存储池,实现业务和运维的轻量化,极大降低了原有的FTP访问方式的技术成本,完美解决了FTP场景下的存储问题,使数据存储和访问不再困难。工具说明工具下载地址:https://github.com/huaweicloud-obs/obsftp功能特性说明:FTP基本的数据上传、下载、删除能力无损支持。后端数据传输支持HTTP/HTTPS两种模式,在兼容性和安全性上提供更多选择。使用不同桶进行不同服务的数据存储,利于业务规划和运维。支持多个FTP客户端挂载使用。一般4核8GB内存的X86服务器可支撑200个以上客户端同时操作。多操作系统支持:支持32/64位Windows、Linux和Mac操作系统。免安装&配置:拥有默认配置,解压后直接启动使用。开源透明:obsftp工具使用Python语言编程,完整的源代码可直接在GitHub获取;可以根据自己的业务诉求进行灵活的二次开发和改造。约束与限制由于FTP协议为明文传输,为了数据的安全性建议将obsftp工具和FTP Client运行在同一台主机上,通过127.0.0.1:port地址来访问规避FTP协议的不安全性。工具包需要解压在以ASCII码支持的字符(即英文与数字、_等)组成的目录下。obsftp对运行环境中的Python版本要求为2.7.9及以上的2.7系列。obsftp工具因FTP协议限制,单个客户端上传大量数据不会并发进行,因此如有大规模数据处理上云建议使用obsutil等工具或使用OBS SDK进行软件开发实现。安装和使用前提条件在使用本工具前,您需完成华为云帐号注册,开通OBS,并创建一个可用的桶。已下载obsftp工具。工具下载地址:https://github.com/huaweicloud-obs/obsftp在Windows上使用此工具前需要您先完成Python安装。Python工具获取地址:https://www.python.org/downloads/release/python-2715/Python安装指导:以普通Windows程序默认安装方式运行安装即可。操作步骤将obsftp工具包解压到ASCII码支持的字符即英文与数字、_等组成的目录下。按“Windows+R”打开运行窗口,输入cmd命令,按“Enter”,打开CMD命令窗口。在CMD命令窗口进入obsftp工具所在目录,执行以下命令,启动obsftp工具。python FTPServerStart.py python FTPServerStart.py --help FTPServerStart.py [options] -h, --help show this help message and exit --masquerade_address=MASQUERADE_ADDRESS the ip that will reply to FTP Client, then client will send data request to this address. --listen_address=LISTEN_ADDRESS the address which ftpserver will listen, default is 127.0.0.1 --port=PORT the local port which ftpserver will listen, default is 10020 --loglevel=LOGLEVEL DEBUG/INFO/ --passive_ports_start==PASSIVE_PORTS_START the start port of passive ports when transefer data,must be >=1 --passive_ports_end==PASSIVE_PORTS_END the end port of passive ports when transefer data,must be <=65535
-
请问有国内的obs java 服务端sdk下载地址吗?或者maven的库,现在开发者文档上都是指向的github,github下载非常缓慢。还有个问题java的sdk是不是android和服务端的可以通用?
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签