概念介绍
本文介绍数据导入相关的一些概念和信息。
权限说明
导入操作需要目标表的 INSERT 权限。如果您的用户账号没有 INSERT 权限,请参考 GRANT 给用户赋权,语法为 GRANT INSERT ON TABLE <table_name> IN DATABASE <database_name> TO { ROLE <role_name> | USER <user_identity>}
。
标签机制
StarRocks 通过导入作业实现数据导入。每个导入作业都有一个标签 (Label),由用户指定或系统自动生成,用于标识该导入作业。每个标签在一个数据库内都是唯一的,仅可用于一个成功的导入作业。一个导入作业成功后,其标签不可再用于提交其他导入作业。只有失败的导入作业的标签,才可再用于提交其他导入作业。
原子性
StarRocks 中所有导入方式都提供原子性保证,即同一个导入作业内的所有有效数据要么全部生效,要么全部不生效,不会出现仅导入部分数据的情况。这里的有效数据不包括由于类型转换错误等数据质量问题而被过滤掉的数据。
访问协议
StarRocks 支持通过以下两种访问协议来提交导入作业:MySQL 和 HTTP。当前只有 Stream Load 支持 HTTP 协议,其余导入方式均支持 MySQL 协议。
支持的数据类型
StarRocks 支持导入所有数据类型。个别数据类型的导入可能会存在一些限制,具体请参见数据类型。
严格模式
严格模式 (Strict Mode) 是导入操作中的一个选配项,其设置会影响 StarRocks 对某些数据的导入行为和最终导入到 StarRocks 中的结果数据。详细内容参见严格模式文档。
导入模式
StarRocks 支持两种导入模式:同步导入和异步导入。
如果是外部程序接入 StarRocks 的导入,需要先判断使用哪种导入模式,然后再确定接入逻辑。
同步导入
同步导入是指您创建导入作业以后,StarRocks 同步执行作业,并在作业执行完成以后返回导入结果。您可以通过返回的导入结果判断导入作业是否成功。
支持同步模式的导入方式有 Stream Load 和 INSERT。
用户操作过程如下:
-
创建导入作业。
-
查看 StarRocks 返回的导入结果。