pymilvus 读写同步 异步
时间: 2024-04-24 13:23:00 浏览: 14
对于 pymilvus(Milvus Python SDK),读写操作可以通过同步或异步方式进行。
同步方式是指在进行读写操作时,程序会等待操作完成后再继续执行下一步操作。例如,使用 `client.insert` 方法插入向量数据时,程序会等待插入操作完成后再返回。
异步方式是指在进行读写操作时,程序不会等待操作完成,而是立即返回并继续执行下一步操作。程序可以通过回调函数或 await/async 方式处理异步操作的结果。例如,使用 `client.insert` 方法插入向量数据时,可以通过设置 `async=True` 参数使操作变为异步。
以下是使用 pymilvus 进行同步和异步读写的示例代码:
同步写入数据示例:
```python
from pymilvus import connections, FieldSchema, CollectionSchema, DataType
connections.connect()
# 创建 collection
collection_name = "collection"
fields = [
FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128),
]
schema = CollectionSchema(fields=fields)
collection = connections.get_connection().create_collection(collection_name, schema)
# 同步插入数据
data = [
[0.1] * 128,
[0.2] * 128,
[0.3] * 128,
]
collection.insert(data)
connections.disconnect()
```
异步写入数据示例:
```python
import asyncio
from pymilvus import connections, FieldSchema, CollectionSchema, DataType
async def async_insert(collection, data):
await collection.insert(data)
async def main():
connections.connect()
# 创建 collection
collection_name = "collection"
fields = [
FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128),
]
schema = CollectionSchema(fields=fields)
collection = connections.get_connection().create_collection(collection_name, schema)
# 异步插入数据
data = [
[0.1] * 128,
[0.2] * 128,
[0.3] * 128,
]
await async_insert(collection, data)
connections.disconnect()
asyncio.run(main())
```
以上示例代码分别展示了同步写入数据和异步写入数据的方式。根据实际需求选择适合的读写方式。