同一个目标表对应多个文件时,GDS的处理方式
【摘要】 在实际应用中,可能存在某一个文件太大,需要拆分成多个文件发送的情况,那么,GDS是否可以同时将拆分后的这些文件一次性加载到数据库呢?
下文对以上场景进行了验证。
结论1:一个GDS进程能够处理同一个目标表对应的同一个目录下的多个文件,这些文件通常使用通配符指定。
结论2:多个GDS进程能够同时处理同一个目标表的多个目录下的多个文件,文件可以使用通配符指定。
结论3:一个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”所在的位置也不能换成通配符“*”;换成通配符“*”后,虽然可以建表成功,但是,无法打开文件,错误信息如下:
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)