通过 RESTful API 导入
本文介绍如何通过 RESTful API 将数据导入现有 Collection 中。
开始前
请确保已完成以下步骤:
- 
已获取集群的 API 密钥。详情请参见管理 API 密钥。
 - 
已创建 Collection,且该 Collection 的 Schema 与示例数据集相匹配。详情请参见创建 Collection。
 
导入数据
要从外部存储导入数据,需要先将数据上传到对象存储桶(如阿里云 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://assets.zilliz.com/docs/example-data-import.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。
提交请求后,将返回任务 ID。您可以通过任务 ID 查询数据导入进度。示例代码如下:
curl --request POST \
     --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"
    }
}
你也可以调用RESTful API获取当前导入任务的进度,并列出所有导入任务以获取更多。作为替代方案,你也可以前往Zilliz Cloud控制台上的任务中心查看结果和作业详情。