同一个目标表对应多个文件时,GDS的处理方式
在实际应用中,可能存在某一个文件太大,需要拆分成多个文件发送的情况,那么,GDS是否可以同时将拆分后的这些文件一次性加载到数据库呢?
下文对以上场景进行了验证。
结论1:一个GDS进程能够处理同一个目标表对应的同一个目录下的多个文件,这些文件通常使用通配符指定。
结论2:多个GDS进程能够同时处理同一个目标表的多个目录下的多个文件,文件可以使用通配符指定。
结论3:一个GDS进程不支持同时处理同一个目标表的多个目录的多个文件。
- 验证1:
一个GDS进程能够处理同一个目标表对应的同一个目录下的多个文件,这些文件通常使用通配符指定。
1.1 文件命名
例如,数据文件都在tpcds_data目录下,文件命名如下:
1.2 外表定义
1.3 GDS进程如下:
1.4 数据加载验证
原表中的基础数据是1441548,执行新的insert后,数据翻倍,表示数据加载成功。
- 验证2:
多个GDS进程能够同时处理同一个目标表的多个目录下的多个文件,文件可以使用通配符指定。
2.1 文件命名
2.2 外表定义
2.3 GDS进程启动如下:
2.4 数据加载
原表中的基础数据是2883096,执行新的insert导入后,数据为4324644,表示加载成功。
- 验证3:
一个GDS进程不支持同时处理同一个目标表的多个目录的多个文件。
1.1 假设GDS进程启动如下:
那么,不支持如下/opt/tpcds_data目录下再有子目录的这种方式处理多个文件。
报错信息如下:
同理,子目录“a,b”所在的位置也不能换成通配符“*”;换成通配符“*”后,虽然可以建表成功,但是,无法打开文件,错误信息如下:
- 点赞
- 收藏
- 关注作者
评论(0)