总览
导入(Load)功能就是将用户的原始数据导入到Doris中。导入成功后,用户即可通过Mysql客户端查询数据。Doris支持多种导入方式。
支持的数据格式
不同的导入方式支持的数据格式不同。
导入方式 |
支持格式 |
---|---|
Broker Load |
parquet、orc、obs |
Stream Load |
csv、json、parquet、orc |
导入说明
Doris的数据导入实现有以下共性特征,这里分别介绍,以帮助大家更好的使用数据导入功能。
导入的原子性保证
Doris的每一个导入任务,不论是使用Broker Load进行批量导入,还是使用INSERT语句进行单条导入,都是一个完整的事务操作。导入事务可以保证一批次内的数据原子生效,不会出现部分数据写入的情况。
同时,每个导入任务都会有一个Label。这个Label在数据库(Database)中是唯一的,用于唯一标识一个导入任务。Label可以由用户指定,部分导入功能也会由系统自动生成。
Label是用于保证对应的导入任务,仅能成功导入一次。一个被成功导入的Label,再次使用时,会被拒绝并报错Label already used。通过这个机制,可以在Doris侧做到At-Most-Once语义。如果结合上游系统的At-Least-Once语义,则可以实现导入数据的Exactly-Once语义。
同步和异步
Doris目前的导入方式分为两类,同步和异步。如果是外部程序接入Doris的导入功能,需要判断使用导入方式是哪类再确定接入逻辑。