通过 RESTful API 导入
本文介绍如何通过 RESTful API 将数据导入现有 Collection 中。
开始前
请确保已完成以下步骤:
-
已获取集群的 API 密钥。详情请参见管理 API 密钥。
-
已创建 Collection,且该 Collection 的 Schema 与示例数据集相匹配。已为该 Collection 创建索引,并已加载 Collection。详情请参见管理 Collection。
通过 RESTful API 导入数据
要导入数据,需要先将数据上传到对象存储桶(如阿里云 OSS)。上传完成后,需获取文件路径和桶凭据,以便 Zilliz Cloud 从您的桶中提取数据。
有关如何获取文件 URL 和访问密钥,请参见:
-
阿里云:获取单个或多个文件的 URL 和创建 Access Key。
-
腾讯云:导出对象 URL 和临时密钥生成及使用指引。
-
亚马逊云科技:使用预签名 URL 共享对象和使用长期凭证进行身份验证。
根据您的数据安全需求,您也可以使用 Session Token。
为了成功导入数据,请确保目标 Collection 中的正在运行或待运行的导入任务不超过 10 个。
一旦获取到文件路径和存储桶凭证,按以下方式调用 API:
# replace url and token with your own
curl --request POST \
--url "https://api.cloud.zilliz.com.cn/v2/vectordb/jobs/import/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
-d '{
"clusterId": "inxx-xxxxxxxxxxxxxxx",
"collectionName": "medium_articles",
"partitionName": "",
"objectUrl": "https://s3.us-west-2.amazonaws.com/publicdataset.zillizcloud.com/medium_articles_2020_dpr/medium_articles_2020_dpr.json",
"accessKey": "",
"secretKey": ""
}'
在上述代码中,${CLOUD_REGION_ID}
代表您集群所在的云地域的 ID,${TOKEN}
是用于授权 API 请求的集群 API 密钥,${CLUSTER_ID}
是您的集群的 ID。在调用 API 时,请确保将这些占位符替换为您的实际值。您可以从集群的公共访问端点获取 CLOUD_REGION_ID
和 CLUSTER_ID
。例如,在公共访问端点 https://in03-3bf3c31f4248e22.api.ali-cn-hangzhou.cloud.zilliz.com.cn 中,CLOUD_REGION_ID
是 ali-cn-hangzhou,CLUSTER_ID
是 in03-3bf3c31f4248e22。有关更多信息,请参见Zilliz Cloud 控制台。
提交请求后,将返回任务 ID。您可以通过任务 ID 查询数据导入进度。示例代码如下:
curl --request GET \
--url "https://api.cloud.zilliz.com.cn/v2/vectordb/jobs/import/getProgress" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
-d '{
"clusterId": "inxx-xxxxxxxxxxxxxxx",
"jobId": "job-xxxxxxxxxxxxxxxxxxxxx"
}'
结果验证
如果请求返回以下类似内容,则表示数据导入成功:
{
"code": 0,
"data": {
"jobID": "job-xxxxxxxxxxxxxxxxxxxxx"
}
}
您也可以前往 Zilliz Cloud 控制台查看结果和任务详情: