云服务器内容精选

  • 操作步骤 直接执行如下命令统计满足如下条件的行数。rowkey在从“row_start”到“row_stop”的范围,字段“f3:age”的值为“25”,rowkey的前两个字符为“mi”的行数。 hbase com.huawei.hadoop.hbase.tools.bulkload.RowCounter -Dcounter.rowkey.start="row_start" -Dcounter.rowkey.stop="row_stop" -Dcounter.qualifier="f3:age:25" -Dcounter.rowkey.value="substring(0,2) == 'mi'" table1 -Dcounter.rowkey.start="row_start":表示开始的rowkey为"row_start"。 -Dcounter.rowkey.stop="row_stop":表示结束的rowkey为"row_stop"。 -Dcounter.qualifier="f3:age:25":表示列族f3中列为age的列值为25。 -Dcounter.rowkey.value="substring(0,2) == 'mi'":表示rowkey的值中前两个为mi。 如果指定了“row_start”和“row_stop”,则统计的为大于等于“row_start”并且小于“row_stop”的数据。
  • 按自定义分隔符导入数据至HBase 将数据文件上传到客户端所在节点,例如上传名为“data.csv”的文件到客户端所在节点的“/opt/test”目录下,分隔符为“|^[”,文件内容如下所示: 以客户端安装用户,登录安装客户端的节点。 执行以下命令切换到客户端目录。 cd 客户端安装目录 执行以下命令配置环境变量。 source bigdata_env 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户,当前用户需要具有创建HBase表的权限和HDFS的操作权限: kinit 组件业务用户 如果当前集群未启用Kerberos认证,则执行以下命令设置Hadoop用户名: export HADOOP_USER_NAME=hbase 执行以下命令,把1的数据文件“data.csv”上传至HDFS目录,例如上传至“/tmp”目录: hdfs dfs -put /opt/test/data.csv /tmp 执行Phoenix客户端命令。 sqlline.py 执行以下命令创建TEST表: CREATE TABLE TEST ( ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR, AGE INTEGER, ADDRESS VARCHAR, GENDER BOOLEAN, A DECIMAL, B DECIMAL ) split on (1, 2, 3,4,5,6,7,8,9); 表创建成功后,执行!quit退出Phoenix命令行。 执行导入命令: hbase org.apache.phoenix.mapreduce.CsvBulkLoadTool -md '自定义分隔符' -t 表名 -i 数据路径 例如:导入数据文件“data.csv”到TEST表: hbase org.apache.phoenix.mapreduce.CsvBulkLoadTool -md '|^[' -t TEST -i /tmp/data.csv 执行以下命令,查看导入表TEST的数据: sqlline.py SELECT * FROM TEST LIMIT 10;
  • 备份流程 安装和预配置备份软件 在备份SAP HANA场景下,需要安装和配置备份服务器(CommServe)、备份介质(MediaAgent)及SAP HANA备份客户端代理(iDataAgent)三个组件。 创建备份存储空间(OBS桶) 登录OBS控制台,创建一个桶,作为备份数据存储空间。详细创建桶操作请参见创建桶。 在CommCell Console上创建 云存储 库,输入OBS终端节点地址、访问密钥、桶名,用以将Commvault的备份介质(MediaAgent)与OBS关联。 CommCell Console是用于管理CommCell环境、监视和控制活动作业以及查看与活动相关的事件的图形用户界面。 制定Commvault备份策略 在Commcell Console上创建备份策略,指定数据备份的周期、时间以及加密方式等。 检查备份执行情况 备份策略执行期间,用户可以通过Commcell Console查看备份执行情况。 (可选)执行数据恢复 在SAP HANA源机上执行数据恢复。 Commvault的具体操作请参见Commvault官方文档。
  • 使用场景 传统的备份与恢复方案需要将备份数据写入磁带等存储设备,然后再运输至数据中心。在此过程中数据的安全及完整性依赖很多因素,比如硬件、人员等等。无论是从前期搭建数据中心还是后期的维护,都使得传统的备份与恢复方案面临着管理复杂、投入成本高的难题。 云存储定位于简单、安全、高效且低成本,使其成为磁带等传统存储设备的非常有吸引力的替代品。OBS即一种云存储服务,它提供海量、可弹性扩展的存储服务。OBS所有的业务、存储节点采用分布集群方式工作使得OBS的可扩展性更高。提供数据多份冗余、一致性检查等功能使得存储在OBS中的数据更加安全、可靠。OBS按照使用量付费,使得成本易于预测。 Commvault、爱数云备份服务(AnyBackup Cloud)等第三方备份软件,都支持对接OBS进行数据备份。通过这些备份软件,用户可以根据自身需求制定合适的备份策略,达到安全、高效的备份目的。
  • 逻辑架构 此处以使用Commvault备份本地单节点部署的SAP HANA为例,其逻辑架构如图1所示。 图1 逻辑架构 逻辑架构中各组件说明如表1所示: 表1 组件说明 Name 说明 iDataAgent (iDA) 备份客户端代理,Commvault备份软件的组成部分,部署在SAP HANA节点上,负责获取SAP HANA上需要备份的数据。 CommServe ( CS ) 备份服务器,Commvault备份软件的组成部分,部署在备份管理节点,负责全局备份策略的制定和备份业务的调度。 Media Agent (MA) 备份介质,Commvault备份软件的组成部分,部署在备份业务节点,负责直接将备份数据存储至OBS。 OBS 在备份场景下OBS负责存储备份数据,桶是OBS中存储数据的容器,最终数据都存储在OBS桶中。 一个CommCell是一个备份管理域 ,是软件的逻辑组合 ,包含获取数据 、传输数据 、管理数据和信息的所有软件组件。
  • 步骤一:准备MySQL数据 购买RDS实例,参见表1配置关键参数,其他参数可保持默认,如需了解详情请参见RDS文档。 表1 RDS参数 参数项 取值 计费模式 按需计费 区域 华北-北京四 实例名称 rds-demo 数据库引擎 MySQL 数据库版本 5.7及以上 数据库端口 3306 连接RDS实例,执行以下命令,创建名为mys_data数据库。 1 CREATE DATABASE mys_data; 切换到新的数据库mys_data,并执行以下命令,创建表mys_orders。 1 2 3 4 5 6 7 8 CREATE TABLE mys_data.mys_order ( order_id VARCHAR(12), order_channel VARCHAR(32), order_time DATETIME, cust_code VARCHAR(6), pay_amount DOUBLE, real_pay DOUBLE, PRIMARY KEY (order_id) ); 执行以下命令向表中插入数据。 1 2 INSERT INTO mys_data.mys_order VALUES ('202306270001', 'webShop', TIMESTAMP('2023-06-27 10:00:00'), 'CUST1', 1000, 1000); INSERT INTO mys_data.mys_order VALUES ('202306270002', 'webShop', TIMESTAMP('2023-06-27 11:00:00'), 'CUST2', 5000, 5000); 执行以下命令,验证数据是否插入成功。 1 SELECT * FROM mys_data.mys_order;
  • 操作步骤 进入金山云KS3对象存储控制台界面,单击左侧导航树存储空间。 在存储空间列表中,单击目标存储空间名称,打开该存储空间内容管理页面。 找到您需要解冻的文件,单击文件名或操作列的“详情”。 在文件详情页,单击“解冻”按钮, 单击“确定”。 解冻操作预计1分钟。 解冻状态默认持续24小时,最多可延长7天,到期后文件自动恢复归档状态。 您还可以通过调用Restore Object接口解冻归档对象,更多详情,请参见金山云对象存储Restore Object接口相关文档。 解冻完成后,请参考金山云KS3迁移至华为云OBS教程,将数据迁移到华为云OBS。
  • Where子句中的时间宏变量 以SQOOP. CDM _20171016表为例,该表中存在表示时间的列DS,如图2所示。 图2 表数据 假设当前时间为“2017-10-16”,要导出前一天的数据(即DS=‘2017-10-15’),则可以在创建作业时配置“Where子句”为DS='${dateformat(yyyy-MM-dd,-1,DAY)}',即可将符合DS=‘2017-10-15’条件的数据导出。
  • 时间宏变量和定时任务配合完成增量同步 这里列举两个简单的使用场景: 数据库表中存在表示时间的列DS,类型为“varchar(30)”,插入的时间格式类似于“2017-xx-xx”。 定时任务中,重复周期为1天,每天的凌晨0点执行定时任务。配置“Where子句”为DS='${dateformat(yyyy-MM-dd,-1,DAY)}',这样就可以在每天的凌晨0点导出前一天产生的所有数据。 数据库表中存在表示时间的列time,类型为“Number”,插入的时间格式为时间戳。 定时任务中,重复周期为1天,每天的凌晨0点执行定时任务。配置“Where子句”为time between ${timestamp(-1,DAY)} and ${timestamp()},这样就可以在每天的凌晨0点导出前一天产生的所有数据。 其它的配置方式原理相同。
  • dateformat dateformat支持两种形式的参数: dateformat(format) format表示返回日期的格式,格式定义参考"java.text.SimpleDateFormat.java"中的定义。 例如当前日期为“2017-10-16 09:00:00”,则"yyyy-MM-dd HH:mm:ss"表示“2017-10-16 09:00:00”。 dateformat(format, dateOffset, dateType) format表示返回日期的格式。 dateOffset表示日期的偏移量。 dateType表示日期的偏移量的类型。 目前dateType支持以下几种类型:SECOND(秒),MINUTE(分钟),HOUR(小时),DAY(天),MONTH(月),YEAR(年)。 其中MONTH(月),YEAR(年)的偏移量类型存在特殊场景: 对于年、月来说,若进行偏移后实际没有该日期,则按照日历取该月最大的日期。 不支持在源端和目的端的“时间过滤”参数中的起始时间、终止时间使用年、月的偏移。 例如当前日期为"2023-03-01 09:00:00",则: "dateformat(yyyy-MM-dd HH:mm:ss, -1, YEAR)"表示当前时间的前一年,也就是"2022-03-01 09:00:00"。 "dateformat(yyyy-MM-dd HH:mm:ss, -3, MONTH)"表示当前时间的前三月,也就是"2022-12-01 09:00:00"。 "dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)"表示当前时间的前一天,也就是"2023-02-28 09:00:00"。 "dateformat(yyyy-MM-dd HH:mm:ss, -1, HOUR)"表示当前时间的前一小时,也就是"2023-03-01 08:00:00"。 "dateformat(yyyy-MM-dd HH:mm:ss, -1, MINUTE)"表示当前时间的前一分钟,也就是"2023-03-01 08:59:00"。 "dateformat(yyyy-MM-dd HH:mm:ss, -1, SECOND)"表示当前时间的前一秒,也就是"2023-03-01 08:59:59"。
  • 路径和表名的时间宏变量 如图1所示,如果将: 源端的“表名”配置为“CDM_/${dateformat(yyyy-MM-dd)}”。 目的端的“写入目录”配置为“/opt/ttxx/${timestamp()}”。 经过宏定义转换,这个作业表示:将Oracle数据库的“SQOOP.CDM_20171016”表中数据,迁移到HDFS的“/opt/ttxx/1508115701746”目录中。 图1 源表名和写入目录配置为时间宏变量 目前也支持一个表名或路径名中有多个宏定义变量,例如“/opt/ttxx/${dateformat(yyyy-MM-dd)}/${timestamp()}”,经过转换后为“/opt/ttxx/2017-10-16/1508115701746”。
  • timestamp timestamp支持两种形式的参数: timestamp() 返回当前时间的时间戳,即从1970年到现在的毫秒数,如1508078516286。 timestamp(dateOffset, dateType) 返回经过时间偏移后的时间戳,“dateOffset”和“dateType”表示日期的偏移量以及偏移量的类型。 例如当前日期为“2017-10-16 09:00:00”,则“timestamp(-10, MINUTE)”返回当前时间点10分钟前的时间戳,即“1508115000000”。
  • 时间变量宏定义具体展示 假设当前时间为“2017-10-16 09:00:00”,时间变量宏定义具体如表1所示。 表1 时间变量宏定义具体展示 宏变量 含义 实际显示效果 ${dateformat(yyyy-MM-dd)} 以yyyy-MM-dd格式返回当前时间。 2017-10-16 ${dateformat(yyyy/MM/dd)} 以yyyy/MM/dd格式返回当前时间。 2017/10/16 ${dateformat(yyyy_MM_dd HH:mm:ss)} 以yyyy_MM_dd HH:mm:ss格式返回当前时间。 2017_10_16 09:00:00 ${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)} 以yyyy-MM-dd HH:mm:ss格式返回时间,时间为当前时间的前一天。 2017-10-15 09:00:00 ${timestamp()} 返回当前时间的时间戳,即1970年1月1日(00:00:00 GMT)到当前时间的毫秒数。 1508115600000 ${timestamp(-10, MINUTE)} 返回当前时间点10分钟前的时间戳。 1508115000000 ${timestamp(dateformat(yyyyMMdd))} 返回今天0点的时间戳。 1508083200000 ${timestamp(dateformat(yyyyMMdd,-1,DAY))} 返回昨天0点的时间戳。 1507996800000 ${timestamp(dateformat(yyyyMMddHH))} 返回当前整小时的时间戳。 1508115600000
  • AOF导入GeminiDB Redis 用户上传数据源AOF文件到ECS上。 在ECS上启动开源Redis 5.0单机进程,加载AOF并等待启动完成。开源Redis的启动目录需为AOF文件所在的目录。 通过SAVE命令生成数据快照,等待RDB文件生成完毕。RDB文件在Redis的启动目录下。 停止开源Redis 5.0单机进程。 按照RDB导入GeminiDB Redis进行迁移。 注:使用redis-shake v2迁移过程中,常见问题及解决方法请参考redis‐shake 2.x 常见问题。
  • 操作步骤 登录弹性云服务器管理控制台。 登录已创建好的Linux系统云服务器,用于同时访问本地NAS存储和云上SFS Turbo文件系统。 输入以下挂载命令,用于访问本地NAS存储。 mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp 本地NAS挂载地址 /mnt/src 输入以下挂载命令,用于访问云上文件系统。 mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp 文件系统挂载地址 /mnt/dst 在Linux云服务器中执行以下命令安装rclone工具。 wget https://downloads.rclone.org/v1.53.4/rclone-v1.53.4-linux-amd64.zip --no-check-certificate unzip rclone-v1.53.4-linux-amd64.zip chmod 0755 ./rclone-*/rclone cp ./rclone-*/rclone /usr/bin/ rm -rf ./rclone-* 执行以下命令,进行数据同步。 rclone copy /mnt/src /mnt/dst -P --transfers 32 --checkers 64 --links --create-empty-src-dirs 参数说明如下,transfers和checkers数目可以根据系统规格自行配置: --transfers:传输文件的并发数目。 --checkers:扫描本地文件的并发数目。 -P:数据拷贝进度。 --links:复制源端的软链接,目的端保持为软链接的形式。 --copy-links:复制源端软链接指向的文件内容,目的端变成文件的形式,不再是软链接。 --create-empty-src-dirs:复制源端的空目录到目的端。 等待数据完成同步后,可前往目标文件系统查看是否已成功迁移。