宣传产品网站2345网址导航怎么彻底删掉
文章目录
- LibrA(MPP)批量数据导入
- COPY导入
- GDS导入
- HDFS导入
LibrA(MPP)批量数据导入
COPY导入
- 多数数据库拥有该命令
- 适用: 低并发,本地小数据量导入
- 示例A - 从文件中copy
--从/home/jerry/data01.txt文件拷贝数据到表tb_test COPY tb_test FROM '/home/jerry/data01.txt' WITH(format 'text', -- 导入格式为TEXTdelimiter ',', -- 分隔符为','ignore_extra_data 'true', -- 忽略多余列noescaping 'true' -- 不指定转义 );
- 示例B - 从标准输入中copy
- 利用gaussdb200对应的jdbc的jar包,使用CopyManager导入数据
- 代码如下
// 将数据转换为InputStream ArrayList<String> list = new ArrayList<>(); list.add("xiaowang,18,beijing"); list.add("xiaohong,22,shanghai"); list.add("lilei,25,guangdong"); String data = String.join("\n", list); ByteArrayInputStream in = new ByteArrayInputStream(data.getBytes("UTF-8")); // 拷贝 CopyManager copyManager = new CopyManager((BaseConnection)connection); copyManager.copyIn("COPY " + tableName + " FROM STDIN", in);
COPY tb_test FROM STDIN WITH(delimiter ',', encoding 'UTF-8')
WITH后面可以传入分隔符、指定字符集- 推荐:字段分隔符为
$^&
,换行符为$^#
,则执行语句为COPY tb_name FROM STDIN WITH(FORMAT 'text', DELIMITER '$^&', EOL '$^#')
GDS导入
- 架构图:
- 利用多个DataNode并行将数据导入到LibrA数据库中
- 适用: 高并发、大数据量导入
- 操作示例:
- 数据导入流程图
- 蓝色路径:建立外表指向服务器的GDS进程,GDS进程指向数据源路径
- 橙色路径:执行SQL,从外表插入数据到实际表。外表向GDS进程取数据,GDS从数据路径获取
- GDS工具安装
- GDS工具由华为提供 Gauss200-OLAP-V100R006C10-REDHAT-64bit-gauss-loader.tar.gz
- 在Linux服务器上解压后,进入gauss_loaders目录
- 执行install_gaussload.sh 命令,即可安装
- gds命令在…/gauss_loaders/bin/gds/gds
- GDS工具运行
- 示例: …/gauss_loaders/bin/gds/gds -d /data/test -p 192.168.0.10:5000 -H 192.168.0.115/24 -l /home/jerry/log/gds_log.txt -D -t 2
- 命令解释:
-d 指定数据路径文件夹; -p 指定GDS进程IP和端口;-H 指定MPP数据库其中一台主节点服务器IP; -l 指定日志输出文件
- 在MPP库中建立外表
- 建外表示例:
CREATE FOREIGN TABLE foreign_test (-- 外表字段结构应和实际表一样,但不能加字段约束等类似的标记name VARCHAR(20),phone VARCHAR(20),address VARCHAR(30) ) SERVER gsmpp_server OPTIONS (location 'gsfs://192.168.0.10:5000/*', -- location参数 指定了GDS所在的服务器format 'CSV',mode 'normal', encoding 'utf8', delimiter ',', -- delimiter参数 指定了数据源每个字段之间的分割符quote E'\x1b', null '',fill_missing_fields 'false' ) LOG INTO err_test PER NODE REJECT -- LOG INTO err_test 指定了错误日志的输出到err_test表(会自动创建) LIMIT 'unlimited';
- 数据源样例
路径: /data/test/p-0001 内容: 小明,18912345678,北京 小王,15112345678,重庆 小红,13912345678,上海
- 执行SQL,导入数据至LibrA(MPP)
- 确保数据源已经准备好
- 确保GDS进程已经配置正确,且已开启
- 确保MPP库中外表建立无误
- 使用SQL查询外表数据,插入到实际表中
- 插入SQL示例:
INSERT INTO tb_test SELECT * FROM foreign_test;
- 数据导入流程图
HDFS导入
-
将HDFS上的大量数据快速导入到LibrA(MPP)
-
适用: 大批量导入;HDFS上数据量过大,无法导出到本地使用GDS导入。
-
操作示例:
- 在FusionInsightManager管理界面给LibrA(MPP)添加跨集群访问HDFS的配置项
参数 描述 remote_connect_hdfs_enable 是否开启远端连接HDFS功能的开关,请修改为true remote_connect_core_config_file HDFS的配置文件core-site.xml remote_connect_hdfs_config_file HDFS的配置文件hdfs-site.xml dfs.namenode.kerberos.principal 安全模式,集群的用户名 remote_connect_krb5_conf_file 安全模式,认证鉴权文件krb5.conf remote_connect_user_keytab_file 安全模式,认证鉴权文件user.keytab - 取得当前库的外部数据服务访问权限
- 登入LibrA的主节点之一,使用omm用户
- 加载环境变量,示例 $source /opt/huawei/Bigdata/mppdb/.mppdbgs_profile (不同集群可能不一样)
- 以管理员身份进入对应的数据库 $gsql db_name -p 25308 -r
- 创建 hdfs_server,执行 SQL
CREATE SERVER hdfs_server FOREIGN DATA WRAPPER hdfs_fdw OPTIONS (address '10.10.0.100:25000,10.10.0.101:25000', -- HDFS集群的主备节点所在的IP地址以 及端口hdfscfgpath '/opt/hadoop_client/HDFS/hadoop/etc/hadoop' -- HDFS集群配置文件路径(不一定需要指定) );
- 授权,执行SQL
GRANT USAGE ON FOREIGN SERVER hdfs_server TO username;
- 创建指向HDFS目录的外表,示例:
CREATE FOREIGN TABLE region_test(name TEXT,phone TEXT,address TEXT ) SERVER hdfs_server -- 外部数据服务名称 OPTIONS(FORMART 'orc', -- 数据文件格式,目前只支持orc格式FOLDERNAME '/data/test' -- HDFS数据存储路径 ) DISTRIBUTE BY roundrobin;
- 执行SQL,导入数据至LibrA(MPP)
INSERT INTO tb_test SELECT * FROM region_test;