从 MinIO 导入
StarRocks 支持通过以下方式从 MinIO 导入数据:
- 使用 INSERT+
FILES()进行同步导入。 - 使用 Broker Load 进行异步导入。
两种导入方式各有优势,具体将在下面分章节详细阐述。
一般情况下,建议您使用 INSERT+FILES(),更为方便易用。
但是,INSERT+FILES() 当前只支持 Parquet、ORC 和 CSV 文件格式。因此,如果您需要导入其他格式(如 JSON)的数据、或者需要在导入过程中执行 DELETE 等数据变更操作,可以使用 Broker Load。
准备工作
准备数据源
确保待导入数据已保存在 MinIO 存储桶。建议您将数据保存在与 StarRocks 集群同处一个地域(Region)的 MinIO 存储桶,这样可以降低数据传输成本。
本文中,我们提供了 Parquet 格式的样例数据集 user_behavior_ten_million_rows.parquet,您可以通过 curl 实现数据导入:
curl -O https://starrocks-examples.s3.amazonaws.com/user_behavior_ten_million_rows.parquet
将 Parquet 文件导入 MinIO,注意存储桶名称的正确性。上述示例以存储桶 /starrocks 为例。
查看权限
导入操作需要目标表的 INSERT 权限。如果您的用户账号没有 INSERT 权限,请参考 GRANT 给用户赋权,语法为 GRANT INSERT ON TABLE <table_name> IN DATABASE <database_name> TO { ROLE <role_name> | USER <user_identity>}。
获取资源访问配置
概括来说,如果选择使用 MinIO Access Key 认证方式,您需要提前获取以下 MinIO 资源信息:
- 数据所在的 MinIO 存储桶
- MinIO 对象键(或“对象名称”)(只在访问 MinIO 存储桶中某个特定数据对象时才需要。)
- MinIO 终端节点(Endpoint)
- 作为访问凭证的 Access Key 和 Secret Key
