डेटाबेस प्रबंधन
पारंपरिक डेटाबेस इंजन की तरह, आप 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" आता है। अगर विशेष रूप से निर्दिष्ट नहीं किया गया हो तो संग्रह "default" डेटाबेस में बनाए जाएंगे।
डिफ़ॉल्ट डेटाबेस बदलने के लिए, निम्न चरणों का पालन करें:
db.using_database("book")
आप जब Milvus क्लस्टर से कनेक्ट करते हैं, तो उपयोग करने के लिए डेटाबेस को भी सेट कर सकते हैं, जैसा नीचे दिखाया गया है:
conn = connections.connect(
host="127.0.0.1",
port="19530",
db_name="default"
)
डेटाबेसों की सूची बनाना
Milvus क्लस्टर में मौजूद सभी मौजूदा डेटाबेसों को प्राप्त करने के लिए निम्न कदम चलाएं:
db.list_database()
['default', 'book']
डेटाबेस मिटाना
डेटाबेस को मिटाने के लिए, पहले आपको उसके सभी संग्रहों को मिटाना होगा। अन्यथा, मिटाना विफल हो जाएगा।
db.drop_database("book")
db.list_database()
['default']
डेटाबेस में RBAC का उपयोग करना
RBAC डेटाबेस ऑपरेशनों को भी कवर करता है और आगे के संगतिता की सुनिश्चित करता है। अनुमति API (अनुदान / वापसी / सूची अनुदान) में शब्द डेटाबेस का निम्नलिखित अभिप्राय होता है:
-
अगर Milvus कनेक्शन और अनुमति API कॉल दोनों ही
db_name
की घोषणा नहीं करते हैं, तो डेटाबेस डिफ़ॉल्ट डेटाबेस के लिए होता है। -
अगर Milvus कनेक्शन
db_name
की घोषणा करता है, लेकिन उसके बाद के अनुमति API कॉल नहीं करते हैं, तो डेटाबेस Milvus कनेक्शन में घोषित डेटाबेस के नाम के लिए होता है। -
अगर Milvus कनेक्शन पर अनुमति API कॉल की जाती है, चाहे
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"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)
- अगर Milvus कनेक्शन पर अनुमति API कॉल की जाती है, चाहे
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)