データのインポート(RESTful API)
このページでは、Zilliz Cloud RESTfulAPIを使用して、準備したデータをインポートする方法を紹介します。
始める前に
以下の条件が満たされていることを確認してください。
-
クラスターのAPIキーを取得しました。詳細については、「APIキー」を参照してください。
-
サポートされている形式のいずれかでデータを準備していること。
データの準備方法の詳細については、「ストレージオプション」と「書式オプション」を参照してください。詳細については、エンドツーエンドのノートブック「データインポートハンズオン」を参照することもできます。
-
サンプルデータセットに一致するスキーマを持つコレクションを作成し、既にインデックスを作成して読み込んでいます。コレクションの作成の詳細については、「コレクションの管理(コンソール)」を参照してください。
RESTful APIを使用したデータのインポート
RESTfulAPIを使用してファイルからデータをインポートするには、まずファイルをオブジェクトストレージバケット(paas)にアップロードする必要があります。例えば、AWS S 3やGoogle Cloud Storage(GCS)などです。アップロードが完了したら、リモートバケット内のファイルへのパスと、Zilliz Cloudがバケットからデータを取得するためのバケットの認証情報を取得してください。サポートされているオブジェクトパスの詳細については、「ストレージオプション」を参照してください。
データのセキュリティ要件に基づいて、データのインポート中に長期的な資格情報またはセッショントークンを使用できます。
資格情報の取得に関する詳細については、次を参照してください:
-
Amazon S3:長期認証情報を使用した認証
-
Google Cloud Storage:サービスアカウントのHMACキーを管理する
-
Azure Blob Storage:アカウントアクセスキーの表示
セッショントークンの使用方法については、FAQを参照してください。
データのインポートを成功させるには、ターゲットコレクションに10,000件小なりの実行中または保留中のインポートジョブがあることを確認します。
オブジェクトパスとバケットの認証情報を取得したら、次のようにAPIを呼び出します。
# replace url and token with your own
curl --request POST \
--url "https://api.cloud.zilliz.com/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": ""
}'
特定のパーティションにデータをインポートするには、リクエストにpartitionNameを含める
必要があります。
Zilliz Cloudが上記のリクエストを処理した後、ジョブIDを受け取ります。このジョブIDを使用して、次のコマンドでインポートの進捗状況を監視します。
curl --request GET \
--url "https://api.cloud.zilliz.com/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コンソールに移動して、結果とジョブの詳細を表示することもできます。