Mengelola Basis Data
Sama seperti mesin basis data tradisional, Anda dapat membuat basis data di Milvus dan memberikan izin kepada pengguna tertentu untuk mengelolanya. Pengguna ini akan memiliki otoritas untuk mengelola kumpulan data dalam basis data. Klaster Milvus mendukung hingga 64 basis data.
Membuat Basis Data
Untuk membuat basis data, Anda perlu terlebih dahulu terhubung ke klaster Milvus dan menyiapkan sebuah nama:
from pymilvus import connections, db
conn = connections.connect(host="127.0.0.1", port=19530)
database = db.create_database("book")
Menggunakan Basis Data
Klaster Milvus dilengkapi dengan basis data default bernama "default". Kecuali ditentukan sebaliknya, kumpulan data akan dibuat dalam basis data default.
Untuk mengubah basis data default, ikuti langkah berikut:
db.using_database("book")
Anda juga dapat mengatur basis data yang akan digunakan saat terhubung ke klaster Milvus, seperti yang ditunjukkan di bawah ini:
conn = connections.connect(
host="127.0.0.1",
port="19530",
db_name="default"
)
Menampilkan Basis Data
Untuk menampilkan semua basis data yang ada dalam klaster Milvus, ikuti langkah berikut:
db.list_database()
['default', 'book']
Menghapus Basis Data
Untuk menghapus basis data, Anda harus terlebih dahulu menghapus semua kumpulan datanya. Jika tidak, penghapusan akan gagal.
db.drop_database("book")
db.list_database()
['default']
Menggunakan RBAC dalam Basis Data
RBAC juga mencakup operasi basis data dan memastikan kompatibilitas ke depan. Pada API Izin (Berikan / Cabut / Daftar Berikan), istilah basis data memiliki makna berikut:
- Jika baik koneksi Milvus maupun panggilan API Izin tidak menentukan
db_name
, basis data merujuk pada basis data default. - Jika koneksi Milvus menentukan
db_name
, tetapi panggilan API Izin selanjutnya tidak, basis data merujuk pada nama basis data yang ditentukan dalam koneksi Milvus. - Jika panggilan API Izin dilakukan pada koneksi Milvus, tanpa memperhatikan apakah
db_name
ditentukan, basis data merujuk pada nama basis data yang ditentukan dalam panggilan API Izin.
Potongan kode berikut dibagikan di antara blok-blok di bawah ini.
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"Terhubung ke Milvus\n")
connections.connect(host=_HOST, port=_PORT, user=_ROOT, password=_ROOT_PASSWORD, db_name=db_name)
- Jika baik koneksi Milvus maupun panggilan API Izin tidak menentukan
db_name
, basis data merujuk pada basis data default.
connect_to_milvus()
role = Role(_ROLE_NAME)
role.create()
connect_to_milvus()
role.grant("Collection", "*", _PRIVILEGE_INSERT)
print(role.list_grants())
print(role.list_grant("Collection", "*"))
role.revoke("Global", "*", _PRIVILEGE_INSERT)
- Jika koneksi Milvus menentukan
db_name
, tetapi panggilan API Izin selanjutnya tidak, basis data merujuk pada nama basis data yang ditentukan dalam koneksi Milvus.
connect_to_milvus(db_name="foo")
role.grant("Collection", "*", _PRIVILEGE_INSERT)
print(role.list_grants())
print(role.list_grant("Collection", "*"))
role.revoke("Global", "*", _PRIVILEGE_INSERT)
- Jika panggilan API Izin dilakukan pada koneksi Milvus, tanpa memperhatikan apakah
db_name
ditentukan, basis data merujuk pada nama basis data yang ditentukan dalam panggilan API Izin.
db_name = "foo"
connect_to_milvus()
role.grant("Collection", "*", _PRIVILEGE_INSERT, db_name=db_name)
print(role.list_grants(db_name=db_name))
print(role.list_grant("Collection", "*", db_name=db_name))
role.revoke("Global", "*", _PRIVILEGE_INSERT, db_name=db_name)