hubble数据库导入性能最佳实践
本页提供了在hubble中优化导入性能的最佳实践。
导入速度主要取决于您要导入的数据量。但是,有两个主要因素会对运行导入所需的时间产生很大影响:
- 拆分数据
- 导入格式
如果导入文件大小很小,那么您不需要做任何事情来优化性能。在这种情况下,无论设置如何,导入都应该快速运行。
将数据拆分为多个文件
将导入数据拆分为多个文件会对导入性能产生很大影响。以下格式支持使用IMPORT INTO多文件导入:
CSVDELIMITED DATAAVRO
对于这些格式,建议将数据拆分为与节点数量一样多的文件。
例如,如果您有一个3节点集群,请将数据拆分为至少3个文件,创建表并导入该表:
create table emp (id int PRIMARY KEY, name TEXT, INDEX name_idx(name));
import into emp (id, name) CSV DATA ( 'nodelocal://1/emp.csv', 'nodelocal://1/emp1.csv', 'nodelocal://1/emp2.csv' );
hubble会导入您提供给它的文件,并且不会进一步拆分它们。例如,如果您为所有数据导入一个大文件,hubble将在一个节点上处理该文件,即使您有更多可用节点。但是,如果您导入两个文件(并且您的集群至少有两个节点),每个节点将并行处理一个文件。这就是为什么将数据拆分为与节点一样多的文件将大大减少导入数据所需的时间。
如果将数据拆分为比节点更多的文件,则不会对性能产生很大影响。
选择一种高性能的导入格式
由于处理方式不同,导入格式的性能不同。下面,导入格式从最快到最慢列出:
CSV或DELIMITED DATA(两者的导入性能大致相同)AVROMYSQLDUMPPGDUMP
我们建议将您的导入文件格式化为CSV。这些格式可以由多个线程并行处理,从而提高性能。要以这些格式导入,请使用IMPORT INTO。
MYSQLDUMP和PGDUMP运行单个线程来解析它们的数据,因此性能会大大降低。
将模式与数据分开导入
对于单表MYSQLDUMP或PGDUMP导入,将转储数据拆分为两个文件:
- 包含表模式的SQL文件
- 包含表数据的CSV文件
然后,导入仅模式文件:
import table emp
from pgdump
'nodelocal://1/emp.sql' WITH ignore_unsupported_statements
;
并使用该IMPORT INTO语句将CSV数据导入新创建的表中:
import into emp (id, name) CSV DATA ( 'nodelocal://1/emp.csv' ) ;
这种方法的另一个好处是可以更快地警告导入的潜在问题;也就是说,您不必等待文件加载模式和数据就可以在模式中找到错误。
转载hubble数据库导入性能最佳实践
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




