データのインポート(RESTful API)
このページでは、Zilliz CloudのRESTful APIを介して準備したデータをインポートする方法を紹介します。
はじめに
以下の条件が満たされていることを確認してください:
-
クラスターのAPIキーを取得しています。詳細については、APIキーを参照してください。
-
サポートされている形式のいずれかでデータを準備しています。
データの準備方法の詳細については、ストレージオプションおよびフォーマットオプションを参照してください。また、エンドツーエンドのノートブックデータインポートハンズオンも参照してより多くの情報を得ることができます。
-
サンプルデータセットに一致するスキーマを持つコレクションを作成しています。
コレクションの作成方法の詳細については、コレクションの管理(コンソール)を参照してください。
ステージを介したデータのインポートPrivate Preview
ファイルからデータをステージを介してインポートするには、まずステージを作成し、そこにファイルをアップロードする必要があります。完了したら、ステージ内のファイルパスを取得します。詳細については、ステージの管理を参照してください。
その後、アップロードされたデータを特定のコレクションに以下のようにインポートできます:
curl --request POST \
--url "https://api.cloud.zilliz.com/v2/vectordb/jobs/import/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"clusterId": "inxx-xxxxxxxxxxxxxxx",
"dbName": "default",
"collectionName": "medium_articles",
"partitionName": "",
"stageName": "my_stage",
"dataPaths": [
[
"1.parquet"
]
]
}'
特定のパーティションにデータをインポートするには、リクエストにpartitionNameを含める必要があります。
Zilliz Cloudが上記リクエストを処理すると、ジョブIDが返されます。このジョブIDを使用して、以下のコマンドでインポートの進行状況を監視できます:
curl --request POST \
--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"
}'
外部ストレージを介したデータのインポート
ファイルからデータを外部ストレージを介してインポートするには、まずファイルをAWS S3やGoogle Cloud Storage(GCS)などのオブジェクトストレージバケットにアップロードする必要があります。アップロード後、リモートバケット内のファイルパスとZilliz Cloudがバケットからデータをプルするためのバケット認証情報を取得します。サポートされているオブジェクトパスの詳細については、ストレージオプションを参照してください。
データセキュリティ要件に応じて、データインポート中に長期または短期の認証情報のいずれかを使用できます。
認証情報の取得方法の詳細については、以下を参照してください:
-
Amazon S3: 長期認証情報を使用した認証
-
Google Cloud Storage: サービスアカウントのHMACキーの管理
-
Azure Blob Storage: アカウントアクセスキーの表示
セッショントークンの使用方法の詳細については、このFAQを参照してください。
データインポートが成功するには、ターゲットコレクションに実行中または保留中のインポートジョブが10,000件未満であることを確認してください。
オブジェクトパスとバケット認証情報を取得したら、以下のようにAPIを呼び出します:
# urlとtokenを自分のものに置き換えてください
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://assets.zilliz.com/docs/example-data-import.json",
"accessKey": "",
"secretKey": ""
}'
特定のパーティションにデータをインポートするには、リクエストにpartitionNameを含める必要があります。
Zilliz Cloudが上記リクエストを処理すると、ジョブIDが返されます。このジョブIDを使用して、以下のコマンドでインポートの進行状況を監視できます:
curl --request POST \
--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コンソールのジョブセンターにアクセスして結果とジョブの詳細を表示することもできます。