数据导入
2024年12月1日约 462 字大约 2 分钟
数据导入
Doris Insert Into
Insert Into 方式能够提供快速导数性能
Spark Doris Connector 支持阻塞写入
Spark Doris Connector 导入方式更具有通用性,能够解决大量数据导入的问题,导入性能相对稳定,在导入过程需要 合理控制导入速率与导入并行度 。
Spark Doris Connector 支持 Bitmap 数据导入
Spark Load 的方式可以对 Bitmap 数据进行导入,同时能够将 Bitmap 数据计算放在 Spark 集群中进行计算。
在业务实践中,我们使用 Spark Doris Connector 更为常用.
如上图所示,Bitmap 建表语句主要分为三个字段,其中最后一个字段是将 CASE_ID 进行 Bitmap 计算。
实现思路是,提供一种设置 Doris Read Field 选项,写除 Bitmap 列外的其他列,同时在 Doris Write Field 中做映射处理。
最终实现如上图所示方式通过 Spark Doris Connect 直接将 Apache Hive 明细数据导入 Apache Doris 的 Bitmap 数据中。
Spark Doris Connector CSV 格式导入优化
Doris 官方推荐使用 CSV 格式。
CSV 格式比 JSON 的导入速度快近 40% 且其内存消耗是更低的。
值得注意的是使用 CSV 格式进行导入时,设置合理的字段分隔符和换行符对于 CSV Reader 识别效率是至关重要的,如果 BE 的 CSV Reader 对于字段中最后一个字符和分隔符的首字符相同时,则无法识别分隔符。
Spark Load
Spark Load 导入方式的特点是基于 Spark 资源进行 Shuffle、排序等工作将文件输出在 HDFS 中,之后 BE 节点能够直接读取 HDFS 上的文件并按照 Doris 格式写入。