নীওফোরজে (Neo4J) একটি শক্তিশালী গ্রাফ ডেটাবেস, যা সম্পর্কিত ডেটার মডেলিং এবং বিশ্লেষণে ব্যবহৃত হয়। পাইথন (Python) হলো একটি জনপ্রিয় প্রোগ্রামিং ভাষা, যা ডেটা সায়েন্স, মেশিন লার্নিং, এবং ডেটাবেস ইন্টিগ্রেশনসহ বিভিন্ন ক্ষেত্রে ব্যবহৃত হয়। নীওফোরজে এবং পাইথন ইন্টিগ্রেশন ডেটা ম্যানিপুলেশন এবং বিশ্লেষণে সহজতর করে, বিশেষ করে গ্রাফ ডেটাবেসের সাথে পাইথন ব্যবহার করে ডেটা অ্যাক্সেস, ম্যানিপুলেশন, এবং কুয়েরি চালানো যায়।
নীওফোরজে এবং পাইথন ইন্টিগ্রেশনের জন্য প্রয়োজনীয় প্যাকেজ
নীওফোরজে এবং পাইথন ইন্টিগ্রেট করতে আপনাকে neo4j প্যাকেজ ইনস্টল করতে হবে। এটি পাইথন থেকে নীওফোরজে ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করার জন্য ব্যবহৃত হয়।
পাইথনে নীওফোরজে প্যাকেজ ইনস্টল করা
পাইথনে নীওফোরজে ইন্টিগ্রেশন ব্যবহার করার জন্য neo4j প্যাকেজটি ইনস্টল করতে হবে। এটি ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন:
pip install neo4j
নীওফোরজে ডেটাবেসের সাথে সংযোগ স্থাপন
পাইথন স্ক্রিপ্টে নীওফোরজে ডেটাবেসের সাথে সংযোগ স্থাপনের জন্য প্রথমে নীওফোরজে সেশন তৈরি করতে হবে। নিচের কোডটি দেখুন, যা পাইথন থেকে নীওফোরজে ডেটাবেসের সাথে সংযোগ স্থাপন করবে:
from neo4j import GraphDatabase
# নীওফোরজে সার্ভার এর URL এবং ব্যবহারকারীর ক্রেডেনশিয়াল
uri = "bolt://localhost:7687" # URL (আপনার নীওফোরজে সার্ভারের URL ব্যবহার করুন)
username = "neo4j"
password = "your_password"
# ড্রাইভার তৈরি
driver = GraphDatabase.driver(uri, auth=(username, password))
# সেশন শুরু
session = driver.session()
# কুয়েরি চালানো
result = session.run("MATCH (n:Person) RETURN n.name AS name")
# ফলাফল প্রিন্ট করা
for record in result:
print(record["name"])
# সেশন বন্ধ করা
session.close()
এখানে bolt://localhost:7687 হলো নীওফোরজে সার্ভারের URL এবং neo4j হল ডিফল্ট ব্যবহারকারীর নাম। your_password-এর জায়গায় আপনার নীওফোরজে ডেটাবেসের পাসওয়ার্ড দিতে হবে।
নীওফোরজে-তে কুয়েরি চালানো
নির্দিষ্ট নোড এবং রিলেশনশিপ অনুসন্ধান করতে সাইফার কুয়েরি (Cypher Query) ব্যবহার করা হয়। পাইথন স্ক্রিপ্টে নীওফোরজে ডেটাবেসে কুয়েরি চালানোর জন্য session.run() মেথড ব্যবহার করা হয়।
উদাহরণ: একটি নোড তৈরি করা
session.run("CREATE (p:Person {name: 'John', age: 30})")
এই কুয়েরিটি একটি Person লেবেল (Label) যুক্ত নোড তৈরি করবে, যার name প্রোপার্টি হবে 'John' এবং age প্রোপার্টি হবে 30।
উদাহরণ: একটি রিলেশনশিপ তৈরি করা
session.run("MATCH (a:Person {name: 'John'}), (b:Person {name: 'Jane'}) "
"CREATE (a)-[:KNOWS]->(b)")
এখানে, John এবং Jane এর মধ্যে KNOWS নামের একটি রিলেশনশিপ তৈরি করা হবে।
পাইথনে নীওফোরজে থেকে ডেটা ফেচ করা
পাইথনে নীওফোরজে থেকে ডেটা ফেচ করতে MATCH কুয়েরি ব্যবহার করা হয়। ফলাফল ফিরে পাওয়ার জন্য session.run() মেথডটি ব্যবহার করা হয়, এবং এর মাধ্যমে পাওয়া ফলাফলকে লুপ করে প্রিন্ট করা হয়।
উদাহরণ: নোডের নাম ফেচ করা
result = session.run("MATCH (n:Person) RETURN n.name AS name")
for record in result:
print(record["name"])
এখানে, সমস্ত Person নোডের name প্রোপার্টি ফেরত আসবে এবং তা প্রিন্ট হবে।
ট্রানজেকশন ব্যবহার
নীওফোরজে-তে ট্রানজেকশনাল কুয়েরি (Transactional Query) চালানোর জন্য session.begin_transaction() ব্যবহার করা হয়। এটি নিশ্চিত করে যে একাধিক কুয়েরি একসাথে কার্যকর হবে এবং সফলভাবে শেষ হলে তা সেভ হবে।
উদাহরণ: ট্রানজেকশনের মাধ্যমে কুয়েরি চালানো
with session.begin_transaction() as tx:
tx.run("CREATE (p:Person {name: 'Alice', age: 28})")
tx.run("CREATE (p2:Person {name: 'Bob', age: 35})")
tx.run("MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) "
"CREATE (a)-[:KNOWS]->(b)")
এখানে, একটি ট্রানজেকশন তৈরি করা হয়েছে, যার মধ্যে দুটি Person নোড এবং একটি রিলেশনশিপ তৈরি করা হচ্ছে।
সারাংশ
নীওফোরজে (Neo4J) এবং পাইথন (Python) ইন্টিগ্রেশন ডেটাবেসের সাথে কাজ করতে বেশ কার্যকরী। পাইথন ব্যবহার করে নীওফোরজে ডেটাবেসে ডেটা ইনসার্ট, আপডেট, এবং অনুসন্ধান করা সহজ হয়। neo4j প্যাকেজটি পাইথন থেকে নীওফোরজে ডেটাবেসে কুয়েরি চালানোর জন্য ব্যবহৃত হয় এবং এটি ডেটার ম্যানিপুলেশন এবং বিশ্লেষণে সহায়ক। ট্রানজেকশন এবং কুয়েরি ব্যবস্থাপনা নীওফোরজে ডেটাবেসের পারফরম্যান্স এবং কার্যক্ষমতা বৃদ্ধি করে।
Neo4J এবং Python এর মধ্যে সংযোগ তৈরি করার জন্য Neo4j Driver for Python ব্যবহার করা হয়। এই ড্রাইভারটি Python অ্যাপ্লিকেশন থেকে Neo4J ডেটাবেসের সাথে যোগাযোগ করতে সাহায্য করে, যাতে আপনি Python কোডের মাধ্যমে গ্রাফ ডেটাবেসে কুয়েরি চালাতে পারেন এবং ডেটা ইন্টিগ্রেশন করতে পারেন।
Neo4J ড্রাইভারটি neo4j প্যাকেজ নামে পরিচিত এবং এটি Python এ গ্রাফ ডেটাবেসের জন্য প্রয়োজনীয় ফাংশনালিটি প্রদান করে।
Python এ Neo4j ড্রাইভার ইন্সটল করা
প্রথমে, Python পরিবেশে Neo4j ড্রাইভার ইন্সটল করতে হবে। আপনি pip ব্যবহার করে এটি ইন্সটল করতে পারেন:
pip install neo4j
এটি আপনাকে Neo4j ড্রাইভারটি আপনার Python প্রকল্পে যোগ করতে সহায়ক হবে।
Neo4J এবং Python এর মধ্যে সংযোগ স্থাপন
Neo4J ড্রাইভার ইনস্টল করার পর, Python কোডের মাধ্যমে Neo4J ডেটাবেসের সাথে সংযোগ স্থাপন করা যেতে পারে। সংযোগ স্থাপনের জন্য নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করতে হবে:
1. Neo4j ডেটাবেসের সাথে সংযোগ স্থাপন
Neo4J ডেটাবেসের সাথে সংযোগ স্থাপনের জন্য আপনাকে একটি uri (ইউআরআই), username, এবং password প্রয়োজন। এই তথ্যগুলি Neo4J ডেটাবেসের কনফিগারেশন থেকে পাওয়া যাবে। উদাহরণস্বরূপ, যদি আপনার Neo4J ডেটাবেসের ইউআরআই bolt://localhost:7687 হয় এবং ব্যবহারকারীর নাম neo4j এবং পাসওয়ার্ড password থাকে, তাহলে আপনি সংযোগ স্থাপন করতে পারেন:
from neo4j import GraphDatabase
# Neo4J ড্রাইভার ইনিশিয়ালাইজেশন
uri = "bolt://localhost:7687"
username = "neo4j"
password = "password"
# Neo4J ড্রাইভার তৈরি
driver = GraphDatabase.driver(uri, auth=(username, password))
2. কুয়েরি চালানো
একবার সংযোগ স্থাপন হলে, আপনি কুয়েরি চালাতে পারবেন। নিচে একটি উদাহরণ দেওয়া হল যেখানে MATCH কুয়েরি ব্যবহার করে গ্রাফ ডেটাবেস থেকে ডেটা অনুসন্ধান করা হচ্ছে:
def query_neo4j():
# ট্রানজেকশন শুরু করা
with driver.session() as session:
result = session.run("MATCH (n:Person) RETURN n.name")
# ফলাফল প্রিন্ট করা
for record in result:
print(record["n.name"])
query_neo4j()
এই কোডে, আমরা Person লেবেলযুক্ত সমস্ত নোডের name প্রোপার্টি অনুসন্ধান করছি এবং তারপরে ফলাফল প্রিন্ট করছি।
3. ট্রানজেকশন ব্যবহার
Neo4J-তে একাধিক অপারেশন একযোগে পরিচালনা করার জন্য ট্রানজেকশন ব্যবহৃত হয়। ট্রানজেকশন ব্যবহারের মাধ্যমে একাধিক কুয়েরি সঠিকভাবে সম্পন্ন হওয়া নিশ্চিত করা যায়।
def create_person(name):
with driver.session() as session:
session.write_transaction(create_person_in_db, name)
def create_person_in_db(tx, name):
tx.run("CREATE (n:Person {name: $name})", name=name)
create_person("John Doe")
এখানে, একটি নতুন Person নোড তৈরি করা হচ্ছে, যার নাম John Doe।
Error Handling (ত্রুটি ব্যবস্থাপনা)
Neo4J-তে Python দিয়ে কাজ করার সময় ত্রুটি হ্যান্ডলিংও গুরুত্বপূর্ণ। যদি কোনো কুয়েরি ভুল হয় বা সংযোগে সমস্যা থাকে, তবে সঠিকভাবে ত্রুটি পরিচালনা করা প্রয়োজন।
from neo4j.exceptions import ServiceUnavailable, AuthenticationError
try:
# সংযোগ তৈরি করা
driver = GraphDatabase.driver(uri, auth=(username, password))
with driver.session() as session:
result = session.run("MATCH (n:Person) RETURN n.name")
for record in result:
print(record["n.name"])
except AuthenticationError:
print("Authentication failed. Please check your credentials.")
except ServiceUnavailable:
print("Neo4j service is unavailable. Please check the connection.")
except Exception as e:
print(f"An error occurred: {e}")
এখানে, সংযোগে সমস্যা হলে, সঠিক ত্রুটি বার্তা প্রদর্শিত হবে।
সারাংশ
Neo4J এবং Python এর মধ্যে সংযোগ তৈরি করার জন্য neo4j ড্রাইভার ব্যবহার করা হয়। Python কোডের মাধ্যমে আপনি Neo4J ডেটাবেসের সাথে সংযোগ স্থাপন করে গ্রাফ ডেটাবেসে কুয়েরি চালাতে পারেন। Neo4J ড্রাইভার ইনস্টল করার পর, সংযোগ স্থাপন, কুয়েরি চালানো এবং ট্রানজেকশন ব্যবহারের মাধ্যমে ডেটা পরিচালনা করা সম্ভব। সঠিক ত্রুটি ব্যবস্থাপনার মাধ্যমে সিস্টেমের স্থিতিশীলতা এবং নির্ভরযোগ্যতা বজায় রাখা যায়।
নিওফোরজে (Neo4J) ডেটাবেসের সাথে Python ইন্টিগ্রেশন করার জন্য দুটি প্রধান লাইব্রেরি রয়েছে: Py2neo এবং Neo4j Python Driver। এই দুটি লাইব্রেরি ব্যবহার করে আপনি Python ভাষায় নিওফোরজে ডেটাবেসে ডেটা পরিচালনা, অনুসন্ধান এবং আপডেট করতে পারেন। এখানে এই দুটি লাইব্রেরি সম্পর্কে বিস্তারিত আলোচনা করা হলো।
Py2neo
Py2neo একটি উচ্চমানের, ওপেন সোর্স Python লাইব্রেরি যা Neo4j ডেটাবেসের সাথে কাজ করার জন্য ব্যবহৃত হয়। এটি ডেটাবেসের সাথে সহজে সংযোগ স্থাপন করতে এবং বিভিন্ন গ্রাফ কার্যক্রম সম্পাদন করতে সহায়তা করে। Py2neo ডেটাবেসের সাথে যোগাযোগ করতে HTTP/HTTPS ব্যবহার করে এবং এতে নানান ধরনের ফিচার রয়েছে যেমন, সিম্পল ক্লায়েন্ট API, নোড এবং সম্পর্কের ব্যবস্থাপনা ইত্যাদি।
Py2neo ইনস্টলেশন
Py2neo লাইব্রেরি ইনস্টল করতে আপনি pip ব্যবহার করতে পারেন:
pip install py2neo
Py2neo ব্যবহার উদাহরণ
১. Neo4j ডেটাবেসের সাথে সংযোগ স্থাপন
Py2neo ব্যবহার করে Neo4j ডেটাবেসের সাথে সংযোগ স্থাপন করা খুবই সহজ। নিচে একটি উদাহরণ দেখানো হলো:
from py2neo import Graph
# Neo4j ডেটাবেসের সাথে সংযোগ
graph = Graph("bolt://localhost:7687", auth=("neo4j", "password"))
# গ্রাফে একটি নোড তৈরি
graph.run("CREATE (a:Person {name: 'Alice', age: 30})")
এখানে, Graph অবজেক্ট ব্যবহার করে ডেটাবেসের সাথে সংযোগ স্থাপন করা হয়েছে এবং তারপর CREATE কমান্ড ব্যবহার করে একটি নতুন নোড তৈরি করা হয়েছে।
২. ডেটা অনুসন্ধান
আপনি গ্রাফ ডেটাবেসে MATCH কুয়েরি চালিয়ে ডেটা অনুসন্ধান করতে পারেন:
result = graph.run("MATCH (a:Person) RETURN a.name, a.age")
for record in result:
print(record["a.name"], record["a.age"])
এটি গ্রাফে থাকা সমস্ত Person নোডের নাম এবং বয়স প্রিন্ট করবে।
৩. সম্পর্ক তৈরি
নতুন সম্পর্ক তৈরি করার জন্য নিচের কোড ব্যবহার করা যেতে পারে:
graph.run("MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) "
"CREATE (a)-[:KNOWS]->(b)")
এটি Alice এবং Bob নোডের মধ্যে একটি KNOWS সম্পর্ক তৈরি করবে।
Neo4j Python Driver
Neo4j Python Driver নিওফোরজে অফিসিয়াল ড্রাইভার যা Python থেকে Neo4j ডেটাবেসের সাথে সংযোগ স্থাপন এবং কুয়েরি চালানোর জন্য ব্যবহৃত হয়। এটি গ্রাফ ডেটাবেসের সাথে কমপ্লেক্স এবং পারফরম্যান্ট ইন্টারঅ্যাকশন পরিচালনা করতে সক্ষম। neo4j ড্রাইভার HTTP বা Bolt প্রোটোকল ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করে।
Neo4j Python Driver ইনস্টলেশন
Neo4j Python Driver ইনস্টল করতে:
pip install neo4j
Neo4j Python Driver ব্যবহার উদাহরণ
১. ডেটাবেস সংযোগ
Neo4j Python Driver ব্যবহার করে ডেটাবেসের সাথে সংযোগ স্থাপন:
from neo4j import GraphDatabase
# Neo4j ড্রাইভার সেটআপ
uri = "bolt://localhost:7687"
username = "neo4j"
password = "password"
driver = GraphDatabase.driver(uri, auth=(username, password))
# সেশন তৈরি
session = driver.session()
# সেশন ব্যবহার করে একটি নোড তৈরি
session.run("CREATE (a:Person {name: 'Alice', age: 30})")
এখানে, GraphDatabase.driver ব্যবহার করে ড্রাইভার সেটআপ করা হয়েছে এবং session.run() ব্যবহার করে গ্রাফে একটি নোড তৈরি করা হয়েছে।
২. ডেটা অনুসন্ধান
Neo4j Python Driver ব্যবহার করে ডেটাবেসে তথ্য অনুসন্ধান:
result = session.run("MATCH (a:Person) RETURN a.name, a.age")
for record in result:
print(record["a.name"], record["a.age"])
এটি গ্রাফে থাকা Person নোডের নাম এবং বয়স প্রিন্ট করবে।
৩. সম্পর্ক তৈরি
নতুন সম্পর্ক তৈরি করা:
session.run("MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) "
"CREATE (a)-[:KNOWS]->(b)")
এটি Alice এবং Bob এর মধ্যে একটি সম্পর্ক তৈরি করবে।
Py2neo এবং Neo4j Python Driver এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Py2neo | Neo4j Python Driver |
|---|---|---|
| কনফিগারেশন | সহজ এবং user-friendly API | বেশি কনফিগারেশন প্রয়োজন |
| সংযোগ প্রোটোকল | HTTP/HTTPS | Bolt বা HTTP |
| ফিচার | আরও উন্নত API, সহজ ব্যবহার | অফিসিয়াল ড্রাইভার, পারফরম্যান্সের দিকে বেশি মনোযোগ |
| ডেটা ম্যানেজমেন্ট | স্বয়ংক্রিয়ভাবে কাজ করে | কমপ্লেক্স কোড ব্যবহারের মাধ্যমে কাজ করে |
সারাংশ
Py2neo এবং Neo4j Python Driver, দুটি শক্তিশালী টুল যা Python দিয়ে Neo4j গ্রাফ ডেটাবেসের সাথে কাজ করতে সহায়তা করে। Py2neo একটি সহজ এবং user-friendly লাইব্রেরি, যা সহজেই ডেটাবেসের সাথে যোগাযোগ করতে দেয়, যেখানে Neo4j Python Driver আরও উন্নত এবং অফিসিয়াল ড্রাইভার হিসেবে শক্তিশালী পারফরম্যান্স এবং বেশি কাস্টমাইজেশনের সুযোগ প্রদান করে। উভয় লাইব্রেরি ব্যবহার করে Python দিয়ে Neo4j ডেটাবেসের কার্যক্রম সহজেই পরিচালনা করা সম্ভব।
নিওফোরজে (Neo4J) দিয়ে গ্রাফ ডেটাবেস পরিচালনার জন্য Cypher কুয়েরি ব্যবহৃত হয়। Python দিয়ে Neo4J ডেটাবেসের সাথে সংযুক্ত হয়ে Cypher কুয়েরি execute করার জন্য আমরা neo4j প্যাকেজ ব্যবহার করতে পারি। এই প্যাকেজটি Python থেকে Neo4J ডেটাবেসের সাথে যোগাযোগ স্থাপন করতে সহায়তা করে। নিচে Python দিয়ে Cypher কুয়েরি execute করার প্রক্রিয়া ব্যাখ্যা করা হলো।
প্রারম্ভিক প্রস্তুতি
প্রথমে, Neo4J ডেটাবেস ইন্সটল করা এবং চালু রাখা দরকার। তারপর Python লাইব্রেরি ইনস্টল করতে হবে যা Neo4J-এর সাথে যোগাযোগ করার জন্য প্রয়োজনীয়। এ জন্য neo4j লাইব্রেরি ইনস্টল করা হয়:
pip install neo4j
Python দিয়ে Neo4J ডেটাবেসে সংযোগ স্থাপন
Neo4J ডেটাবেসে সংযোগ স্থাপন করতে নিচের কোডটি ব্যবহার করা যেতে পারে:
from neo4j import GraphDatabase
# Neo4J ডাটাবেস সার্ভারের URI, ইউজারনেম এবং পাসওয়ার্ড
uri = "bolt://localhost:7687" # Neo4J এর ডিফল্ট URI
username = "neo4j" # আপনার ইউজারনেম
password = "your_password" # আপনার পাসওয়ার্ড
# গ্রাফ ডেটাবেস ড্রাইভার ইনস্ট্যান্স তৈরি
driver = GraphDatabase.driver(uri, auth=(username, password))
# Cypher কুয়েরি এক্সিকিউট করার জন্য একটি ফাংশন
def execute_cypher_query(query):
with driver.session() as session:
result = session.run(query)
return result
# সিম্পল কুয়েরি এক্সিকিউট করা
query = "MATCH (n) RETURN n LIMIT 5"
result = execute_cypher_query(query)
for record in result:
print(record)
Cypher কুয়েরি চলানো
এখন, চলুন কিছু Cypher কুয়েরি দেখে কীভাবে Python এর মাধ্যমে গ্রাফ ডেটাবেসের উপর কাজ করা যায়।
নোড তৈরি করা
query = """
CREATE (p:Person {name: 'John', age: 30})
RETURN p
"""
result = execute_cypher_query(query)
for record in result:
print(record)
সম্পর্ক তৈরি করা
query = """
MATCH (a:Person {name: 'John'}), (b:Person {name: 'Alice'})
CREATE (a)-[:FRIEND]->(b)
RETURN a, b
"""
result = execute_cypher_query(query)
for record in result:
print(record)
ডেটা আপডেট করা
query = """
MATCH (p:Person {name: 'John'})
SET p.age = 31
RETURN p
"""
result = execute_cypher_query(query)
for record in result:
print(record)
ডেটা মুছে ফেলা
query = """
MATCH (p:Person {name: 'John'})
DELETE p
"""
result = execute_cypher_query(query)
for record in result:
print(record)
সারাংশ
Python দিয়ে Neo4J ডেটাবেসের সাথে কাজ করার জন্য neo4j লাইব্রেরি ব্যবহার করা হয়। Cypher কুয়েরি execute করার জন্য Python স্ক্রিপ্টে ড্রাইভার সেটআপ করতে হয় এবং তারপরে কুয়েরি রান করা হয়। এর মাধ্যমে আমরা নোড তৈরি, সম্পর্ক স্থাপন, ডেটা আপডেট এবং মুছে ফেলা ইত্যাদি কার্যকলাপ সহজেই করতে পারি।
নিওফোরজে (Neo4J) একটি গ্রাফ ডেটাবেস ম্যানেজমেন্ট সিস্টেম, যা ডেটার মধ্যে সম্পর্ক এবং সংযোগকে গ্রাফের মাধ্যমে মডেল করে। পাইটনের মাধ্যমে নিওফোরজে এর ডেটা সহজেই ভিজ্যুয়ালাইজ করা যায়, যা ডেটার সম্পর্ক এবং স্ট্রাকচার আরও স্পষ্টভাবে উপস্থাপন করতে সহায়তা করে।
এই টিউটোরিয়ালে, আমরা নিওফোরজে ডেটাবেস থেকে ডেটা নিয়ে পাইটনে গ্রাফ ভিজ্যুয়ালাইজেশন কিভাবে করতে হয়, তা দেখব।
নিওফোরজে থেকে ডেটা নিয়ে আসা
পাইটনে নিওফোরজে ডেটাবেস থেকে ডেটা নিয়ে আসার জন্য neo4j লাইব্রেরি ব্যবহার করা হয়। এই লাইব্রেরি দিয়ে সহজেই আমরা গ্রাফের নোড এবং এজের তথ্য পেতে পারি।
প্রথমে, নিওফোরজে এর সাথে সংযুক্ত হতে হবে। নিচে একটি উদাহরণ দেওয়া হলো:
from neo4j import GraphDatabase
# Neo4j ডাটাবেসের সাথে সংযোগ স্থাপন
uri = "bolt://localhost:7687"
username = "neo4j"
password = "password"
driver = GraphDatabase.driver(uri, auth=(username, password))
# সেশনের মাধ্যমে ডেটা রিট্রিভ করা
def get_data_from_neo4j(query):
with driver.session() as session:
result = session.run(query)
return result
# একটি উদাহরণ কোয়েরি
query = "MATCH (a)-[r]->(b) RETURN a.name, r, b.name LIMIT 25"
data = get_data_from_neo4j(query)
এই কোডে MATCH কমান্ডের মাধ্যমে আমরা নোড এবং তাদের মধ্যে সম্পর্ক নিয়ে আসছি।
গ্রাফ ডেটা ভিজ্যুয়ালাইজেশন
গ্রাফ ভিজ্যুয়ালাইজেশন করতে আমরা NetworkX এবং Matplotlib লাইব্রেরি ব্যবহার করতে পারি। NetworkX গ্রাফ তৈরি এবং বিশ্লেষণের জন্য একটি জনপ্রিয় লাইব্রেরি, এবং Matplotlib গ্রাফের ভিজ্যুয়াল উপস্থাপনার জন্য ব্যবহৃত হয়।
নিচে একটি কোড উদাহরণ দেওয়া হলো:
import networkx as nx
import matplotlib.pyplot as plt
# গ্রাফ তৈরি করা
G = nx.Graph()
# নিওফোরজে ডেটা থেকে নোড এবং এজ যোগ করা
for record in data:
G.add_edge(record["a.name"], record["b.name"])
# গ্রাফ ভিজ্যুয়ালাইজেশন
plt.figure(figsize=(10, 10))
nx.draw(G, with_labels=True, node_color="skyblue", node_size=3000, font_size=10, font_weight="bold")
plt.title("Neo4j Graph Visualization")
plt.show()
এই কোডটি নিওফোরজে ডেটাবেস থেকে নোড এবং এজ নিয়ে NetworkX গ্রাফ তৈরি করবে এবং Matplotlib এর মাধ্যমে সেই গ্রাফের ভিজ্যুয়াল উপস্থাপনা করবে।
সারাংশ
পাইটনে নিওফোরজে ডেটাবেস থেকে গ্রাফ ডেটা নিয়ে ভিজ্যুয়ালাইজ করা অত্যন্ত সহজ এবং কার্যকর। Neo4j লাইব্রেরি দিয়ে ডেটাবেস থেকে তথ্য নেওয়ার পর NetworkX এবং Matplotlib ব্যবহার করে আমরা সেই ডেটার গ্রাফিক্যাল রিপ্রেজেন্টেশন তৈরি করতে পারি। এই প্রক্রিয়া গ্রাফ ডেটা বিশ্লেষণ এবং উপস্থাপনকে আরও সহজ ও কার্যকরী করে তোলে।
Read more