云服务器内容精选

  • 执行数据导出 创建本地源表。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DROP TABLE IF EXISTS product_info_export; CREATE TABLE product_info_export ( product_price integer , product_id char(30) , 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) ) ; INSERT INTO product_info_export SELECT * FROM product_info; Hive端创建目标表。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DROP TABLE product_info_orc_export; CREATE TABLE product_info_orc_export ( product_price int , product_id char(30) , product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt int , product_comment_time date , product_comment_num int , product_comment_content varchar(200) ) row format delimited fields terminated by ',' stored as orc; 从本地源表导入Hive表。 1 INSERT INTO ex1.product_info_orc_export SELECT * FROM product_info_export; Hive端查询导入结果 1 SELECT * FROM product_info_orc_export;
  • 执行数据导入 创建本地目标表。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 DROP TABLE IF EXISTS product_info; CREATE TABLE product_info ( product_price integer , product_id char(30) , 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) ) ; 从Hive表导入目标表。 1 INSERT INTO product_info SELECT * FROM ex1.product_info_orc; 查询导入结果。 1 SELECT * FROM product_info;
  • 基本流程 本实践预计时长:1小时,基本流程如下: 创建MRS分析集群(使用此特性必须选择Hive组件)。 在Hive端创建表。 在Hive端插入数据或者通过将本地txt数据文件上传至OBS桶,再通过OBS桶导入Hive,并由txt存储表导入ORC存储表。 创建MRS数据源连接。 创建外部服务器。 创建EXTERNAL SCHEMA。 通过EXTERNAL SCHEMA对Hive表进行导入或者读取操作。
  • 创建外部服务器 仅Hive对接OBS场景执行,Hive对接HDFS场景跳过。 使用Data Studio连接已创建好的DWS集群。 执行以下语句,创建外部服务器。{AK值}、{SK值}由准备环境获取。 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 1 2 3 4 5 6 7 8 9 CREATE SERVER obs_servevr FOREIGN DATA WRAPPER DFS_FDW OPTIONS ( address 'obs.xxx.com:5443', //OBS的访问地址。 encrypt 'on', access_key '{AK值}', secret_access_key '{SK值}', type 'obs' ); 查看外部服务器。 1 SELECT * FROM pg_foreign_server WHERE srvname='obs_server'; 返回结果如下所示,表示已经创建成功: 1 2 3 4 srvname | srvowner | srvfdw | srvtype | srvversion | srvacl | srvoptions --------------------------------------------------+----------+--------+---------+------------+--------+--------------------------------------------------------------------------------------------------------------------- obs_server | 16476 | 14337 | | | | {address=obs.xxx.com:5443,type=obs,encrypt=on,access_key=***,secret_access_key=***} (1 row)
  • 创建MRS数据源连接 登录DWS管理控制台,单击已创建好的DWS集群,确保DWS集群与MRS在同一个区域、可用分区,并且在同一VPC子网下。 切换到“MRS数据源”,单击“创建MRS数据源连接”。 配置以下参数,单击“确认”。 数据源名称:mrs_server 配置方式:MRS用户 MRS数据源:选择前面创建的mrs_01集群。 MRS用户:admin 用户密码:前面创建MRS数据源的admin密码。
  • 约束与限制 目前仅支持对接EXTERNAL SCHEMA对应的Hive端数据库的表进行SELECT、INSERT和INSERT OVERWRITE操作,其余操作均不支持。 MRS端两种数据源对应格式支持的操作参见表1。 表1 MRS端两种数据源支持的操作 数据源 表类型 操作 TEXT CSV PARQUET ORC HDFS 非分区表 SELECT √ √ √ √ INSERT/INSERT OVERWRITE x x x √ 分区表 SELECT √ √ √ √ INSERT/INSERT OVERWRITE x x x √ OBS 非分区表 SELECT √ √ √ √ INSERT/INSERT OVERWRITE x x x √ 分区表 SELECT x x √ √ INSERT/INSERT OVERWRITE x x x x 不再保证事务原子性,事务失败后,不再保证数据一致性;不支持回滚。 不支持通过EXTERNAL SCHEMA对hive端创建的表进行GRANT和REVOKE操作。 并发支持:DWS、HIVE、SPARK并发读写,会出现脏读问题;对同一张非分区表或者同一张分区表的同一个分区执行包含INSERT OVERWRITE相关的并发操作无法保证预期结果,请不要执行此类操作。 HiveMetaStore特性不支持联邦机制。