• [其他] 【CDM产品】【mysql迁移功能】如何实现根据时间的分钟级别的增量迁移
    mysql关系型数据库,有时间字段。问题1:如何实现每5分钟迁移一次增量数据。问题2:如何实现根据上次迁移的时间点,迁移此次增量数据。有没有时间自增的功能?
  • [问题求助] 【DGC赋能考试】【新建连接】CDM集群管理,新建连接,连接不上
    换了IP了,连接不成功
  • [教程] CDM权限配置类问题排查
    CDM权限控制从产品上线后做过两次升级,第一次是跟随统一认证服务(IAM),适配了其细粒度鉴权特性,第二次是对接了智能数据湖运营平台,适配了其以工作空间为基本单位的鉴权体系;相较于旧的“粗粒度”鉴权,细粒度鉴权功能更强大、使用场景更广,譬如管理员只想赋予某用户作业相关的权限(启停作业、创建作业/连接)而不想让用户有集群操作(启停/创建/删除集群)的权限,细粒度可以通过添加预制的“CDM CommonOperations”系统策略或自定义策略来实现,而这种需求,粗粒度是无法满足的;智能数据湖运营平台是以工作空间为单位进行鉴权的,在实际业务流程中,管理员可以将执行特定业务的CDM集群放在某特定工作空间中,并赋予用户此工作空间的特定权限,从而方便的控制该用户只能操作该命名空间下的集群;随着鉴权体系的日益丰富,使用门槛必然也水涨船高,但整体上还是比较清晰的,基本有这两条主线:在CDM独立服务中使用作为智能数据湖运营平台的CDM组件使用如果用户在使用CDM过程中遇到了权限相关的问题,譬如无访问权限、获取的集群列表为空、操作时报当前策略不允许执行等请按照如下步骤排查:如果是独立CDM服务使用:检查是否开启IAM细粒度鉴权如果未开启,检查用户组是否添加CDM Administrator角色。如果已开启,请继续检查。检查用户是否添加cdm访问策略,包含自定义策略或预设策略,如CDM FullAccess、CDM ReadOnlyAccess等,参考CDM权限管理。检查对应企业项目是否添加拒绝访问策略,请参考云服务权限说明,简单理解其就是基于企业项目粒度的权限管理。如果是作为DGC服务CDM组件使用:检查用户是否添加DAYU Administrator或DAYU User角色,参考DGC权限管理。如果添加了DAYU User角色,检查是否有对应工作空间的权限,如开发者、访客等,参考DGC权限列表。
  • [集群&DWS] GaussDB(DWS)数据融合系列第七期:CDM导出数据
    【摘要】 CDM支持迁移文档数据库服务(Document Database Service,简称DDS)的数据到其他数据源,本节以CDM与数据仓库服务(Data Warehouse Service,简称DWS)对接为内容,介绍如何使用CDM将DDS数据迁移到DWS。概述        云数据迁移服务(Cloud Data Migration,简称CDM),可以将其他数据源(例如MySQL)的数据迁移到GaussDB(DWS) 集群的数据库中。同时也支持使用CDM将数据导出到DWS集群的数据库中,本节博客将讲述CDM导出数据的具体操作。创建CDM集群并绑定EIP登录CDM管理控制台,创建CDM集群。关键配置如下:CDM集群的规格,按待迁移的数据量选择,一般选择cdm.medium即可,满足大部分迁移场景。如果DDS和DWS属于相同的VPC,则创建CDM集群时选择同一个VPC,不用绑定EIP。子网、安全组可以选择与其中一个(DDS或DWS)集群的保持一致,再配置安全组规则允许CDM集群访问另一个服务(DWS或DDS)的集群。如果DDS和DWS不在同一个VPC,则创建CDM集群时选择与DDS相同的VPC,再将CDM集群绑定EIP,CDM通过EIP访问DWS集群。CDM集群创建完成后,选择集群操作列的“绑定弹性IP”,CDM通过EIP访问DWS。如果DDS与DWS在同一个VPC,则不用为CDM集群绑定EIP。创建DDS连接单击CDM集群后的“作业管理”,进入作业管理界面,再选择“连接管理 > 新建连接”,进入选择连接器类型的界面,如图1所示。图1 选择连接器类型创建DDS连接时,连接器类型选择“文档数据库服务(DDS)”,然后单击“下一步”配置连接参数,参数说明如表1所示。参数名说明取值样例名称根据连接的数据源,用户自定义便于记忆、区分的连接名称。mongo_link服务器列表DDS集群的地址列表,输入格式为“数据库服务器域名或IP地址:端口”。多个服务器列表间以“;”分隔。192.168.0.1:7300;192.168.0.2:7301数据库名称要连接的DDS数据库名称。DB_mongodb用户名登录DDS数据库的用户名。cdm密码登录DDS数据库的密码。-表1 DDS连接参数单击“保存”回到连接管理界面。创建DWS连接在“连接管理”界面单击“新建连接”,连接器类型选择“数据仓库服务(DWS)”。单击“下一步”配置DWS连接参数,必填参数如表2所示,可选参数保持默认即可。参数名说明取值样例名称输入便于记忆和区分的连接名称。dwslink数据库服务器DWS数据库的IP地址或域名。192.168.0.3端口DWS数据库的端口。8000数据库名称DWS数据库的名称。db_demo用户名拥有DWS数据库的读、写和删除权限的用户。dbadmin密码用户的密码。-使用Agent是否选择通过Agent从源端提取数据。是Agent单击“选择”,选择连接Agent中已创建的Agent。-导入模式COPY模式:将源数据经过DWS管理节点后拷贝到数据节点。如果需要通过Internet访问DWS,只能使用COPY模式。COPY表2 DWS连接参数单击“保存”完成创建连接。创建迁移作业选择“表/文件迁移 > 新建作业”,开始创建数据迁移任务。                                                                                               图2 创建DDS到DWS的迁移任务配置作业基本信息:作业名称:输入便于记忆、区分的作业名称。源端作业配置源连接名称:选择创建DDS连接中的“mongo_link”。数据库名称:选择待迁移数据的数据库。集合名称:DDS中MongoDB的集合,类似于关系型数据库中的表名。目的端作业配置目的连接名称:选择创建DWS连接中的连接“dwslink”。模式或表空间:选择待写入数据的DWS数据库。表名:待写入数据的表名,可以手动输入一个不存在表名,CDM会在DWS中自动创建该表。导入前清空数据:任务启动前,是否清除目的表中数据,用户可根据实际需要选择。单击“下一步”进入字段映射界面,CDM会自动匹配源端和目的端的数据表字段,需用户检查字段映射关系是否正确。如果字段映射关系不正确,用户单击字段所在行选中后,按住鼠标左键可拖拽字段来调整映射关系。导入到DWS时需要手动选择DWS的分布列,建议按如下顺序选取:有主键可以使用主键作为分布列。多个数据段联合做主键的场景,建议设置所有主键作为分布列。在没有主键的场景下,如果没有选择分布列,DWS会默认第一列作为分布列,可能会有数据倾斜风险。如果需要转换源端字段内容,可在该步骤配置,具体操作请参见字段转换,这里选择不进行字段转换。                                                                                                            图3 字段映射单击“下一步”配置任务参数,一般情况下全部保持默认即可。该步骤用户可以配置如下可选功能:作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。是否定时执行:这里保持默认值“否”。抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。作业运行完是否删除:这里保持默认值“不删除”。单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。作业执行成功后,单击作业操作列的“历史记录”,可查看该作业的历史执行记录、读取和写入的统计数据。原文链接:https://bbs.huaweicloud.com/blogs/245848【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中) 扫码关注我哦,我在这里↓↓↓ 
  • [热门活动] HDC大会福利来袭!华为云数据库《MySQL数据库迁移上云》微认证限时0元秒杀
    HDC大会福利来袭!华为云数据库《MySQL数据库迁移上云》微认证:4月24~25日,全场3折,下单就送价值22元的GaussDB字母笔7支/盒;4月26日,限时0元秒杀,仅此一天;活动期间,下单并考取微认证的用户,将证书上传到活动帖,即可得到64GU盘、GaussDB字母笔、华为数据之道、《openGauss数据库核心技术》任意礼品一个。活动链接:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=121539
  • [集群&DWS] GaussDB(DWS)数据融合系列第一期:云端数据接入(CDM)
    【摘要】 GaussDB(DWS)提供了灵活的数据入库方式,可以将多种数据源的数据导入到GaussDB(DWS)中,如图1所示。各导入方式具有不同的特点,如表1所示,用户可以根据其特点自行选择。建议用户配合云数据迁移(Cloud Data Migration,简称CDM)、数据接入服务(Data Ingestion Service,简称DIS)和数据湖工厂(Data Lake Factory,简称DLF)。概述        云数据迁移服务(Cloud Data Migration,简称CDM),可以将其他数据源(例如MySQL)的数据迁移到GaussDB(DWS) 集群的数据库中。       GaussDB(DWS)提供了灵活的数据入库方式,可以将多种数据源的数据导入到GaussDB(DWS)中,如图1所示。各导入方式具有不同的特点,如表1所示,用户可以根据其特点自行选择。建议用户配合云数据迁移(Cloud Data Migration,简称CDM)、数据接入服务(Data Ingestion Service,简称DIS)和数据湖工厂(Data Lake Factory,简称DLF)一起使用,CDM用于批量数据迁移,DIS用于流数据接入,DLF可以对整个ETL过程进行编排调度,同时提供可视化的开发环境。导入方式:数据导入方式说明:数据导入方式数据源说明优势从OBS并行导入数据OBS支持将存储在OBS上的TXT、CSV、ORC及CARBONDATA格式的数据并行导入到GaussDB(DWS),支持导入后查询数据,也支持远程读OBS上的数据。GaussDB(DWS)优先推荐的导入方式。并行拉取方式,性能好,横向扩展。使用GDS从远端服务器导入数据Servers(即远端服务器)使用GaussDB(DWS)提供的GDS工具,利用多DN并行的方式,将数据从远端服务器导入到GaussDB(DWS)。这种方式导入效率高,适用于大批量数据入库。从MRS导入数据到集群MRS(HDFS)配置一个GaussDB(DWS)集群连接到一个MRS集群,然后将数据从MRS的HDFS中读取到GaussDB(DWS)。并行拉取方式,性能好,横向扩展。使用CDM迁移数据到GaussDB(DWS)数据库、NoSQL、文件系统、大数据平台CDM提供同构/异构数据源之间批量数据迁移的功能,帮助您实现从多种类型的数据源迁移数据到GaussDB(DWS)。CDM在迁移数据到GaussDB(DWS)时,采用的是Copy方式和GDS并行导入方式。数据源丰富,操作简单。从DIS导入流式数据到GaussDB(DWS)流数据可以将流式数据从DIS通道周期性导入到GaussDB(DWS)集群的数据库中。导入GaussDB(DWS)前数据临时存储在OBS,待转储GaussDB(DWS)完成后删除OBS上的临时存储数据。准实时入库。第三方ETL工具数据库、NoSQL、文件系统、大数据平台请参考第三方ETL工具的相关文档。GaussDB(DWS)提供了DSC工具,可以将Teradata/Oracle脚本迁移到GaussDB(DWS)。·         使用DSC工具迁移SQL脚本·         使用Schema Convertor Tool将MySQL迁移到DWS通过OBS中转,数据源丰富,数据转换能力强。通过INSERT语句直接写入数据-使用SQL客户端工具或JDBC/ODBC驱动连接GaussDB(DWS)数据库时,执行INSERT语句插入一行或多行数据,以及从指定表插入数据。INSERT是最简单的一种数据写入方式,适合数据写入量不大,并发度不高的场景。使用COPY FROM STDIN导入数据其他文件或数据库使用Java语言开发应用程序时,通过调用JDBC驱动的CopyManager接口,从文件或其他数据库向GaussDB(DWS)写入数据。从其他数据库直接写入GaussDB(DWS)的方式,具有业务数据无需落地成文件的优势。使用gsql元命令\copy导入数据本地文件与直接使用SQL语句COPY不同,该命令读取/写入的文件只能是gsql客户端所在机器上的本地文件。操作简单,适用于小批量数据入库。 场景介绍本节介绍云数据迁移(Cloud Data Migration,以下简称CDM)的基础使用方法,通过使用CDM迁移本地MySQL数据库中的表,写入到数据仓库服务DWS的具体操作,帮助您了解、熟悉CDM服务,具体场景如图。CDM的基本使用流程如下:创建CDM集群创建连接创建并执行作业查看作业运行结果以完成数据迁移创建集群操作场景用户首先需要创建CDM集群,来执行MySQL数据同步到DWS的任务。前提条件已获取DWS所在的区域、VPC、子网、安全组。操作步骤1. 登录CDM管理控制台。2. 单击“购买云数据迁移服务”,进入创建CDM集群的界面,集群配置样例如下:当前区域:选择CDM集群的区域,不同区域的资源之间内网不互通,这里必须选择与DWS所在区域一致。可用区:指在同一区域下,电力、网络隔离的物理区域,可用区之内内网互通,不同可用区之间物理隔离。这里选择“可用区2”。集群名称:集群名称在4位到64位之间,必须以字母开头,可以包含字母、数字、中划线或者下划线,不能包含其他的特殊字符,例如:“cdm-aff1”。版本:默认即可。实例类型:用户按实际业务数据量选择实例规格,这里选择“cdm.medium”即可,适用大部分迁移场景。large:8核CPU、16G内存的虚拟机,最大带宽/基准带宽为3/0.8Gbps,能够并发执行的作业个数为20,适合单张表规模≥1000万条的场景。xlarge:16核CPU、32G内存的虚拟机,最大带宽/基准带宽为10/4Gbps,能够并发执行的作业个数为100,适合使用10GE高速带宽进行TB以上的数据量迁移。4xlarge:64核CPU、128G内存的虚拟机,最大带宽/基准带宽为30/30Gbps,能够并发执行的作业个数为300。虚拟私有云:即VPC(Virtual Private Cloud),这里必须选择与DWS相同的VPC。子网:推荐与DWS的子网一致。安全组:推荐与DWS的安全组一致。这里所配置的子网、安全组也可以与DWS不一致,但是需要配置安全组规则,允许CDM集群能正常访问DWS。其它参数保持默认即可。3. 查看当前配置,确认无误后单击“立即购买”进入规格确认界面。说明:集群创建好以后不支持修改规格,如果需要使用更高规格,需要重新创建。4. 单击“提交申请”,系统开始自动创建CDM集群,在“集群管理”界面可查看创建进度。说明:创建集群需要10~20分钟时间,如果您是首次创建CDM集群,只需要一分钟即可。创建连接连接说明迁移本地MySQL数据库到数据仓库服务DWS前,需要创建2个连接:MySQL连接:CDM连接本地MySQL数据库。DWS连接:CDM连接DWS数据库。由于CDM需要访问本地数据源,所以创建连接前,需先为CDM集群绑定弹性IP,CDM通过弹性IP访问MySQL数据库。前提条件用户本地的MySQL数据库已允许通过公网IP访问。用户已拥有EIP配额。已获取连接MySQL数据库的IP地址、端口、数据库名称、用户名、密码,且该用户拥有MySQL数据库的读、写和删除权限。用户已经拥有了DWS实例,已获取连接DWS数据库的IP地址、端口、数据库名称、用户名、密码,且该用户拥有DWS数据库的读、写和删除权限。创建MySQL连接1. 登录CDM管理控制台。2. 单击左侧导航上的“集群管理”,找到步骤1:创建集群章节创建的集群“cdm-aff1”。3. 单击该集群后的“绑定弹性IP”,选择并绑定弹性公网IP。图1 绑定EIP说明:如果用户对本地数据源的访问通道做了SSL加密,则CDM无法通过弹性IP连接数据源。4. 单击CDM集群后的“作业管理”,进入作业管理界面,再选择“连接管理> 新建连接”,进入选择连接器类型的界面,如图2所示。图2 选择连接器类型5. 选择“MySQL”后单击“下一步”,配置MySQL连接的参数。图3 创建MySQL连接单击“显示高级属性”可查看更多可选参数,具体请参见配置关系数据库连接。这里保持默认,必填参数如表1所示。参数名说明取值样例名称输入便于记忆和区分的连接名称。mysqllink数据库服务器MySQL数据库的IP地址或域名。192.168.0.1端口MySQL数据库的端口。3306数据库名称MySQL数据库的名称。sqoop用户名拥有MySQL数据库的读、写和删除权限的用户。admin密码用户的密码。-使用Agent是否选择通过Agent从源端提取数据。是Agent单击“选择”,选择连接Agent中已创建的Agent。-6. 单击“保存”回到连接管理界面。说明:如果保存时出错,一般是由于MySQL数据库的安全设置问题,需要设置允许CDM集群的EIP访问MySQL数据库。创建DWS连接1. 在“连接管理”界面单击“新建连接”,连接器类型选择“数据仓库服务(DWS)”。2. 单击“下一步”配置DWS连接参数,必填参数如表2所示,可选参数保持默认即可。参数名说明取值样例名称输入便于记忆和区分的连接名称。dwslink数据库服务器DWS数据库的IP地址或域名。192.168.0.3端口DWS数据库的端口。8000数据库名称DWS数据库的名称。db_demo用户名拥有DWS数据库的读、写和删除权限的用户。dbadmin密码用户的密码。-使用Agent是否选择通过Agent从源端提取数据。是Agent单击“选择”,选择连接Agent中已创建的Agent。-导入模式COPY模式:将源数据经过DWS管理节点后拷贝到数据节点。如果需要通过Internet访问DWS,只能使用COPY模式。COPY3. 单击“保存”完成创建连接。创建并执行作业操作场景    创建CDM迁移数据表的作业,执行从本地MySQL数据库复制表到DWS的任务。操作步骤1. 在集群管理界面,找到步骤1:创建集群章节创建的集群“cdm-aff1”。2. 单击该CDM集群后的“作业管理”,进入作业管理界面。3. 选择“表/文件迁移> 新建作业”,配置作业基本信息。图1 新建作业作业名称:输入便于记忆、区分的作业名称,例如:“mysql2dws”。源端作业配置源连接名称:选择步骤2:创建连接章节中创建的MySQL连接“mysqllink”。使用SQL语句:选择“否”。模式或表空间:选择从MySQL的哪个数据库导出表。表名:选择导出哪张表。其它可选参数保持默认即可,详细说明可参见配置关系数据库源端参数。目的端作业配置目的连接名称:选择步骤2:创建连接章节中创建的DWS连接“dwslink”。模式或表空间:选择导入到DWS的哪个数据库。自动创表:这里选择“不存在时创建”,当下面“表名”参数中配置的表不存在时,CDM会自动在DWS数据库中创建该表。表名:选择导入到DWS数据库的哪张表。其他可选参数保持默认即可,详细说明可参见配置关系数据库目的端参数。4. 单击“下一步”进入字段映射界面,CDM会自动匹配源端和目的端的数据表字段,需用户检查字段映射关系是否正确。如果字段映射关系不正确,用户单击字段所在行选中后,按住鼠标左键可拖拽字段来调整映射关系。导入到DWS时需要手动选择DWS的分布列,建议按如下顺序选取:有主键可以使用主键作为分布列。多个数据段联合做主键的场景,建议设置所有主键作为分布列。在没有主键的场景下,如果没有选择分布列,DWS会默认第一列作为分布列,可能会有数据倾斜风险。如果需要转换源端字段内容,可在该步骤配置,具体操作请参见字段转换,这里选择不进行字段转换。图2 字段映射5. 单击“下一步”配置任务参数,一般情况下全部保持默认即可。该步骤用户可以配置如下可选功能:作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。作业运行完是否删除:这里保持默认值“不删除”。6. 单击“保存并运行”,CDM立即开始执行作业。说明:如果运行作业失败,日志提示如下错误:SQL语句无法执行。ERROR: value too long for type character varying(7) Where: COPY dws_city, line 1, column name: "广州市"。原因:DWS表的字符字段长度不够。这是因为MySQL和华为云DWS存储中文时编码不一样,所需的长度也不一样,一个中文字符在UTF-8编码下可能要占3个字节。解决方法:在3新建作业时选择自动创表,高级属性参数“扩大字符字段长度”选择“是”,再重新执行作业。这样CDM在DWS中自动创表时,会将字符类型的字段长度设置为原表的3倍。查看作业运行结果操作场景作业完成后,可以查看作业执行结果及最近90天内的历史信息,包括写入行数、读取行数、写入字节、写入文件数和日志等信息。操作步骤1. 在集群管理界面,找到步骤1:创建集群章节创建的集群“cdm-aff1”。2. 单击该CDM集群后的“作业管理”,进入作业管理界面。3. 找到步骤3:创建并执行作业章节创建的作业“mysql_dws”,查看该作业的执行状态。说明:作业状态有New,Pending,Booting,Running,Failed,Succeeded。其中“Pending”表示正在等待系统调度该作业,“Booting”表示正在分析待迁移的数据。4. 单击作业后面的“历史记录”,可查看作业的写入行数、读取行数、写入字节或写入文件数。图1 查看历史记录5. 在历史记录界面,再单击“日志”可查看作业执行的日志信息。也可以在作业列表界面,选择“更多 > 日志”来查看该作业最近的一次日志。图2 查看作业日志原文链接:https://bbs.huaweicloud.com/blogs/237368【推荐阅读】【最新活动汇总】DWS活动火热进行中,互动好礼送不停(持续更新中)  HOT  【博文汇总】GaussDB(DWS)博文汇总1,欢迎大家交流探讨~(持续更新中)【维护宝典汇总】GaussDB(DWS)维护宝典汇总贴1,欢迎大家交流探讨(持续更新中)【项目实践汇总】GaussDB(DWS)项目实践汇总贴,欢迎大家交流探讨(持续更新中)【DevRun直播汇总】GaussDB(DWS)黑科技直播汇总,欢迎大家交流学习(持续更新中)【培训视频汇总】GaussDB(DWS) 培训视频汇总,欢迎大家交流学习(持续更新中)扫码关注我哦,我在这里↓↓↓
  • [迁移系列] GaussBD A 8.0.0.3 从Oracle往GaussDB数据库迁移数据
    从Oracle往GaussDB数据库迁移数据,想知道有什么方法或者工具可以实现(不需要具体操作步骤)?需满足以下要求:Oracle上针对表的增删改查可以同步到GaussDB库;Oracle库里表数据量不大,每次的增量数据也不大,但是需要迁移速度快。
  • [技术专区] wap灰度发帖验证
    wap灰度发帖验证
  • [赋能学习] 【场景案例】xx公安户籍系统数据库迁移(使用BulkLoad 向 HBase 中批量导入数据)
    # 公安户籍系统数据库迁移(使用BulkLoad 向 HBase 中批量导入数据) ## 一、背景介绍 ### 1. 概述 我们经常面临向 HBase 中导入大量数据的情景。 往HBase 中批量加载数据的方式有很多种,最直接方式是调用HBase 的API用put方法插入数据;另外一种是用MapReduce的方式从hdfs上加载数据,调用TableOutputFormat 类在reduce中直接生成put对象写入HBase(这种方式可以看作多线程的调用hbase API方式);但是这两种方式效率都不是很高,因为HBase会频繁的进行flush、compact、split操作,需要消耗较大的 CPU 和网络资源,并且region Server压力也比较大。 BulkLoad 方式调用MapReduce的job直接将数据输出成HBase table内部的存储格式的文件HFile,然后将生成的StoreFiles 加载到集群的相应节点。这种方式无需进行flush、compact、split等过程,不占用region资源,不会产生巨量的写入 I/O,所以需要较少的 CPU 和网络资源。在首次数据加载时,能极大的提高写入效率,并降低对Region Server节点的写入压力。 ### 2. BulkLoad导入流程 BulkLoad涉及两个过程: 1. Transform阶段:使用MapReduce将HDFS上的数据生成成HBase的底层Hfile数据。 2. Load阶段:根据生成的目标HFile,利用HBase提供的BulkLoad工具将HFile Load到HBase的region中。 ### 3. bulkload和put适合的场景: - bulkload适合的场景: - 大量数据一次性加载到HBase。 - 对数据加载到HBase可靠性要求不高,不需要生成WAL文件。 - 使用put加载大量数据到HBase速度变慢,且查询速度变慢时。 - 加载到HBase新生成的单个HFile文件大小接近HDFS block大小。 - put适合的场景: - 每次加载到单个Region的数据大小小于HDFS block大小的一半。 - 数据需要实时加载。 - 加载数据过程不会造成用户查询速度急剧下降。 ### 4. Bulkload批量导入数据shell操作步骤: 1. 将数据导入到HDFS中 2. 建表并创建导入模板文件 3. 执行命令,生成HFile文件 4. 执行命令将HFile导入HBase ## 二、示例 ### 1. 场景描述 陕西省西安市2018年全市户籍总人口905.68万人,公安系统现在需要把这些人口信息从原来的数据存储库迁移至HBase中。 ### 2. 原始数据 原始数据person_information.txt文件中人口信息按行分别为: 身份证号,姓名,出生年月,性别,户籍所在区县 610122000000001001,陈精业,19940524,男,蓝田县 610102000000001002,王军林,19870402,男,新城区 610111000000001003,田心亚,19681103,女,灞桥区 610125000000001004,王朝辉,19970608,男,鄠邑区 610112000000001005,冯诗雨,19900801,女,未央区 610112000000001006,黄秋野,19990505,男,未央区 610122000000001007,彭云超,20011205,男,蓝田县 610116000000001008,尤丽雯,19981123,女,长安区 610104000000001009,龚小刚,20050817,男,莲湖区 610124000000001010,兰春元,19870609,女,周至县 610115000000001011,王苏涛,19881107,男,临潼区 610114000000001012,周东来,19761028,男,阎良区 610103000000001013,邱维坚,19770929,男,碑林区 610116000000001014,卓鹏宇,19730726,男,长安区 610104000000001015,尤丽雯,19690317,女,莲湖区 610102000000001016,张雪红,19820109,女,新城区 610104000000001017,赵静静,19660527,女,莲湖区 610124000000001018,曹笑天,19980616,女,周至县 610112000000001019,李晓萍,19851114,女,未央区 610115000000001020,牛红艺,19930520,女,临潼区 ### 3. shell操作步骤 #### 1.将数据导入到HDFS中 HBase不管理数据提取这部分过程。 通常需要导入的外部数据都是存储在其它的关系型数据库或一些文本文件中,我们需要将数据提取出来并放置于 HDFS 中。也借助 ETL工具可以解决大多数关系型数据库向 HDFS 迁移数据的问题。 例如,我们可以在一个表上运行mysqldump(mysql数据库中备份工具,用于将MySQL服务器中的数据库以标准的sql语言的方式导出保存到文件中。)并将结果文件上传到HDFS。 执行命令: - 在HDFS上创建一个目录例如/user/testBulkload ``` hdfs dfs -mkdir /testBulkload ``` - 把linux本地/opt目录下person_information.txt文件传到HDFS上/testBulkload目录下 ``` hdfs dfs -put /opt/person_information.txt /user/testBulkload ``` - 可使用下面命令查看一下 ``` hdfs dfs -cat /user/testBulkload/person_information.txt ``` 结果展示: ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/25/190754ttfqn7hojosfkyfk.png) #### 2.建表并自定义导入模板文件 建表: 需要根据导入数据,设计好HBase数据表的表名、rowkey、列族、列,考虑好row key分配在创建表时进行预分割。 根据源数据和业务设计表,在hbase shell下执行命令: - person_information_table:表名 - NAME => 'base':列族名称。 - COMPRESSION:压缩方式 - DATA_BLOCK_ENCODING:编码算法 - SPLITS:预分region ``` create  'person_information_table', {NAME => 'base',COMPRESSION => 'SNAPPY',  DATA_BLOCK_ENCODING => 'FAST_DIFF'},SPLITS => ['1','2','3','4','5','6','7','8'] ``` #### 3. 执行如下命令,生成HFile文件 命令模板: ``` hbase com.huawei.hadoop.hbase.tools.bulkload.IndexImportData -Dimport.skip.bad.lines=true -Dimport.separator= -Dimport.bad.lines.output= -Dimport.hfile.output= ``` - -Dimport.separator:分隔符。例如,-Dimport.separator=',' - -Dimport.skip.bad.lines:指定值为false,表示遇到不适用的行则停止执行。指定值为true,表示遇到不适用的数据行则跳过该行继续执行,如果没有在configuration.xml中定义不适用行,该参数不需要添加。 - -Dimport.bad.lines.output=:指的是不适用的数据行输出路径,如果没有在configuration.xml中定义不适用行,该参数不需要添加。 - -Dimport.hfile.output= /path/for/output>:指的是执行结果输出路径。 - configuration xmlfile>:指向configuration配置文件,本样例可将附件中configuration_index.xml放置在/opt目录。 - tablename>:指的是要操作的表名。 - inputdir>:指的是要批量上传的数据目录。 - com.huawei.hadoop.hbase.tools.bulkload.IndexImportData:导入时创建二级索引使用IndexImportData;如果不创建二级索引,使用ImportData 根据场景业务执行命令: ``` hbase com.huawei.hadoop.hbase.tools.bulkload.ImportData -Dimport.separator=',' -Dimport.hfile.output=/user/testBulkload/hfile /opt/configuration_index.xml person_information_table /user/testBulkload/person_information.txt ``` 结果展示: base列族数据生成hfile ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/25/190724jwjucsv7lurlcuxu.png) #### 4.执行如下命令将HFile导入HBase 执行命令: - /testBulkload/hfile :hfile在HDFS上的位置 - person_information_table : hbase表名 ``` hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /user/testBulkload/hfile person_information_table ``` 结果展示: 表中部分数据: ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202012/25/1907047ugkszwesduxwbd2.png)
  • [技术干货] MySQL数据库迁移
    数据库迁移就是把数据从一个系统移动到另一个系统上,迁移过程其实就是在源数据库备份和目标数据库恢复的过程组合。迁移的原因是多种多样的,比如:需要安装新的数据库服务器MySQL 版本更新数据库管理系统的变更(如从 SQL Server 迁移到 MySQL)根据实际操作等情况,可以将数据库迁移操作分成以下 3 种形式。相同版本 MySQL 数据库之间的迁移。不同版本 MySQL 数据库之间的迁移。不同数据库间的迁移。下面将详细介绍数据库迁移的各种方式。1. 相同版本的迁移相同版本的 MySQL 数据库是指主版本号一致的数据库。主版本号一致的数据库迁移最容易实现。由于迁移前后 MySQL 数据库的主版本号相同,所以可以通过复制数据库目录来实现数据库迁移。最安全和最常用的方式是通过使用 mysqldump 命令进行数据库备份,然后使用 mysql 命令将备份文件还原到新的 MySQL 数据库。迁移时的备份和还原操作可以同时执行。假设从一个名为 hostname1 的机器中备份出所有数据库,然后将这些数据库迁移到名为 hostname2 的机器上,具体语法形式如下:mysqldump -h hostname1 -u root -password=password1 -all-databases|mysql -h hostname2 -u root -password=password2其中:符号“|”用来实现将命令 mysqldump 备份的文件送给 mysql 命令;password1 为 hostname1 主机上 root 用户的密码;password2 为 hostname2 主机上 root 用户的密码;-all-databases 表示迁移全部的数据库,可省略。通过上述语句就可以直接迁移。2. 不同版本的迁移不同版本的 MySQL 数据库之间的数据迁移通常是 MySQL 升级的原因。例如,服务器使用 4.0 版本的 MySQL 数据库,现在要升级为 5.7 版本的。这样就需要不同版本的 MySQL 数据库之间进行数据迁移。不同版本下的数据库迁移,分为 2 种方式:低版本数据库向高版本数据库进行迁移高版本数据库向低版本数据库进行迁移低版本数据库向高版本数据库进行迁移时,由于高版本会兼容低版本,所以该种方式也是最容易实现的操作。对于存储类型为 MyISAM 的表,最安全和最常用的操作是直接复制数据文件。对于存储类型为 InnoDB 的表,最安全和最常用的操作是执行 mysqldump 命令进行备份和执行 mysql 命令还原恢复数据。但是高版本数据库向低版本数据库进行迁移时,因为高版本数据库可能有一些新的特性,这些特性是低版本数据库所不具有的,所以数据库迁移时要特别小心,最好使用 mysqldump 命令来进行备份,避免迁移时造成数据丢失。3. 不同数据库的迁移不同数据库之间的迁移是指从其它类型的数据库迁移到 MySQL 数据库,或者从 MySQL 数据库迁移到其他类型的数据库。例如,某个网站原来使用 Oracle 数据库,因为运营成本太高等诸多原因,希望改用 MySQL 数据库。或者,某个管理系统原来使用 MySQL 数据库,因为某种特殊性能的要求,希望改用 Oracle 数据库。这样的不同数据库之间的迁移也经常会发生。但是这种迁移没有普通适用的解决办法。其它数据库也有类似 mysqldump 这样的备份工具,可以将数据库中的文件备份成 sql 文件或普通文本。但是,不同的数据库厂商并没有完全按照 SQL 标准来设计数据库,这就造成了不同数据库使用的 SQL 语句的差异。例如,微软的 SQL Server 软件使用的是 T-SQL 语言。T-SQL 中包含了非标准的 SQL 语句。这就造成了 SQL Server 和 MySQL 的 SQL 语句不能兼容。除了 SQL 语句存在不兼容的情况外,不同的数据库之间的数据类型也有差异。例如,MySQL 不支持 SQL Server 中的 ntext、 Image 等数据类型。同样,SQL Server 也不支持 MySQL 中的 ENUM 和 SET 等数据类型。数据类型的差异也造成了迁移的困难。从某种意义上说,这种差异是商业数据库公司故意造成的壁垒,这种行为是阻碍数据库市场健康发展的。但是不同数据库服务器间的迁移并不是完全不可能。在 Windows 操作系统下,如果要实现从 MySQL 数据库服务器向 SQL SERVER 数据库服务器迁移,可以通过 MyODBC 来实现;如果要实现从 MySQL 数据库服务器向 ORACLE 数据库服务器迁移,可以先通过执行 mysqldump 命令导出 sql 文件,然后手动修改 sql 文件中的 CREATE 语句。数据库迁移就是把数据从一个系统移动到另一个系统上,迁移过程其实就是在源数据库备份和目标数据库恢复的过程组合。迁移的原因是多种多样的,比如:需要安装新的数据库服务器MySQL 版本更新数据库管理系统的变更(如从 SQL Server 迁移到 MySQL)根据实际操作等情况,可以将数据库迁移操作分成以下 3 种形式。相同版本 MySQL 数据库之间的迁移。不同版本 MySQL 数据库之间的迁移。不同数据库间的迁移。下面将详细介绍数据库迁移的各种方式。1. 相同版本的迁移相同版本的 MySQL 数据库是指主版本号一致的数据库。主版本号一致的数据库迁移最容易实现。由于迁移前后 MySQL 数据库的主版本号相同,所以可以通过复制数据库目录来实现数据库迁移。最安全和最常用的方式是通过使用 mysqldump 命令进行数据库备份,然后使用 mysql 命令将备份文件还原到新的 MySQL 数据库。迁移时的备份和还原操作可以同时执行。假设从一个名为 hostname1 的机器中备份出所有数据库,然后将这些数据库迁移到名为 hostname2 的机器上,具体语法形式如下:mysqldump -h hostname1 -u root -password=password1 -all-databases|mysql -h hostname2 -u root -password=password2其中:符号“|”用来实现将命令 mysqldump 备份的文件送给 mysql 命令;password1 为 hostname1 主机上 root 用户的密码;password2 为 hostname2 主机上 root 用户的密码;-all-databases 表示迁移全部的数据库,可省略。通过上述语句就可以直接迁移。2. 不用版本的迁移不同版本的 MySQL 数据库之间的数据迁移通常是 MySQL 升级的原因。例如,服务器使用 4.0 版本的 MySQL 数据库,现在要升级为 5.7 版本的。这样就需要不同版本的 MySQL 数据库之间进行数据迁移。不同版本下的数据库迁移,分为 2 种方式:低版本数据库向高版本数据库进行迁移高版本数据库向低版本数据库进行迁移低版本数据库向高版本数据库进行迁移时,由于高版本会兼容低版本,所以该种方式也是最容易实现的操作。对于存储类型为 MyISAM 的表,最安全和最常用的操作是直接复制数据文件。对于存储类型为 InnoDB 的表,最安全和最常用的操作是执行 mysqldump 命令进行备份和执行 mysql 命令还原恢复数据。但是高版本数据库向低版本数据库进行迁移时,因为高版本数据库可能有一些新的特性,这些特性是低版本数据库所不具有的,所以数据库迁移时要特别小心,最好使用 mysqldump 命令来进行备份,避免迁移时造成数据丢失。3. 不同数据库的迁移不同数据库之间的迁移是指从其它类型的数据库迁移到 MySQL 数据库,或者从 MySQL 数据库迁移到其他类型的数据库。例如,某个网站原来使用 Oracle 数据库,因为运营成本太高等诸多原因,希望改用 MySQL 数据库。或者,某个管理系统原来使用 MySQL 数据库,因为某种特殊性能的要求,希望改用 Oracle 数据库。这样的不同数据库之间的迁移也经常会发生。但是这种迁移没有普通适用的解决办法。其它数据库也有类似 mysqldump 这样的备份工具,可以将数据库中的文件备份成 sql 文件或普通文本。但是,不同的数据库厂商并没有完全按照 SQL 标准来设计数据库,这就造成了不同数据库使用的 SQL 语句的差异。例如,微软的 SQL Server 软件使用的是 T-SQL 语言。T-SQL 中包含了非标准的 SQL 语句。这就造成了 SQL Server 和 MySQL 的 SQL 语句不能兼容。除了 SQL 语句存在不兼容的情况外,不同的数据库之间的数据类型也有差异。例如,MySQL 不支持 SQL Server 中的 ntext、 Image 等数据类型。同样,SQL Server 也不支持 MySQL 中的 ENUM 和 SET 等数据类型。数据类型的差异也造成了迁移的困难。从某种意义上说,这种差异是商业数据库公司故意造成的壁垒,这种行为是阻碍数据库市场健康发展的。但是不同数据库服务器间的迁移并不是完全不可能。在 Windows 操作系统下,如果要实现从 MySQL 数据库服务器向 SQL SERVER 数据库服务器迁移,可以通过 MyODBC 来实现;如果要实现从 MySQL 数据库服务器向 ORACLE 数据库服务器迁移,可以先通过执行 mysqldump 命令导出 sql 文件,然后手动修改 sql 文件中的 CREATE 语句。
  • [技术干货] MySQL数据库迁移
    数据库迁移就是把数据从一个系统移动到另一个系统上,迁移过程其实就是在源数据库备份和目标数据库恢复的过程组合。迁移的原因是多种多样的,比如:需要安装新的数据库服务器MySQL 版本更新数据库管理系统的变更(如从 SQL Server 迁移到 MySQL)根据实际操作等情况,可以将数据库迁移操作分成以下 3 种形式。相同版本 MySQL 数据库之间的迁移。不同版本 MySQL 数据库之间的迁移。不同数据库间的迁移。下面将详细介绍数据库迁移的各种方式。1. 相同版本的迁移相同版本的 MySQL 数据库是指主版本号一致的数据库。主版本号一致的数据库迁移最容易实现。由于迁移前后 MySQL 数据库的主版本号相同,所以可以通过复制数据库目录来实现数据库迁移。最安全和最常用的方式是通过使用 mysqldump 命令进行数据库备份,然后使用 mysql 命令将备份文件还原到新的 MySQL 数据库。迁移时的备份和还原操作可以同时执行。假设从一个名为 hostname1 的机器中备份出所有数据库,然后将这些数据库迁移到名为 hostname2 的机器上,具体语法形式如下:mysqldump -h hostname1 -u root -password=password1 -all-databases|mysql -h hostname2 -u root -password=password2其中:符号“|”用来实现将命令 mysqldump 备份的文件送给 mysql 命令;password1 为 hostname1 主机上 root 用户的密码;password2 为 hostname2 主机上 root 用户的密码;-all-databases 表示迁移全部的数据库,可省略。通过上述语句就可以直接迁移。2. 不用版本的迁移不同版本的 MySQL 数据库之间的数据迁移通常是 MySQL 升级的原因。例如,服务器使用 4.0 版本的 MySQL 数据库,现在要升级为 5.7 版本的。这样就需要不同版本的 MySQL 数据库之间进行数据迁移。不同版本下的数据库迁移,分为 2 种方式:低版本数据库向高版本数据库进行迁移高版本数据库向低版本数据库进行迁移低版本数据库向高版本数据库进行迁移时,由于高版本会兼容低版本,所以该种方式也是最容易实现的操作。对于存储类型为 MyISAM 的表,最安全和最常用的操作是直接复制数据文件。对于存储类型为 InnoDB 的表,最安全和最常用的操作是执行 mysqldump 命令进行备份和执行 mysql 命令还原恢复数据。但是高版本数据库向低版本数据库进行迁移时,因为高版本数据库可能有一些新的特性,这些特性是低版本数据库所不具有的,所以数据库迁移时要特别小心,最好使用 mysqldump 命令来进行备份,避免迁移时造成数据丢失。3. 不同数据库的迁移不同数据库之间的迁移是指从其它类型的数据库迁移到 MySQL 数据库,或者从 MySQL 数据库迁移到其他类型的数据库。例如,某个网站原来使用 Oracle 数据库,因为运营成本太高等诸多原因,希望改用 MySQL 数据库。或者,某个管理系统原来使用 MySQL 数据库,因为某种特殊性能的要求,希望改用 Oracle 数据库。这样的不同数据库之间的迁移也经常会发生。但是这种迁移没有普通适用的解决办法。其它数据库也有类似 mysqldump 这样的备份工具,可以将数据库中的文件备份成 sql 文件或普通文本。但是,不同的数据库厂商并没有完全按照 SQL 标准来设计数据库,这就造成了不同数据库使用的 SQL 语句的差异。例如,微软的 SQL Server 软件使用的是 T-SQL 语言。T-SQL 中包含了非标准的 SQL 语句。这就造成了 SQL Server 和 MySQL 的 SQL 语句不能兼容。除了 SQL 语句存在不兼容的情况外,不同的数据库之间的数据类型也有差异。例如,MySQL 不支持 SQL Server 中的 ntext、 Image 等数据类型。同样,SQL Server 也不支持 MySQL 中的 ENUM 和 SET 等数据类型。数据类型的差异也造成了迁移的困难。从某种意义上说,这种差异是商业数据库公司故意造成的壁垒,这种行为是阻碍数据库市场健康发展的。但是不同数据库服务器间的迁移并不是完全不可能。在 Windows 操作系统下,如果要实现从 MySQL 数据库服务器向 SQL SERVER 数据库服务器迁移,可以通过 MyODBC 来实现;如果要实现从 MySQL 数据库服务器向 ORACLE 数据库服务器迁移,可以先通过执行 mysqldump 命令导出 sql 文件,然后手动修改 sql 文件中的 CREATE 语句。
  • [其他] 【数据迁移】数据库迁移时数据无法访问问题处理
    现象:客户将数据通过gds将数据从一个数据库迁移至另外一个数据库,在数据迁移时发现数据访问被拒绝分析:查看日志发现有连接被拒绝关键字,查看防火墙发现,gds服务器与数据库之间有防火墙,相互之间无法直接访问客户要求提供防火墙策略开户首先开通CN至gds端的防火墙,日志中扔报错显示连接被拒查看端口矩阵,端口矩阵中有关于集群与gds服务端的说明GaussDB   200集群Datanode实例GaussDB   200集群Datanode实例IP地址1024-65535间分配的随机端口GaussDB   200集群GDS用户数据服务器GaussDB   200集群Datanode实例IP1024-65535,默认8098(实际参见gds命令指定的-p参数值)TCP用户数据服务器listen集群Datanode实例的连接请求,在连接建立之后响应Datanode的数据请求,返回加载数据。是短连接IP地址认证。IP地址认证。内部组件之间通讯,数据库有性能要求,并且是部署在集群安全内网内。不使用加密。GaussDB 200集群Coordinator实例GaussDB   200集群Coordinator实例IP地址1024-65535间分配的随机端口GaussDB   200集群GDS用户数据服务器GaussDB   200集群Coordinator实例IP1024-65535,默认8098(实际参见gds命令指定的-p参数值)TCP用户数据服务器listen集群Coordinator实例的连接请求,在连接建立之后响应Coordinator的消息命令请求,返回用户数据信息。是短连接IP地址认证。IP地址认证。内部组件之间通讯,数据库有性能要求,并且是部署在集群安全内网内。不使用加密。验证结论:按照端口矩阵说明,客户开启集群数据节点至gds单向客户端即可完成数据迁移
  • [热门活动] 【云端实验训战营】MySQL本地数据库迁移云上,直播活动就在今天下午!
    Hi  everybody,小助手 is coming~错过了,口红一哥李佳琦的直播,没关系没赶上,薇娅淘宝直播间卖火箭,也没事来不及,让老罗在直播首秀帮带货,都OK但是,咱这场直播一定不能错过!【云端实验训战营】MySQL本地数据库迁移云上4月24日本周五16:00,就在今天下午干货内容,精美礼品,华为云大咖直播间坐等你【戳这里,即可进入直播间】http://suo.im/5AzCFM
  • [问题求助] MySQL本地数据库迁移----DRS测试遇到问题
    在做这个实验:https://bbs.huaweicloud.com/forum/thread-51110-1-1.html遇到错误,如下图。密码试了多次应该没问题。(DAS都可以用该密码登录)那么如何在防火墙加IP?我没有看到iptables和firewalld
  • [教程] 采用CDM进行HDFS到OBS的数据迁移
    1      背景介绍传统的Hadoop和Spark大数据生态,主要是以本地硬盘或云硬盘承载HDFS文件系统进行数据存储,但是存在成本高,扩容难等问题。当前华为云对象存储服务OBS可以与Hadoop和Spark大数据生态进行对接,为用户提供计算存储分离的大数据解决方案。为了实现用户数据平滑上云,可以采用华为云CDM服务进行HDFS到OBS的数据迁移。2      迁移背景和目标已存在集群一采用EVS存储HDFS格式数据,新建集群二采用OBS存储数据,需要将数据从集群一的HDFS迁移至集群二的OBS。3      迁移方法1、已搭建集群一(北京一)和集群二(华东),集群一采用EVS存储数据,集群二采用OBS存储数据2、在集群一构造Spark或者Hive的数据,例如,构造Hive表数据如下(1)创建DATABASECREATE DATABASE top_ods;(2)创建TABLECREATE TABLE `top_ods.claim_6yue_pt`(  `user_id` varchar(300),  `ese_id` int,   `task_id` varchar(100))partitioned by (tagdate int)ROW FORMAT DELIMITED FIELDS TERMINATED BY "|"STORED AS parquetfileTBLPROPERTIES ("orc.compression"="Snappy");insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '10' ,10,'10');insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '11' ,11,'11');insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '12' ,12,'12');insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '13' ,13,'13');insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '14' ,14,'14');insert into table top_ods.claim_6yue_pt partition(tagdate=1) values( '15' ,15,'15');insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '20' ,20,'20');insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '21' ,21,'21');insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '22' ,22,'22');insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '23' ,23,'23');insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '24' ,24,'24');insert into table top_ods.claim_6yue_pt partition(tagdate=2) values( '25' ,25,'25');select * from top_ods.claim_6yue_pt;3、在集群二创建Spark或者Hive的新表,新表格式与源表的存储格式等属性要一致(1)创建DATABASECREATE DATABASE top_odstest location 'obs://obs-bigdata-hd-003/user/hive/warehouse/top_ods.db';(2)创建TABLE,新表格式与源表的存储格式等属性要一致CREATE TABLE `top_odstest.claim_6yue_pt`(  `user_id` varchar(300),  `ese_id` int,   `task_id` varchar(100))partitioned by (tagdate int)ROW FORMAT DELIMITED FIELDS TERMINATED BY "|"STORED AS parquetfileTBLPROPERTIES ("orc.compression"="Snappy");4、创建CDM任务,将集群一的HDFS数据迁移至集群二的OBS(1)创建CDM集群(华东),跨Region需要绑定公网弹性IP(2)配置连接管理,一个连接使用Apache HDFS,另一个连接使用对象存储服务(OBS)备注:集群一的所有节点需配置公网弹性IP,并且Apache HDFS连接中的IP与主机名映射要填写所有集群一的主机XX.XX.XX.XX ecs-bigdata-hdtest-0000.novalocalXX.XX.XX.XX ecs-bigdata-hdtest-0001.novalocalXX.XX.XX.XX ecs-bigdata-hdtest-0002.novalocalXX.XX.XX.XX ecs-bigdata-hdtest-0003.novalocal(3)配置作业管理,源连接使用HDFS连接,目标连接使用OBS连接,文件格式使用二进制格式(4)配置完成后,运行作业进行数据迁移5、迁移完成后,在集群二恢复Hive表数据,即可查询数据成功。恢复Hive表数据:MSCK REPAIR TABLE top_odstest.claim_6yue_pt;查询Hive表数据:select * from top_odstest.claim_6yue_pt;