Veritabanlarını Yönetme

Geleneksel veritabanı motorlarına benzer şekilde, Milvus'ta veritabanları oluşturabilir ve belirli kullanıcılara bunları yönetme izni verebilirsiniz. Bu kullanıcılar daha sonra bu veritabanları içindeki koleksiyonları yönetme yetkisine sahip olacaktır. Milvus kümesi 64 veritabanını destekler.

Veritabanı Oluşturma

Bir veritabanı oluşturmak için öncelikle Milvus kümesine bağlanmalı ve bir isim belirlemelisiniz:

from pymilvus import connections, db

conn = connections.connect(host="127.0.0.1", port=19530)

database = db.create_database("kitap")

Bir Veritabanı Kullanma

Milvus kümesi, "default" adında varsayılan bir veritabanıyla birlikte gelir. Aksi belirtilmedikçe, koleksiyonlar varsayılan veritabanında oluşturulacaktır.

Varsayılan veritabanını değiştirmek için şu adımları izleyin:

db.using_database("kitap")

Ayrıca aşağıdaki gibi Milvus kümesine bağlanırken kullanılacak veritabanını belirleyebilirsiniz:

conn = connections.connect(
    host="127.0.0.1",
    port="19530",
    db_name="default"
)

Veritabanlarını Listeleme

Milvus kümesindeki mevcut tüm veritabanlarını almak için şu adımları izleyin:

db.list_database()

['default', 'kitap']

Bir Veritabanını Silme

Bir veritabanını silmek için öncelikle tüm koleksiyonlarını silmelisiniz. Aksi takdirde silme işlemi başarısız olacaktır.

db.drop_database("kitap")

db.list_database()

['default']

Veritabanında RBAC Kullanımı

RBAC, veritabanı işlemlerini de kapsar ve gelecekteki uyumluluğu sağlar. İzin API'sinde (Ver / Geri Al / İzinleri Listele) veritabanı terimi aşağıdaki anlamlara gelir:

  • Hem Milvus bağlantısı hem de İzin API çağrısı db_name belirtmezse, veritabanı varsayılan veritabanını ifade eder.
  • Milvus bağlantısı db_name belirtiyorsa, ancak sonraki İzin API çağrıları belirtmiyorsa, veritabanı Milvus bağlantısında belirtilen veritabanı adını ifade eder.
  • Bir İzin API çağrısı Milvus bağlantısında yapıldığında, db_name belirtilmiş olsa da olmasa da, veritabanı İzin API çağrısında belirtilen veritabanı adını ifade eder.

Aşağıdaki kod parçacığı aşağıdaki bloklar arasında paylaşılır.

from pymilvus import connections, Role

_HOST = '127.0.0.1'
_PORT = '19530'
_ROOT = "root"
_ROOT_PASSWORD = "Milvus"
_ROLE_NAME = "test_role"
_PRIVILEGE_INSERT = "insert"


def connect_to_milvus(db_name="default"):
    print(f"Milvus'a bağlanılıyor\n")
    connections.connect(host=_HOST, port=_PORT, user=_ROOT, password=_ROOT_PASSWORD, db_name=db_name)

  • Hem Milvus bağlantısı hem de İzin API çağrısı db_name belirtmezse, veritabanı varsayılan veritabanını ifade eder.
connect_to_milvus()
role = Role(_ROLE_NAME)
role.create()

connect_to_milvus()
role.grant("Koleksiyon", "*", _PRIVILEGE_INSERT)
print(role.list_grants())
print(role.list_grant("Koleksiyon", "*"))
role.revoke("Global", "*", _PRIVILEGE_INSERT)

  • Milvus bağlantısı db_name belirtiyorsa, ancak sonraki İzin API çağrıları belirtmiyorsa, veritabanı Milvus bağlantısında belirtilen veritabanı adını ifade eder.
connect_to_milvus(db_name="foo")
role.grant("Koleksiyon", "*", _PRIVILEGE_INSERT)
print(role.list_grants())
print(role.list_grant("Koleksiyon", "*"))
role.revoke("Global", "*", _PRIVILEGE_INSERT)

  • Bir İzin API çağrısı Milvus bağlantısında yapıldığında, db_name belirtilmiş olsa da olmasa da, veritabanı İzin API çağrısında belirtilen veritabanı adını ifade eder.
db_name = "foo"
connect_to_milvus()
role.grant("Koleksiyon", "*", _PRIVILEGE_INSERT, db_name=db_name)
print(role.list_grants(db_name=db_name))
print(role.list_grant("Koleksiyon", "*", db_name=db_name))
role.revoke("Global", "*", _PRIVILEGE_INSERT, db_name=db_name)