windows server 使用gpfdist教程
linux 下请参考 linux gpfdist
由于工作需要, 需要将在SQL server 上的数据迁移到Greenplum集群 所以 采取并行导入CSV的工具gpfdist 实现并行导入数据
一、部署安装环境
首相去官网下载gpload.exe 点击安装 安装路径要记住
我的安装路径是D: 盘 gpfdist.exe在 D:\bin\
二、启动windows 服务
2.1 命令行创建服务 win+R 输入 cmd 进入dos窗口
创建服务 这个服务是需要手动启动的
sc create gpfdist binpath="D:\bin\gpfdist.exe -p 2345 -d D:\data -l D:\load_log"
参数介绍
-p 打开的端口 2345
-d 将要扫描的CSV文件存放路径
-l 导入数据的日志文件存放路径
会提示
[SC] CreateService 成功
2.2 手动去启动服务 右键 启动 <图片粘贴不进来>
2.2.1 打开任务管理器 选择服务 选择底下的 打开服务
2.2.2 找到gpfdist 右键 启动服务
到这里服务创建完毕
如果想重新创建新的服务 要先停着这个运行的 gpfdist 服务
然后 在dos 下 执行 即删除服务
sc delete gpfdist
注意事项:
1. 所导入的CSV文件使用的编码格式必须是utf-8 而windows server 存储的格式是 utf-16
去百度下载一个iconv.exe
dos下执行如下命令
iconv -f utf-16 -t utf-8 filename.csv > filename_utf8.csv
等一段时间 就ok了
2.确定CSV文件的分隔符 我这里默认是 ","
------------------------------分割线---------------------------------------------------------------------------------
接下来在greenplum的master节点进行设置
一、 创建外部表
IP 地址 192.188.100.236 是windows server的IP地址
create external table test_load
{
id int,
name text
}
LOCATION('gpfdist://192.188.100.236:2345/test_utf8.csv')
FORMAT 'csv' (DELIMITER ',');
二、建表
create external table test
{
id int,
name text
}
with(OIDS=FALSE) --可以添加多个自己需要的表特性
distributed Randomly; --随机分布
三 导入数据
insert into test select * from test_load;