Milvus データソースは、Milvus ベクトルデータベースにデータを書き込むためのチャネルを提供します。このトピックでは、DataWorks が提供する Milvus データ同期のサポートについて説明します。
サポートされている Milvus のバージョン
Milvus: 2.4.x
Milvus: 2.5.x
サポートされているフィールドタイプ
次の表に、Milvus Writer のデータ型マッピングを示します。
型の分類 | Milvus データ型 |
LONG | Int8, Int16, Int32, Int64 |
DOUBLE | Float, Double, FloatVector |
STRING | String, VarChar, SparseFloatVector, JSON, Array |
BOOLEAN | Bool |
BYTES | BFloat16Vector, Float16Vector, BinaryVector |
データソースの追加
DataWorks で同期タスクを開発する前に、「データソース管理」の指示に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールでパラメーターの infotip を表示して、パラメーターの意味を理解できます。
データ同期タスクの開発
同期タスクを構成するためのエントリポイントと手順については、次の構成ガイドをご参照ください。
単一テーブルのオフライン同期タスクの構成
手順については、「コードレス UI 構成」または「コードエディタ構成」をご参照ください。
コードエディタのすべてのパラメーターとスクリプトデモについては、「付録: スクリプトデモとパラメーター」セクションをご参照ください。
付録: スクリプトデモとパラメーター
コードエディタを使用したバッチ同期タスクの構成
コードエディタを使用してバッチ同期タスクを構成する場合、統一されたスクリプトフォーマットの要件に基づいて、スクリプト内の関連パラメーターを構成する必要があります。詳細については、「コードエディタでタスクを構成する」をご参照ください。以下の情報は、コードエディタを使用してバッチ同期タスクを構成する際に、データソースに対して構成する必要があるパラメーターについて説明しています。
Reader スクリプトデモ
{
"job": {
"content": [
{
"reader": {
"parameter": {
"endpoint": "http://xxxx.milvus.aliyuncs.com:19530",
"collection": "testColection",
"database": "default",
"password": "xxxxxxx",
"username": "root",
"column": [
{
"name": "id",
"type": "Int64",
"primaryKey": "true"
},
{
"name": "int8col",
"type": "Int8"
},
{
"name": "int16col",
"type": "Int16"
}
]
},
"name": "milvusreader"
},
"writer": {
"stepType": "stream",
"parameter": {
},
"name": "Writer",
"category": "writer"
}
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"throttle": false,
"concurrent": 1,
"channel": 1
}
}
}
}Reader スクリプトパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
collection | Milvus から読み取るコレクション (テーブル名) です。 | はい | なし |
batchSize | 各バッチで読み取るレコード数です。 | いいえ | 1024 |
filter | データを読み取るためのフィルター条件です。これは WHERE 句に相当します。構成の詳細については、「https://milvus.io/docs/boolean.md」をご参照ください。 | いいえ | なし |
column | 読み取るソース Milvus フィールドです。動的フィールド同期は 2 つの方法で構成できます:
| はい | なし |
Writer スクリプトデモ
{
"transform": false,
"type": "job",
"version": "2.0",
"steps": [
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType": "milvus",
"parameter": {
"schemaCreateMode": "createIfNotExist", // コレクションを作成するモード。
"enableDynamicSchema": true, // コレクション作成時に動的フィールドを有効にするかどうかを指定します。
"envType": 1,
"datasource": "zm_test",
"column": [ // 同期するフィールド。
{
"name": "floatv1",
"type": "FloatVector",
"dimension": "3"
},
{
"name": "incol",
"type": "Int16"
}
],
"writeMode": "insert", // 書き込みモード。
"collection": "test", // 宛先コレクション。
"batchSize": 1024 // 各バッチで書き込むレコード数。
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"concurrent": 2,
"throttle": false
}
}
}Writer スクリプトパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
datasource | データソースの名前です。コードエディタはデータソースの追加をサポートしています。このパラメーターの値は、追加されたデータソースの名前と同じでなければなりません。 | はい | なし |
collection | Milvus の宛先コレクションの名前です。 | はい | なし |
partition | Milvus の宛先コレクションのパーティションです。このパラメーターを空のままにすると、データは _default パーティションに書き込まれます。 | いいえ | _default |
column | Milvus の宛先フィールドです。このパラメーターを配列として構成します。単一フィールドの情報を JSON フォーマットで構成します。内容は次のとおりです:
| はい | なし |
writeMode | Milvus は upsert と insert の 2 つの書き込みモードをサポートしています。
| いいえ | upsert |
batchSize | 各バッチで Milvus に書き込むレコード数です。 | いいえ | 1024 |
schemaCreateMode | 同期の前に、DataWorks はコレクションをチェックし、構成されたモードに基づいて操作を実行します。次のモードがサポートされています:
| はい | createIfNotExist |
enableDynamicSchema | コレクションを作成する際に動的スキーマを有効にするかどうかを指定します。 | いいえ | true |