Milvus এর Collection ক্লাসটি MySQL এর টেবিলের মতো, ডেটা সংগ্রহ করার জন্য ব্যবহৃত এবং এটি এক বা একাধিক পার্টিশন দ্বারা গঠিত।
Collection তৈরি করা
একটি সংগ্রহ এক বা একাধিক পার্টিশন দ্বারা গঠিত। নতুন একটি সংগ্রহ তৈরি করা হলে, Milvus দ্বারা ডিফল্ট পার্টিশন নামকরণ করা হবে_default
নামে। অধিক তথ্যের জন্য, দয়া করে শব্দকোষে সংগ্রহ সম্পর্কিত শব্দাবলিতে দেখুন।
নীচের উদাহরণটি 'book' নামের একটি সংগ্রহ তৈরি করবে যেখানে দুটি পার্টিশন থাকবে, এবং এটিতে প্রাথমিক কী ফ
প্রস্তুতি মোড
এই মোডটি MYSQL টেবিলের স্ট্রাকচার সমূহ নির্ধারণ করার মত কাজ করে।
যে সংগ্রহটি তৈরি করতে হবে, তাতে প্রাথমিক কী ফিল্ড এবং ভেক্টর ফিল্ড থাকতে হবে। প্রাথমিক কী ফিল্ডটি INT64 এবং VarChar ডেটা টাইপসমূহকে সাপোর্ট করে।
প্রথমে, ফিল্ড স্কিমা, সংগ্রহ স্কিমা, এবং সংগ্রহের নাম সহ প্রয়োজনীয় প্যারামিটারগুলি প্রস্তুত করুন।
সংগ্রহ স্কিমা নির্ধারণ করার আগে, সংগ্রহের প্রতিটি ফিল্ডের জন্য একটি স্কিমা তৈরি করুন। ডেটা ঢুকানোর জটিলতা কমাতে, Milvus আপনাকে অনুরূপ মান নির্ধারণ করার অনুমতি দেয়। অর্থাৎ, আপনি যদি ডেটা ঢুকানোর সময় কোনও ফিল্ড খালি রাখেন, তবে ফিল্ড স্কিমা নির্মাণের সময় নির্ধারিত ডিফল্ট মানটি ব্যবহার হবে।
from pymilvus import CollectionSchema, FieldSchema, DataType
book_id = FieldSchema(
name="book_id",
dtype=DataType.INT64,
is_primary=True,
)
book_name = FieldSchema(
name="book_name",
dtype=DataType.VARCHAR,
max_length=200,
default_value="অজানা" # ডিফল্ট মান হল "অজানা"
)
word_count = FieldSchema(
name="word_count",
dtype=DataType.INT64,
default_value=9999 # ডিফল্ট মান হল 9999
)
book_intro = FieldSchema(
name="book_intro",
dtype=DataType.FLOAT_VECTOR,
dim=2
)
schema = CollectionSchema(
fields=[book_id, book_name, word_count, book_intro],
description="বই অনুসন্ধান পরীক্ষা", # বর্ণনা "বই অনুসন্ধান পরীক্ষা"
enable_dynamic_field=True # ডায়নামিক স্কিমা সক্রিয় করুন
)
collection_name = "book"
স্কিমা প্রকার | প্যারামিটার | বর্ণনা | অপশন |
---|---|---|---|
FieldSchema |
name |
তৈরি করার ফিল্ডের নাম। | N/A |
dtype |
তৈরি করার ফিল্ডের ডেটা প্রকার। | প্রাথমিক কী ফিল্ড: - DataType.INT64 (numpy.int64) - DataType.VARCHAR (VARCHAR) স্কালার ফিল্ড: - DataType.BOOL (Boolean) - DataType.INT8 (numpy.int8) - DataType.INT16 (numpy.int16) - DataType.INT32 (numpy.int32) - DataType.INT64 (numpy.int64) - DataType.FLOAT (numpy.float32) - DataType.DOUBLE (numpy.double) - DataType.VARCHAR (VARCHAR) - DataType.JSON (JSON) ভেক্টর ফিল্ড: - BINARY_VECTOR (বাইনারি ভেক্টর) - FLOAT_VECTOR (ফ্লোট ভেক্টর) |
|
is_primary |
একটি সুইচ যা নিয়ন্ত্রণ করে ফিল্ডটি প্রাথমিক কী ফিল্ড কিনা। এই প্যারামিটারটি প্রাথমিক কী ফিল্ডগুলির জন্য নির্ধারণ করা আবশ্যক। | True বা False |
|
auto_id |
স্বয়ংক্রিয়ভাবে আইডি (প্রাথমিক কী) নির্ধারণ সক্রিয় না করার সুইচ। এই প্যারামিটারটি প্রাথমিক কী ফিল্ডগুলির জন্য নির্ধারণ করা আবশ্যক এবং ডিফল্টভাবে এর মান হল False । |
True বা False |
|
max_length (VARCHAR ফিল্ডের জন্য প্রয়োজনীয়) |
ঢুকানো যে স্ট্রিং এর সর্বোচ্চ দৈর্ঘ্য। | [1, 65,535] | |
default_value |
ফিল্ডের ডিফল্ট মান। এই প্যারামিটারটি কেবল অ্যারে এবং জেসন স্ক্যালার ফিল্ডগুলির জন্য প্রয়োজন। প্রাথমিক কী ফিল্ডের জন্য একটি ডিফল্ট মান নির্ধারণ করা সম্ভব না। বিস্তারিত জানতে, default_value প্যারামিটার দেখুন। |
N/A | |
dim (ভেক্টর ফিল্ডের জন্য প্রয়োজনীয়) |
ভেক্টরের মাত্রা। | [1, 32,768] | |
description (ঐচ্ছিক) |
ফিল্ডের বিবরণ। | N/A | |
CollectionSchema |
fields |
সংগ্রহের জন্য তৈরি করতে হবে ফিল্ডগুলি। | N/A |
description (ঐচ্ছিক) |
তৈরি করা সংগ্রহের বর্ণনা। | N/A | |
enable_dynamic_field |
ডায়নামিক স্কিমা সক্রিয় করতে হলে। ডেটা টাইপ: বুলিয়ান (true বা false )। ঐচ্ছিক, ডিফল্টভাবে এর মান হল False । বিস্তারিত জানতে, ডায়নামিক স্কিমা এবং সংগ্রহ পরিচালনার জন্য উপযোগী গাইড দেখুন। |
||
collection_name |
তৈরি করতে হবে সংগ্রহের নাম। | N/A |
স্কিমা সহ একটি কালেকশন তৈরি করা
পরবর্তী, নির্দিষ্ট স্কীমা সহ একটি কালেকশন তৈরি করুন।
from pymilvus import Collection
collection = Collection(
name=collection_name,
schema=schema,
using='default',
shards_num=2
)
প্যারামিটার | বর্ণনা | বিকল্প |
---|---|---|
using (ঐচ্ছিক) |
এখানে সার্ভারের এলিয়াস নির্দিষ্ট করুন, এবং মিলভাস সার্ভারে কালেকশন তৈরি করা কোথায় পছন্দ করেন | N/A |
shards_num (ঐচ্ছিক) |
তৈরি হতে যাচ্ছে কালেকশনের শার্ডের সংখ্যা | [1,16] |
num_partitions (ঐচ্ছিক) |
তৈরি হতে যাচ্ছে কালেকশনের স্বাধীন বিভাগের ভৌগোলিক সংখ্যা | [1,4096] |
*kwargs: collection.ttl.seconds (ঐচ্ছিক) |
কালেকশনের TTL হল কালেকশনের মেয়াদ শেষ হয়ে যাওয়ার সময়। মেয়াদ শেষ হওয়া ডেটা পরিষ্কার করা হবে এবং অনুসন্ধান বা প্রশ্নে অংশগ্রহণ করবে না। সেকেন্ডে TTL নির্ধারণ করুন। | মানটি অবশ্যই 0 বা বেশি হওয়া উচিত। 0 দেওয়া মানে এখানে TTL অক্ষম করা। |
সীমাবদ্ধতা
সম্পদ কনফিগারেশন
বৈশিষ্ট্য | সর্বাধিক সীমা |
---|---|
কালেকশন নামের দৈর্ঘ্য | 255 অক্ষর |
কালেকশনে বিভাগের সংখ্যা | 4,096 |
কালেকশনে ফিল্ডের সংখ্যা | 64 |
কালেকশনে শার্ডের সংখ্যা | 16 |
default_value
প্যারামিটার
-
default_value
প্ৰয়োগ কৰা হয় কেৱল অ্যাৰে আৰু জেএছওৱা স্কেলাৰ ফিল্ডসমূহত। -
default_value
প্ৰয়োগ হৈন
একটি সংগ্রহ উপনাম সংশোধন করুন
একটি বিদ্যমান উপনামের মান পরিবর্তন করে তাকে আরেকটি সংগ্রহের দিকে পয়েন্ট করুন। নিম্নলিখিত উদাহরণে publication
উপনামটি মূলত অন্য একটি সংগ্রহের জন্য তৈরি করা হয়েছিল।
from pymilvus import utility
utility.alter_alias(
collection_name = "book",
alias = "publication"
)
একটি সংগ্রহ লোড করুন
সনাক্ত ও প্রশ্নাংক অপারেশন পরে সংগ্রহটি মেমোরিতে কীভাবে লোড করবেন। Milvus-এ, সমস্ত অনুসন্ধান এবং প্রশ্নাংক অপারেশনগুলি মেমোরিতে কার্যকর করা হয়।
Milvus ব্যবহারকারীদের প্রায় অনুসন্ধান নোডগুলির অতিরিক্ত CPU এবং মেমোরি সম্পদের সঙ্গে সংগ্রহগুলি একের অধিক রিপ্লিকার হিসাবে লোড করা দেয়। এই বৈশিষ্ট্যটি অতঃপর অতিরিক্ত হার্ডওয়্যার ছাড়াই সামগ্রিক QPS এবং থ্রুপুট পরিমাপ বৃদ্ধি পায়। একটি সংগ্রহ লোড করার আগে, সত্যাপন করুন যে আপনি এর জন্য একটি সূচি তৈরি করেছেন।
from pymilvus import Collection, utility
collection = Collection("book")
collection.load(replica_number=2)
utility.load_state("book")
utility.loading_progress("book")
একটি সংগ্রহ মুক্তি দিন
সনাক্ত অথবা প্রশ্নাংক অপারেশনগুলির পরে মেমোরি ব্যবহার কমাতে একটি সংগ্রহ কীভাবে মুক্তি দেওয়া যায়।
from pymilvus import Collection
collection = Collection("book")
collection.release()