从本地文件系统导入数据
StarRocks 提供了两种从本地文件系统导入数据的方法:
- 使用 Stream Load 的同步导入
- 使用 Broker Load 的异步导入
每种选项都有其自身的优势:
- Stream Load 支持 CSV 和 JSON 文件格式。如果您想从少量文件中导入数据,并且每个文件的大小不超过 10 GB,建议使用此方法。
- Broker Load 支持 Parquet、ORC、CSV 和 JSON 文件格式(从 v3.2.3 开始支持 JSON 文件格式)。如果您想从大量文件中导入数据,并且每个文件的大小超过 10 GB,或者文件存储在网络附加存储(NAS)设备中,建议使用此方法。从 v2.5 开始支持使用 Broker Load 从本地文件系统导入数据。
对于 CSV 数据,请注意以下几点:
- 您可以使用 UTF-8 字符串作为文本分隔符,例如逗号(,)、制表符或管道符(|),其长度不超过 50 字节。
- 空值用
\N表示。例如,一个数据文件由三列组成,其中一条记录在第一列和第三列有数据,但第二列没有数据。在这种情况下,您需要在第二列使用\N表示空值。这意味着记录必须编写为a,\N,b而不是a,,b。a,,b表示记录的第二列包含一个空字符串。
Stream Load 和 Broker Load 都支持在数据导入时进行数据转换,并支持在数据导入时通过 UPSERT 和 DELETE 操作进行数据更改。有关更多信息,请参见 在导入时转换数据 和 通过导入更改数据。
开始之前
检查权限
导入操作需要目标表的 INSERT 权限。如果您的用户账号没有 INSERT 权限,请参考 GRANT 给用户赋权,语法为 GRANT INSERT ON TABLE <table_name> IN DATABASE <database_name> TO { ROLE <role_name> | USER <user_identity>}