一.连接数据库
![](https://i-blog.csdnimg.cn/blog_migrate/44a62a05a21473c5ae5ec889028fb80a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/42d7a4ded31f4c0b9f9dfa13fd6e3ae2.png)
2 启动 gpfdist
![](https://i-blog.csdnimg.cn/blog_migrate/9b2955ca036c0570f2375dc820a80d5d.png)
启动过程:
![](https://i-blog.csdnimg.cn/blog_migrate/60275f701d5c97eb9b7438d25645402e.png)
把数据文件.dat拖入linux下,存放在 /home/gpadmin/gptestdata / 目录下
![](https://i-blog.csdnimg.cn/blog_migrate/35b22fed54a646d7e8591ee7618aa179.png)
创建外部表成功
![](https://i-blog.csdnimg.cn/blog_migrate/4aaecd68aa692847c6cc55cd1682b146.png)
创建加载目标表:
![](https://i-blog.csdnimg.cn/blog_migrate/a90ecf69afbfb21bbbfd625f5c972bf2.png)
加载数据:
![](https://i-blog.csdnimg.cn/blog_migrate/8f9f49be30299d42f01a17be4fe55ffc.png)
客户端查看数据:
![](https://i-blog.csdnimg.cn/blog_migrate/92425256a9c3793a7f001c746bb95923.png)
问题一:
![](https://i-blog.csdnimg.cn/blog_migrate/5cb3c28ec86b876f623299082ba295b2.png)
解决办法:错误原因是之前在启动gpfdist的时候已经写了 -d /home/gpadmin了,所以在这里location这里的地址应该是写相对路径了,即:
location('gpfdist://192.168.55.61:8081/gptestdata/customers.dat');
![](https://i-blog.csdnimg.cn/blog_migrate/60143ebeb74ed2a7bf01f86a8e58d78c.png)
问题二:
![](https://i-blog.csdnimg.cn/blog_migrate/98a7fa6a3247c1ed92aa77e3052dffce.png)
错误原因: SEGMENT REJECT LIMIT子句允许隔离外部表中格式错误的数据,并继续装载格式正确的行。使用SEGMENT REJECT LIMIT设置一个错误阈值,指定拒绝的数据行数(缺省)或一个占总行数的百分比(1-100)。
如果错误行数达到了SEGMENT REJECT LIMIT的值,整个外部表操作失败,没有数据行被处理。限制的错误行数是相对于一个虚拟段的,不是整个操作的。如果错误行数没有达到SEGMENT REJECT LIMIT值,操作处理所有正确的行,丢弃错误行,或者可选地将格式错误的行写入日志表。LOG ERRORS子句允许保存错误行以备后续检查。
设置SEGMENT REJECT LIMIT会使HAWQ以单行错误隔离模式扫描外部数据。当外部数据行出现多余属性、缺少属性、数据类型错误、无效的客户端编码序列等格式错误时,单行错误隔离模式将错误行丢弃或写入日志表。HAWQ不检查约束错误,但可以在查询外部表时过滤约束错误。
创建的表结构缺少字段:
![](https://i-blog.csdnimg.cn/blog_migrate/10c885e4b88b60412841ba8415cba0d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b599329c1afbadd5677a104f9c02a6d1.png)
删除外部表:
![](https://i-blog.csdnimg.cn/blog_migrate/466ab6d976e4980e160e9ba14fa4f94b.png)
基于copy的数据加载和卸载:
![](https://i-blog.csdnimg.cn/blog_migrate/5dbd5625e556e61ad25bd945902c3a63.png)