-
| 非结构化数据如何实现备份和容灾,保证数据的安全可靠?@annoymous:先明确几个概念的定义,然后再做讨论。数据备份:通过提供原始数据在多个时间点的不同版本,来保障原始数据在大时间尺度上的可回溯性。备份数据最好能够保存在原始数据不同的物理设备上,以保障备份数据安全。数据容灾在原始数据不可访问的情况下,无需从数据备份中恢复数据,即可为系统提供原始数据的一个或多个时间点的、可读取、可写入、可修改、可删除的数据副本,来保障业务的可用性。备份窗口时间备份窗口时间是指完成一次数据备份操作所需要的时间。数据备份会消耗主机、存储、网络资源,因此备份窗口时间越小越好。灾备演练灾备演练是确保备份数据和容灾数据安全的最后一道防线。没有灾备演练的数据备份和数据容灾方案,都是不完整的,因为无法保障备份和容灾的数据一定可用。非结构化数据一般来说有NAS和对象两种存储方式,存储方式不同,数据量、小文件数量、日数据变化量的不同,都会影响到数据备份和数据容灾的技术方案。对象存储的数据备份和数据容灾:由于对象数据不可修改的特性——只能被删除或覆盖,不适合频繁修改的数据——因此对象存储数据备份技术相对简单,而且无需考虑备份数据量和小文件数量的影响。数据备份通过开启对象存储的版本功能来实现。这是真正等同于数据备份意义上的操作,但是对于数据频繁变化业务场景,会产生大量非预期冗余数据而占用大量存储空间——我们可能只需要保留几个时间点的数据,而非数据所有的变化。单个物理位置站点情况下,依靠对象存储自身的可靠性保障和数据持久性保障,来保障备份数据的安全。在2个或多个地理位置站点情况下,通过存储桶复制或构建跨广域网多逻辑站点的方式,利用对象存储高数据持久性保障的技术特性,提供备份数据安全保障和容灾保障。数据容灾在提供容灾保障的时候,对象存储能否提供同一对象数据在所有站点的可写功能就比较重要了。这能够保障在对象数据初始写入站点故障的时候,容灾站点bucket依然可以写入同一个对象数据的不同版本,实现数据容灾功能,保护业务的可用性。但这不是所有的对象存储产品都能够提供的功能。备份窗口时间在对象存储的技术架构下,对象数据每次写入或修改都是一个新的版本,因此不存在备份窗口时间的问题。总结一下:非结构化数据在对象系统上的备份和容灾,更多是依赖对象存储自身的技术特性,在某种程度上近似模拟出来的。NAS存储的数据备份和数据容灾:数据量不大,小文件数量有限,日数据变化量不多,传统企业级备份软件,能够在可接受的备份窗口时间内,完成数据备份和数据容灾。但是量变产生质变。在海量数据、海量小文件的前提下,哪怕日数据变化量有限,传统企业级备份软件,大多数时候都无法在可接受的备份窗口时间内,完成数据备份。这时候,最好的办法,就是使用NAS存储底层数据复制技术,来实现NAS存储海量非结构化数据的备份和容灾。@melody2004 某城市商业银行 系统架构师:这个问题楼上回答的已经很全面了,我想补充一下关于容灾方面的一些看法。因为工作需要,前段时间深入了解了一些对象存储的容灾解决方案。从现阶段看,非结构化数据的容灾解决方案,对象存储的解决方式是最完整可行的。(暂不考虑价格成本)关键问题是要解决数据在两个中心存储并如何分配的,在容灾情况下数据如何同步,保障一致性。其实我的理解,对象存储提供了从应用接口层到存储层的整体解决方案,这要比NAS存储在解决问题的层次要高一些,因此,在不考虑成本的前提下,对容灾有需求的,肯定是有限考虑对象存储的。@wangguoming:非结构化数据同结构化数据一样,可按照不同的需求,实现多种方式的备份。而唯一不一样的,对于大数据,或者说海量的非结构化数据,由于数据量的巨大,不能用传统的备份方式来处理,这时候我们会建议采用历史数据归档替代传统的备份,一方面保证数据保护的时间窗,同时确保数据的回溯访问时间。至于是采用对象还是文件还是专用的备份装置,需要考虑的核心仍然是应用需求!如果应用需要立即访问,归档一定比备份好,如果考虑得更多的成本,对RTO不是很敏感的话,采用专用备份装置,连接低成本的对象存储也会是一个不错的选择。而对于容灾,基于文件的同步复制、基于对象的多站点分布都是有大量成功案例的方案,具体采用什么样的方案,需要根据具体的环境做相应的分析的选择。@zhangjunxi570 系统分析师:1、备份主流的备份厂商都提供了s3的接口可以直接从对象存储里备份数据。对象存储提供了足够的冗余性,同时配合同城容灾放在对象存储里的数据里的数据也可以免备份(监管要求监管要求备份数据一定要离线存放的另当别论),如果未来对象存储支持分层,提供类似amazon的glacier层冷数据层,也可以将超期的数据在对象存储内部迁移到冷数据冷数据介质层长期归档。2、高可用使用副本或者就删码技术。推荐就删码的技术,保证和传统raid一样的得盘率提高故障冗余的能力。3、容灾两站点双活,两站点单向复制,多站点全局就删。
-
想在obs保存照片,但是照片必须要加密,怎么让移动端直接访问这些照片?
-
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
2781 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。 网页端传大文件总觉得不太稳,所以专门下了客户端,管理与上传文件。  欢迎各位同学来讨论~!
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签