ডাটাবেস ব্যবস্থাপনা
ঐতিহাসিক ডাটাবেস ইঞ্জিনের মতো, আপনি Milvus এ ডাটাবেস তৈরি করতে পারেন এবং নির্দিষ্ট ব্যবহারকারীদের অনুমতি প্রদান করে তারা ডাটাবেসগুলি ব্যবস্থাপনা করতে পারে। এই ব্যবহারকারীরা পরবর্তীতে ডাটাবেসের ভিত্তি মণ্ডলী ব্যবস্থাপনা করতে পারবেন। Milvus ক্লাস্টারটি 64 টি ডাটাবেস সাপোর্ট করে।
ডাটাবেস তৈরি করা
ডাটাবেস তৈরি করতে, আপনাকে প্রথমে Milvus ক্লাস্টারে সংযোগ করতে এবং একটি নাম প্রস্তুত করতে হবে:
from pymilvus import connections, db
conn = connections.connect(host="127.0.0.1", port=19530)
database = db.create_database("book")
ডাটাবেস ব্যবহার
Milvus ক্লাস্টারে ডিফল্ট ডাটাবেসের নাম "default"। যদি নirdগিৎ নির্দিষ্ট না করা হয়, তবে মণ্ডলী ডিফল্ট ডাটাবেসে তৈরি করা হবে।
ডিফল্ট ডাটাবেস পরিবর্তন করতে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:
db.using_database("book")
আপনি যদি মিলভাস ক্লাস্টারে সংযোগ করার সময় ডাটাবেস ব্যবহার করতে চান, তবে এটি নিম্নলিখিত মধ্যে সেট করতে পারেন:
conn = connections.connect(
host="127.0.0.1",
port="19530",
db_name="default"
)
ডাটাবেসের তালিকা করা
মিলভাস ক্লাস্টারে সমস্ত বিদ্যমান ডাটাবেস পেতে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:
db.list_database()
['default', 'book']
ডাটাবেস মুছতে
ডাটাবেস মুছতে, আপনাকে প্রথমে সব ধরনের সংগ্রহগুলি মুছতে হবে। অন্যথায়, মুছাতে ব্যর্থ হবে।
db.drop_database("book")
db.list_database()
['default']
ডাটাবেসে RBAC ব্যবহার
RBAC এছাড়াও ডাটাবেস অপারেশন প্রকার করে এবং পূর্বাভাগিতা নিশ্চিত করে। অনুমতি API (অনুমতি প্রদান / সরানো / অনুমতি তালিকা) লিখলে পদ database নিম্নের অর্থ রেখে:
- যদি Milvus সংযোগ এবং অনুমতি API কল উভয়ই
db_name
নির্দিষ্ট করে না, তবে ** ডাটাবেস ** একাধিক ডিফল্ট ডাটাবেসটির জন্য। - যদি Milvus সংযোগ
db_name
সিদ্ধান্ত করে, কিন্তু পরবর্তী অনুমতি API কল না করে, ** ডাটাবেস ** Milvus সংযোগে নির্দিষ্ট করা ডাটাবেস নামের জন্য। - যদি একটি অনুমতি API কল Milvus সংযোগে তৈরি করা হয়,
db_name
নির্দিষ্ট হোক না, উভয়ই ** ডাটাবেস ** অনুমতি API কলে নির্দিষ্ট করা ডাটাবেস নামের জন্য।
নিচের কোড স্নিপেটটি নীচের ব্লকগুলির মধ্যে ভাগ করা হয়েছে।
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"Connecting to Milvus\n")
connections.connect(host=_HOST, port=_PORT, user=_ROOT, password=_ROOT_PASSWORD, db_name=db_name)
- যদি Milvus সংযোগ এবং অনুমতি API কল উভয়ই
db_name
নির্দিষ্ট না করে, ** ডাটাবেস ** ডিফল্ট ডাটাবেসটির জন্য।
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)
- যদি Milvus সংযোগ
db_name
সিদ্ধান্ত করে, কিন্তু পরবর্তী অনুমতি API কল না করে, ** ডাটাবেস ** 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)
- যদি একটি অনুমতি API কল Milvus সংযোগে তৈরি করা হয়,
db_name
নির্দিষ্ট হোক না, উভয়ই ** ডাটাবেস ** অনুমতি API কলে নির্দিষ্ট করা ডাটাবেস নামের জন্য।
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)