北京网站设计优刻,上海十大代运营公司,一个网站的建设需要什么东西,汽车建设网站开发流程1.概述
数据加载速度是评判数据库性能的重要指标#xff0c;能否提高数据加载速度#xff0c;对文件数据进行并行解析#xff0c;直接影响数据库运维管理效率。基于此#xff0c;AntDB分布式数据库提供了两种数据加载方式#xff1a;
一是类似于PostgreSQL的Copy命令能否提高数据加载速度对文件数据进行并行解析直接影响数据库运维管理效率。基于此AntDB分布式数据库提供了两种数据加载方式
一是类似于PostgreSQL的Copy命令二是通过AntDB提供的并行加载工具。Copy命令是大家都比较熟悉的但Copy命令导入数据需要通过CN节点制约了数据的导入性能无法实现并行、高效的加载。而AntDB并行加载工具可以绕过CN节点直连数据节点大大提高了加载的速率。
2.实现原理
2.1并行加载工具整体流程
并行加载工具有两种线程一种是文本处理线程另外一种是数据处理线程。文本处理线程只有1个用来读取文件并按行进行拆分拆分后将行数据发送到数据处理线程。数据处理线程是多个并行分析行数据并加载到相应数据节点。 2.2文本处理
并行加载工具支持Text和Csv两种格式的文件下面简要说明下。Text和Csv文件都是以纯文本形式存储表格数据的文件的每一行都是一个数据记录。每个记录由一个或多个字段组成用分隔符分隔。文本处理线程的任务就是从文件中提取一行完整的记录然后发送给数据处理线程。
文件中每一行数据以字符’\n’或者’\r\n’结尾。当是Csv文件是由于Csv文件支持引用字符当‘\n’、’\r\n’出现在引用字符中间时作为普通字符处理不能作为行结尾。Csv的引用字符为单字节字符用户可以根据需要自己指定未指定的话默认是双引号。 2.3行数据处理
数据处理线程用来分析文本处理线程发来的行数据行数据由一个或多个字段组成用分隔符分隔分隔符可以指定。
数据处理线程从CN获取数据库及表相关信息包括数据库编码方式表分片方式表的分片键等。
AntDB数据库中的表支持以下4中分布方式
复制表
Hash分片表
取模分片表
随机分片表
并行加载工具会根据表的分布方式生成相应的导入策略。以下以不同的表分布方式说明并行加载工具的导入策略。
复制表在每个DN数据节点都保留完整的数据复制表的数据导入时需要将行数据插入到所有DN节点。 Hash分片表将表数据分散到各DN节点通过对分片键进行Hash确定行数据属于哪个DN节点。并行加载工具的行处理线程通过CN节点获取Hash分片表的分片健对其进行Hash然后将该行数据插入对应的DN节点并行加载工具中的Hash分片的算法需要和CN节点的Hash算法一致。 取模分片表也是将表数据分散到各DN节点通过对分片键进行取模确定行数据所属DN节点并行加载工具导入的处理策略与Hash分片表相同只是将Hash计算换成了取模的方式。
随机分片表没有分片键而是将数据根据随机分配到各DN节点。并行加载工具在每行数据导入前执行各随机函数根据函数的返回值确定应该导入哪个节点。