-
本帖最后由 橘色西瓜 于 2018-6-14 09:26 编辑活动已经顺利结束,为了方便大家回顾下载当天私享会的会场资料,小编汇总整理当天资料,待补充内容后续再补充,持续刷新中~~ 欢迎大家阅读下载。 [color=rgb(51,51,51)]2018年5月26日议题: [color=rgb(51,51,51)]轻松连接一切,让数据为您所用 [color=rgb(51,51,51)]讲师:数据接入服务首席架构师/王略 PDF下载:16006 使用云数据迁移服务,加速数据迁移上云 讲师:云数据迁移服务产品经理/裴炜 PDF下载:16007
-
如何使用数据迁移服务将大量数据快速导入到MYSQL
-
本帖最后由 lixinlong 于 2018-5-14 16:26 编辑如何使用数据迁移服务从OBS加载数据到云搜索服务
-
https://bbs.huaweicloud.com/blogs/78fbd980543011e89fc57ca23e93a89f
-
关键词:Elasticsearch (ES), Logstash 概述:在使用ES的过程中,可能需要在ES集群间进行数据迁移,比如:线下/线上集群数据互导,新/旧集群间数据互导,本集群内索引配置转换等(比如修改索引分片数目、相关参数);在ES集群间进行数据迁移的方法包括:备份与恢复,使用Logstash等;本文将描述如何使用Logstash进行数据迁移。 具体步骤:1,安装Logstash在ES集群间使用Logstash导数据时要求: Logstash与ES的版本要一致(比如都是5.5.1);Logstash 5.5.1下载地址:https://www.elastic.co/downloads/past-releases/logstash-5-5-1;下载后解压即可,解压后的文件夹假设为{logstash-5.5.1}。 2,配置Logstash在{logstash-5.5.1}目录下新建配置文件 logstash-simple.conf,然后编辑文件:input { elasticsearch { hosts => "192.168.1.123" index => "logstash-*" docinfo => true }}filter { mutate { remove_field => ["@version"] }}output { elasticsearch { hosts => "192.168.1.49" index => "%{[@metadata][_index]}" document_type => "%{[@metadata][_type]}" document_id => "%{[@metadata][_id]}" }}具体应用时需要修改:1)input中hosts,index;其中hosts为源集群的入口地址,index为需要倒的索引(索引文件名支持模糊匹配);2)output中hosts为目的集群入口地址。建议:为方便跟踪,如果源集群中索引数目较多,建议分批导入,比如10个索引一次。 3,启动Logstash在{logstash-5.5.1}目录下执行如下命令:./bin/logstash -f logstash-simple.conf 其他链接:关于如何在华为云上使用Logstash进行ES数据迁移,以及更多关于Logstash的问题请参考:http://forum.huaweicloud.com/thread-6765-1-1.html
-
企业将RDS中的数据迁移到DDM,可以释放RDS以避免浪费。如果原来的RDS还在DDM中使用的,验证迁移成功之后,删除原来的database以释放空间。如果原来的RDS不再使用,则可以直接删除原来的RDS实例。
-
本帖最后由 xiangyuehua 于 2018-3-6 17:43 编辑导入数据是指将导出数据导出的文本文件上传到ECS,然后从ECS将文件导入到DDM。操作步骤[*]将数据文件test.dump上传到弹性云服务器。[*]登录弹性云服务器。该弹性云服务器需要与DDM网络连通。[*]用mysql客户端连接DDM,使用source命令将数据文件导入DDM。[code]D:\mysqldump>mysql -h 192.168.0.100 -P5066 -uroot -p ddm_test Enter password: ********** mysql> set autocommit=0; mysql> source D:\mysqldump\test.dump; mysql> commit;[/code] [*]192.168.0.100为待导入数据的DDM的地址。 [*]5066为DDM侦听端口。 [*]root为数据库用户。 [*]ddm_test为数据库名称。 [*]D:\mysqldump\test.dump为导出的存储路径以及文件名。建议检查表中内容,验证导出是否成功。注意: [list=a] [*]为确保数据导入正确,请在客户端或存储过程中设置手动提交事务。客户端设置如上述回显中的命令:set autocommit=0; {sql operations}; commit; [*]数据导入阶段会在一定程度上影响DDM以及RDS实例性能,请选择在业务空闲时间导入。 4.检查迁移是否成功。检查表中的数据与导出之前是否相同执行SELECT COUNT(*)检查每张表的行数在导出之前是否与导入之后相同如果两者都相同,则表示数据迁移成功。
-
本帖最后由 xiangyuehua 于 2018-3-6 17:34 编辑导出数据是指将数据从原有数据库中导出到一个单独的文本文件中。操作步骤在命令行工具中使用mysqldump将源数据库转储至SQL文件。根据命令提示输入数据库用户密码。C:\Users\mysql>mysqldump --host 192.168.0.100 -P3306 -uroot -p -t -n --complete-insert --databases mysql_db >D:\mysqldump\test.dumpEnter password: **********C:\Users\mysql>1.192.168.0.100为待导出数据的数据库连接地址。2.3306为数据库侦听端口。3.root为数据库用户。4.mysql_db为数据库名称。5.D:\mysqldump\test.dump为导出文件名以及存储路径。6.参数-t表示不导出建表语句。也可以使用--no-create-info。7.参数-n表示不导出建库语句。也可以使用--no-create-db。8.参数--complete-insert表示导出的insert语句包含所有列名称。9.参数--databases表示导出指定的数据库。注意:DDM不支持以自动新建库或者新建表的方式导入数据。因此导入数据前需要先通过DDM管理控制台创建好相同名称的逻辑库,相同表结构的逻辑表,然后再进行数据导入。数据导出命令中需增加忽略DDL语句的参数。命令执行完会生成test.dump文件,如下:D:\mysqldump>dir2017/07/15 10:23 231,123,647 test.dump D:\mysqldump>
-
本帖最后由 云彩飞扬 于 2018-3-7 16:48 编辑针对不同的业务场景,迁移流程会略有区别,执行迁移操作前,请先确认业务场景。业务场景一企业做应用服务迁移上云,购买了DDM服务后,原有数据需要导入到新的数据库。数据迁移的流程请参见图1 场景一数据迁移流程 此场景下,数据迁移包括如下步骤:[*]迁移前准备 介绍在正式迁移之前需要做的一些准备工作。 [*]导出数据 将数据从数据库中导出到文本文件中。 [*]导入数据 将文本文件上传到ECS,再将文件文件中的数据导入到DDM。 业务场景二企业在华为云上已经购买并使用了RDS,但是没有使用DDM,现在开始使用DDM。此场景下,数据迁移包括如下步骤:[*]迁移前准备 [*]导出数据 [*]导入数据 [*]释放RDS 数据迁移的流程请参见。图2 场景二数据迁移流程
-
本帖最后由 xiangyuehua 于 2018-3-6 17:28 编辑数据迁移主要有以下几种业务场景:[*]企业做应用服务迁移上云,购买了DDM服务后,原有数据需要导入到新的数据库。 [*]企业在华为云上已经购买并使用了RDS,但是没有使用DDM,现在开始使用DDM。 说明: 由于DDM要根据规则进行数据的分片分布,因此即使已经购买并使用了RDS,也不能直接使用原有的RDS,需要将数据迁移到DDM,才能实现对数据的分片存储。DDM提供了数据批量导入导出方案以支持企业进行数据迁移。由于DDM仅支持通过弹性云服务器(ECS)访问,因此要将已有数据库导入到DDM,需要先将数 据库导出为文件并上传到ECS,然后从ECS将文件导入到DDM。注意:数据导入导出操作对服务器资源消耗较大,建议避开业务高峰期进行。
-
摘要:结合华为云,介绍如何使用Logstash将数据迁往Elasticsearch(ES),为后续提供指导。 一、背景首先介绍下ES常用的数据导入工具,以及华为云上ES的应用场景:1)常用数据导入方法:将数据导入到ES的方法较多,常用的工具与方法包括:Elasticsearch-dump,通过Snapshot,Beats以及LogStash等等;其中Elasticsearch-dump主要用于ES集群间导入导出数据,Snapshot主要用于ES集群间数据的备份与恢复,Beats与LogStash作为独立的ETL工具,其应用场景较广泛。 2)华为云ES应用场景:华为云上的ES服务运行在独立的VPC中,通过外网无法直接访问,因此其主要使用场景是在ES集群所在VPC下申请一台ECS并绑定弹性IP地址(用于部署业务应用),然后客户通过EIP访问业务应用,业务应用程序再调用ES集群。具体如下图: 二、具体使用场景【conf文件组成】使用Logstash将数据导入到ES集群,其关键在于如何配置其conf文件。一般而言,Logstash的配置文件包括3个部分,分别是input,filter,以及output;其中input用于配置数据源,filter用于对数据进行ETL预处理,output用于配置目的端。 【运行Logstash】当配置好conf文件后(假设其名称为logstash-simple.conf),接下来在logstash目录下,通过如下命令可启动数据导入:./bin/logstash -f logstash-simple.conf; 【具体使用场景】接下来我们结合几个具体需求来介绍如何配置conf文件:1)如何指定导入的index与type名称? 使用Logstash导入数据的过程中,如果没有指定index以及type,默认使用logstash-%{+YYYY.MM.dd}以及logs;如果想指定index以及type,可以在output中增加如下内容,使得index以myindex开头,type为mytype:output { elasticsearch { hosts => "192.168.0.65:9200" index => "myindex-%{+YYYY.MM.dd}" document_type => "mytype" } } 2)如何删除导入过程中产生的新字段?使用Logstash在进行数据导入的过程中,默认会添加两个字段@version,@timestamp;如果在应用中不想要这两这个字段,可以在filter中增加如下内容:filter { mutate { remove_field => ["@version"," @timestamp"] } } 3)如何使得索引名称与当前时区一致?使用Logstash在进行数据导入的过程中,index名称后缀默认为@timestamp字段所对应的UTC时间,该设计的初衷是为了统一不同时区的查询(不同时区的查询经过Kibana首先会转化为UTC时间,然后Kibana再向ES发送查询请求,这样不同时区查询过去一段时间的数据时,获得的结果是一样的),但这种情况下如果要查询本地时间某天的数据,则需要遍历Day-1,Day以及Day+1 3天的index;为了兼顾统一查询以及查询效率,可以在filter中增加如下内容,这里假设源数据中存在一个时间字段timestamp,并且其格式为dd/MMM/yyyy:HH:mm:ss +0800(其他格式类似),那么通过如下命令可以将timestamp字段向前滚动8个小时,然后赋值给@timestamp,从而使得index名称的后缀为东八区的时间,同时通过使用timestamp进行统计分析,仍然可以统一查询。filter { date { match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss +0800"] locale => "en" timezone => "UTC" } } 4)如何将外网数据导入到华为云ES,并控制数据导入速率? 如前所述,将外网数据导入到华为云ES,需要一台带有EIP的ECS作为中转,此时根据Logstash部署的位置,可分为两种场景:一种是Logstash部署在外网,一种是Logstash部署在ECS上。 a) 当Logstash部署在外网时,首先需要申请一台与ES集群在同一VPC下的ECS,并开放其安全组的9200外网访问权限;然后为该ECS绑定一个EIP,并限制该EIP的网络带宽;接下来在ECS上做一个端口映射,具体命令如下,然后输入root用户密码完成端口转发(其中9200为EIP接入端口,192.168.0.66:9200为ES集群接入点,192.168.0.200为ECS本机的内网ip地址):ssh -g -L 9200:192.168.0.66:9200 -N -f [email]root@192.168.0.200[/email]最后配置Logstash的conf文件output部分如下,然后运行Logstash开始数据导入过程: output { elasticsearch { hosts => "EIP:9200" } } b) 当Logstash部署在ECS上时,首先需要确保ES集群与ECS在同一VPC下,并且已开放安全组的9200外网访问权限;然后为该ECS绑定一个EIP,并限制该EIP的网络带宽;最后按常规方式配置conf文件,并运行Logstash开始数据导入过程(不再需要在ECS上做端口映射)。 三、拓展思考上面给大家介绍了如何使用Logstash将数据导入到ES集群,此外Logstash还可以用于ES集群内部index的变换处理,包括index合并、过滤某些字段等等。另外如果是在两个ES集群间互导数据,可通过指定document_id防止重复导入数据。
-
申请一台弹性云服务器。以下以Linux操作系统举例。要求如下: [*]弹性云服务器与缓存实例处于相同虚拟私有云以及子网。 [*]弹性云服务器具有外网访问权限,配备弹性IP。用于下载Redis相关客户端以及转储备份数据。 [*]导出数据存放目录所属分区的可用磁盘空间,须大于缓存实例已使用内存空间。例如:导出数据存放在/home目录下,需保证/home所在分区可用磁盘空间大于缓存实例已使用内存空间。 [*]客户端运行环境下已经安装好Python环境,在命令行输入python有类似如下Python版本信息说明已经安装好。[code][root@test-server01 ~]$ python Python 2.7.5 (default, Apr 22 2017, 08:04:09) [GCC 4.8.3 20140911 (EulerOS 4.8.3-10)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> [/code]如果没有安装,请先下载Python并安装。
-
将基于Redis的缓存数据在DCS缓存实例、华为云上用户自建的Redis缓存服务、用户在非华为云上搭建的Redis服务之间进行数据导入导出。Redis缓存数据迁移适用于以下场景:[*]用户将华为云DCS缓存实例的数据导出,然后导入其他新建缓存实例。 [*]用户将华为云上自建的Redis服务数据导出,然后导入到DCS缓存实例。 [*]用户将非华为云上的Redis服务数据导出,导入到DCS缓存实例。 [*]用户自行备份和保存DCS缓存实例数据。
-
好些用户购买华为云dds(mongodb)时都会告知我们他在某某友商云上有mongdb数据库,想把友商上的数据库迁移过来,但在官网上没有发现mongodb数据迁移的工具,问怎么办?此时我们尴尬的说,目前数据迁移工具正在规划中,很快就能在官网上线mongodb数据迁移工具,到时手指动一动就能迁移数据了。但目前呢?目前怎么办?考虑到用户有这个云服务商之间迁移数据的需求,虽然华为云还没出mongodb自动迁移工具,但为解客户燃眉之急,我写些自己平时关于mongodb数据迁移的方法:那就是目前还是有办法的!当然只能利用开源工具进行纯手工操作了,虽然麻烦但也是一种手段,也能将友商数据迁移过来。好,下面我就详细和大家聊聊纯手工迁移mongodb的方案.(目前华为云dd只支持mongodb 3.2.7,因此我们讨论的方案都是围绕3.2.7版本进行的。)任何方案都是有业务场景的,不同的业务场景对应的方案的操作和复杂度是不一样的,我们按照业务场景的复杂度讲解。1. 业务数据不重要,允许业务长时间中断。(1). 停掉友商的mongodb服务,中断业务,不允许任何数据的变更。(2). 使用mongoexport导出数据mongoexport --host --port --ssl --sslAllowInvalidCertificates --type json--authenticationDatabase --username --password --db --collection --out (3).使用mongoimport将数据导入到华为云dds mongoimport--host --port --ssl--sslAllowInvalidCertificates --type json --authenticationDatabase --username --password --db --collection --file 注意:如果购买的华为云数据库有公网ip,可以在任何一台能连上公网ip的服务器上导入导出数据。如果没有购买公网ip,则先购买一台华为云的ecs,这台ecs和数据库在同一个网段和安全组,然后在这台ECS上导入数据。 (4). 将业务数据库ip切换至华为云mongodb,启动业务,数据迁移成功。2. 业务数据不重要,允许丢失数据但不能中断业务 这种业务场景一般是客户数据为临时,但业务不能中断必须保证在迁移的时间段业务是可用的。第二个业务场景和第一个很相似,因此迁移数据的方案也很相似,在数据迁移阶段不停掉友商数据库,数据迁移完成直接切换数据库ip到华为云dds,当然迁移这段时间的数据库就会丢失,因为没有从友商同步数据到华为云dds。3. 业务数据重要不允许丢失,业务不允许中断.这种业务场景中我们选取最具代表性也是最复杂的场景进行分析:我们选取用户存量数据大(上T的数据),ops高,一个小时就新增上百G的数据。因为存量数据大,数据迁移至少都在数小时以上,而ops高,那么在迁移的时间段会积累上百G的数据没有迁移到华为dds。Mongodb社区版没有提供增量导出,增量备份数据的方案,这些都是企业版mongodb才提供的。那么我们能用纯手工的方式(使用mongodb开源社区提供的生态工具)做到增量迁移数据吗?答案是利用开源工具是无法完美做到纯手工增量迁移的。原因如下:1. mongoexport/mongoimport : 首先说下mongoexport的工作原理,看上图是一边mongoexport导出数据一边往数据库里面**数据,显然最后导出的数据大于开始执行mongexport时数据库的数据。看了下mongoexport的源码,工作流程大概如下:首先获取开始执行mongoexport导出数据库的记录数量。得出这个记录数量后,mongoexport 开启一个cursor,利用这个cursor迭代读取数据,cursor每次读取的时候都是批量读取,最后一次迭代读取的数据量是在此时数据库总量和每次批量读取数据量中取最大值,如果此时数据库一直在变更数据那么很难确定最后总共读取的数量。因此客户在导出数据过程中一直在变更数据那么使用mongoexport导出的总数据量是无法确定的。那么迁移过程中新增数据怎么增量迁移呢?mongoexport本身并没有提供增量迁移的功能,但可以通过回放oplog的方法将迁移过程中增量的数据的oplog在目标机器上进行重做。不过Oplog记录的是所有的数据当然也包括不是这次迁移需要的数据的oplog,需要对oplog进行过滤重放,这块手工处理比较麻烦也容易出错,需要写程序进行自动处理。2. mongodump/mongorestore: mongodump可以备份所有数据然后利mongrestore进行恢复。对于备份过程中的增量数据,可以使用开源工具mongooplog处理增量oplog以达到增量备份数据的目的。但由于不同云服务商对shard的命名各不相同,因此恢复完成后必须登录数据库手动修改数据库里面shard的名字,这一步手动处理比较麻烦也容易出错。上述两种方法都需要注意oplog的大小,防止在备份过程中新增数据量过大,oplog数据被轮转覆盖,一旦覆盖就无法增量备份数据了。总结:目前纯手工操作的迁移数据的方式只能适应一些比较简单的业务场景,对于复杂场景,手工迁移存在操作复杂容易出错的缺点,程序化自动化的mongodb迁移工具不久就会出现在华为云官网上,那才是用户最贴心的解决方案。
-
好些用户购买华为云dds(mongodb)时都会告知我们他在某某友商云上有mongdb数据库,想把友商上的数据库迁移过来,但在官网上没有发现mongodb数据迁移的工具,问怎么办?此时我们尴尬的说,目前数据迁移工具正在规划中,很快就能在官网上线mongodb数据迁移工具,到时手指动一动就能迁移数据了。但目前呢?目前怎么办?考虑到用户有这个云服务商之间迁移数据的需求,虽然华为云还没出mongodb自动迁移工具,但为解客户燃眉之急,我写些自己平时关于mongodb数据迁移的方法:那就是目前还是有办法的!当然只能利用开源工具进行纯手工操作了,虽然麻烦但也是一种手段,也能将友商数据迁移过来。好,下面我就详细和大家聊聊纯手工迁移mongodb的方案.(目前华为云dd只支持mongodb 3.2.7,因此我们讨论的方案都是围绕3.2.7版本进行的。)任何方案都是有业务场景的,不同的业务场景对应的方案的操作和复杂度是不一样的,我们按照业务场景的复杂度讲解。1. 业务数据不重要,允许业务长时间中断。(1). 停掉友商的mongodb服务,中断业务,不允许任何数据的变更。(2). 使用mongoexport导出数据mongoexport --host --port --ssl --sslAllowInvalidCertificates --type json--authenticationDatabase --username --password --db --collection --out (3).使用mongoimport将数据导入到华为云dds mongoimport--host --port --ssl--sslAllowInvalidCertificates --type json --authenticationDatabase --username --password --db --collection --file 注意:如果购买的华为云数据库有公网ip,可以在任何一台能连上公网ip的服务器上导入导出数据。如果没有购买公网ip,则先购买一台华为云的ecs,这台ecs和数据库在同一个网段和安全组,然后在这台ECS上导入数据。 (4). 将业务数据库ip切换至华为云mongodb,启动业务,数据迁移成功。2. 业务数据不重要,允许丢失数据但不能中断业务 这种业务场景一般是客户数据为临时,但业务不能中断必须保证在迁移的时间段业务是可用的。第二个业务场景和第一个很相似,因此迁移数据的方案也很相似,在数据迁移阶段不停掉友商数据库,数据迁移完成直接切换数据库ip到华为云dds,当然迁移这段时间的数据库就会丢失,因为没有从友商同步数据到华为云dds。3. 业务数据重要不允许丢失,业务不允许中断.这种业务场景中我们选取最具代表性也是最复杂的场景进行分析:我们选取用户存量数据大(上T的数据),ops高,一个小时就新增上百G的数据。因为存量数据大,数据迁移至少都在数小时以上,而ops高,那么在迁移的时间段会积累上百G的数据没有迁移到华为dds。Mongodb社区版没有提供增量导出,增量备份数据的方案,这些都是企业版mongodb才提供的。那么我们能用纯手工的方式(使用mongodb开源社区提供的生态工具)做到增量迁移数据吗?答案是利用开源工具是无法完美做到纯手工增量迁移的。原因如下:1. mongoexport/mongoimport : 首先说下mongoexport的工作原理,看上图是一边mongoexport导出数据一边往数据库里面**数据,显然最后导出的数据大于开始执行mongexport时数据库的数据。看了下mongoexport的源码,工作流程大概如下:首先获取开始执行mongoexport导出数据库的记录数量。得出这个记录数量后,mongoexport 开启一个cursor,利用这个cursor迭代读取数据,cursor每次读取的时候都是批量读取,最后一次迭代读取的数据量是在此时数据库总量和每次批量读取数据量中取最大值,如果此时数据库一直在变更数据那么很难确定最后总共读取的数量。因此客户在导出数据过程中一直在变更数据那么使用mongoexport导出的总数据量是无法确定的。那么迁移过程中新增数据怎么增量迁移呢?mongoexport本身并没有提供增量迁移的功能,但可以通过回放oplog的方法将迁移过程中增量的数据的oplog在目标机器上进行重做。不过Oplog记录的是所有的数据当然也包括不是这次迁移需要的数据的oplog,需要对oplog进行过滤重放,这块手工处理比较麻烦也容易出错,需要写程序进行自动处理。2. mongodump/mongorestore: mongodump可以备份所有数据然后利mongrestore进行恢复。对于备份过程中的增量数据,可以使用开源工具mongooplog处理增量oplog以达到增量备份数据的目的。但由于不同云服务商对shard的命名各不相同,因此恢复完成后必须登录数据库手动修改数据库里面shard的名字,这一步手动处理比较麻烦也容易出错。上述两种方法都需要注意oplog的大小,防止在备份过程中新增数据量过大,oplog数据被轮转覆盖,一旦覆盖就无法增量备份数据了。总结:目前纯手工操作的迁移数据的方式只能适应一些比较简单的业务场景,对于复杂场景,手工迁移存在操作复杂容易出错的缺点,程序化自动化的mongodb迁移工具不久就会出现在华为云官网上,那才是用户最贴心的解决方案。
上滑加载中
推荐直播
-
全面解析华为云EI-API服务:理论基础与实践应用指南
2024/11/29 周五 18:20-20:20
Alex 华为云学堂技术讲师
本期直播给大家带来的是理论与实践结合的华为云EI-API的服务介绍。从“主要功能,应用场景,实践案例,调用流程”四个维度来深入解析“语音交互API,文字识别API,自然语言处理API,图像识别API及图像搜索API”五大场景下API服务,同时结合实验,来加深开发者对API服务理解。
回顾中 -
企业员工、应届毕业生、在读研究生共探项目实践
2024/12/02 周一 19:00-21:00
姚圣伟 在职软件工程师 昇腾社区优秀开发者 华为云云享专家 HCDG天津地区发起人
大神带你一键了解和掌握LeakyReLU自定义算子在ONNX网络中应用和优化技巧,在线分享如何入门,以及在工作中如何结合实际项目进行学习
即将直播 -
昇腾云服务ModelArts深度解析:理论基础与实践应用指南
2024/12/03 周二 14:30-16:30
Alex 华为云学堂技术讲师
如何快速创建和部署模型,管理全周期AI工作流呢?本期直播聚焦华为昇腾云服务ModelArts一站式AI开发平台功能介绍,同时结合基于ModelArts 的实践性实验,帮助开发者从理论到实验更好地理解和使用ModelArts。
去报名
热门标签