数据仓库服务 GAUSSDB(DWS)-使用外表功能实现GaussDB(DWS)集群间数据迁移:使用GDS导入数据源
使用GDS导入数据源
- 使用root账户登录E CS ,使用文件传输工具将7下载好的工具包上传到/opt目录下。
- 在/opt目录下解压工具包。
cd /opt
unzip dws_client_8.1.x_redhat_x64.zip
- 创建GDS用户,并修改数据源目录和GDS目录的属主。
groupadd gdsgrp
useradd -g gdsgrp gds_user
chown -R gds_user:gdsgrp /opt/gds
chown -R gds_user:gdsgrp /input_data
- 切换到gds_user用户。
su - gds_user
- 导入GDS环境变量。
仅8.1.x及以上版本需要执行,低版本请跳过。
cd /opt/gds/bin
source gds_env
- 启动GDS。
/opt/gds/bin/gds -d /input_data/ -p 192.168.0.90:5000 -H 192.168.0.0/24 -l /opt/gds/gds_log.txt -D
- -d dir:保存有待导入数据的数据文件所在目录。本教程中为“/input_data/”。
- -p ip:port:GDS监听IP和监听端口。配置为GDS所在的ECS的内网IP,可与DWS通讯,本例为192.168.0.90:5000。
- -H address_string:允许哪些主机连接和使用GDS服务。参数需为CIDR格式。本例设置为DWS的内网IP所在的网段即可。
- -l log_file:存放GDS的日志文件路径及文件名。本教程为“/opt/gds/gds_log.txt”。
- -D:后台运行GDS。
- 使用gsql连接第一套DWS集群。
- 执行exit切换root用户,进入ECS的/opt目录,导入gsql的环境变量。
cd /opt
source gsql_env.sh
- 进入/opt/bin目录,使用gsql连接第一套DWS集群。
gsql -d gaussdb -h 192.168.0.8 -p 8000 -U dbadmin -W password -r
- -d: 连接的数据库名,本例为默认数据库gaussdb。
- -h:连接的DWS内网IP,即6查询到的内网IP,本例为192.168.0.8。
- -p:DWS端口,固定为8000。
- -U:数据库管理员用户,默认为dbadmin。
- -W:管理员用户的密码,为3创建集群时设置的密码,本例password为用户创建集群设置的密码。
- 执行exit切换root用户,进入ECS的/opt目录,导入gsql的环境变量。
- 创建普通用户leo,并赋予创建外表的权限。
1 2
CREATE USER leo WITH PASSWORD 'password'; ALTER USER leo USEFT;
- 切换到leo用户,创建GDS外表。
以下LOCATION参数请填写为6的GDS的监听IP和端口,后面加上/*,例如:gsfs://192.168.0.90:5000/*
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
SET ROLE leo PASSWORD 'password'; 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 'gsfs://192.168.0.90:5000/*', FORMAT 'CSV' , DELIMITER ',', ENCODING 'utf8', HEADER 'false', FILL_MISSING_FIELDS 'true', IGNORE_EXTRA_DATA 'true' ) READ ONLY LOG INTO product_info_err PER NODE REJECT LIMIT 'unlimited';
- 创建本地表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
DROP TABLE IF EXISTS product_info; CREATE TABLE product_info ( 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) ) WITH ( orientation = column, compression=middle ) DISTRIBUTE BY hash (product_id);
- 从GDS外表导入数据并查询,数据导入成功。
1 2
INSERT INTO product_info SELECT * FROM product_info_ext ; SELECT count(*) FROM product_info;
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- 云数据迁移_什么是CDM_-华为云
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓
- 数据治理中心_数据集成_使用教程_-华为云