নিওফোরজে (Neo4J) গ্রাফ ডেটাবেসে ডেটা ইম্পোর্ট (Import) এবং এক্সপোর্ট (Export) করার প্রক্রিয়া একটি গুরুত্বপূর্ণ ফিচার, যা ব্যবহারকারীদের বিভিন্ন সোর্স থেকে ডেটা গ্রহণ এবং প্রয়োজনে গ্রাফ ডেটাবেস থেকে ডেটা অন্য জায়গায় ট্রান্সফার করতে সহায়তা করে। নিওফোরজে বিভিন্ন ফরম্যাটে ডেটা ইম্পোর্ট ও এক্সপোর্ট করতে পারে, যার মাধ্যমে ডেটাবেস পরিচালনা আরো সহজ হয়ে ওঠে।
ডেটা ইম্পোর্ট (Data Import)
নিওফোরজে ডেটা ইম্পোর্ট করার জন্য বেশ কিছু ভিন্ন উপায় প্রদান করে, যার মধ্যে সবচেয়ে জনপ্রিয় ফরম্যাটগুলো হলো CSV (Comma Separated Values), JSON, এবং গ্রাফ ডেটাবেস ফরম্যাট (যেমন, GraphML)।
১. CSV ফরম্যাটে ডেটা ইম্পোর্ট
নিওফোরজে সাধারণত CSV ফাইল থেকে ডেটা ইম্পোর্ট করতে ব্যবহার হয়, কারণ CSV একটি সহজ এবং সাধারণ ফরম্যাট। CSV ফাইলটি কেবলমাত্র সাদা টেক্সট ফাইল হিসেবে থাকে, যেখানে প্রতিটি রেকর্ড আলাদা আলাদা কলামে বিভক্ত থাকে।
উদাহরণ:
ধরা যাক, আপনার কাছে users.csv নামক একটি ফাইল আছে, যেখানে ব্যবহারকারীদের নাম এবং বয়স আছে। আপনি এই ফাইলটি নিওফোরজে ডেটাবেসে ইম্পোর্ট করতে পারেন নিচের মতো:
LOAD CSV WITH HEADERS FROM 'file:///users.csv' AS row
CREATE (:User {name: row.name, age: toInteger(row.age)})
এখানে, LOAD CSV কমান্ড ব্যবহার করে CSV ফাইলটি ইম্পোর্ট করা হয় এবং তারপরে CREATE কমান্ড দিয়ে সেই তথ্য গ্রাফ ডেটাবেসে যুক্ত করা হয়।
২. JSON ফরম্যাটে ডেটা ইম্পোর্ট
নিওফোরজে JSON ফরম্যাট থেকেও ডেটা ইম্পোর্ট করতে সক্ষম। JSON একটি স্ট্রাকচারড ডেটা ফরম্যাট, যা সাধারণত API থেকে ডেটা এক্সপোর্টের জন্য ব্যবহৃত হয়।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি data.json ফাইল রয়েছে। এটি নিওফোরজে ডেটাবেসে ইম্পোর্ট করার জন্য আপনাকে সঠিক Cypher কোড ব্যবহার করতে হবে:
WITH 'file:///data.json' AS url
CALL apoc.load.json(url) YIELD value
CREATE (:Person {name: value.name, age: value.age})
এখানে apoc.load.json একটি APOC লাইব্রেরির ফাংশন, যা JSON ফাইলটি লোড করে এবং তারপরে সেই তথ্য ব্যবহার করে গ্রাফ ডেটাবেসে নোড তৈরি করা হয়।
৩. গ্রাফ ডেটাবেস ফরম্যাট
নিওফোরজে GraphML, GraphSON এবং অন্যান্য গ্রাফ ডেটাবেস ফরম্যাট সাপোর্ট করে, যার মাধ্যমে আপনি অন্য গ্রাফ ডেটাবেস বা টুলস থেকে ডেটা ইম্পোর্ট করতে পারেন।
ডেটা এক্সপোর্ট (Data Export)
নিওফোরজে থেকে ডেটা এক্সপোর্ট করার জন্য বিভিন্ন পদ্ধতি রয়েছে। সাধারণত ডেটা CSV, JSON, বা GraphML ফরম্যাটে এক্সপোর্ট করা হয়, যা অন্য প্ল্যাটফর্ম বা টুলে ব্যবহার করা যেতে পারে।
১. CSV ফরম্যাটে ডেটা এক্সপোর্ট
নিওফোরজে থেকে CSV ফরম্যাটে ডেটা এক্সপোর্ট করা খুবই সাধারণ। এই ফিচারটি গ্রাফ ডেটাবেসের সমস্ত নোড এবং সম্পর্কের তথ্য এক্সপোর্ট করার জন্য ব্যবহৃত হয়।
উদাহরণ:
নিওফোরজে থেকে নোডের তথ্য CSV ফরম্যাটে এক্সপোর্ট করতে নিচের কোডটি ব্যবহার করা যেতে পারে:
CALL apoc.export.csv.all("exported_data.csv", {})
এখানে apoc.export.csv.all কমান্ডটি গ্রাফের সব ডেটা এক্সপোর্ট করবে এবং একটি CSV ফাইল তৈরি করবে যার নাম হবে exported_data.csv।
২. JSON ফরম্যাটে ডেটা এক্সপোর্ট
নিওফোরজে থেকে JSON ফরম্যাটে ডেটা এক্সপোর্ট করার জন্য apoc.export.json.all কমান্ড ব্যবহার করা হয়, যা সমস্ত গ্রাফের ডেটা JSON ফরম্যাটে এক্সপোর্ট করে।
উদাহরণ:
CALL apoc.export.json.all("exported_data.json", {})
এখানে apoc.export.json.all কমান্ডটি JSON ফরম্যাটে সমস্ত গ্রাফ ডেটা এক্সপোর্ট করে।
৩. গ্রাফ ডেটাবেস ফরম্যাটে এক্সপোর্ট
গ্রাফML বা GraphSON ফরম্যাটে ডেটা এক্সপোর্ট করার মাধ্যমে আপনি আপনার গ্রাফ ডেটাবেসকে অন্য প্ল্যাটফর্মে ব্যবহার করতে পারবেন।
উদাহরণ:
গ্রাফML ফরম্যাটে ডেটা এক্সপোর্ট করতে:
CALL apoc.export.graphml.all("exported_graph.graphml", {})
এখানে apoc.export.graphml.all কমান্ডটি গ্রাফ ডেটাবেসের সমস্ত ডেটা GraphML ফরম্যাটে এক্সপোর্ট করবে।
নিওফোরজে ডেটা ইম্পোর্ট এবং এক্সপোর্টের সহজ পদ্ধতি প্রদান করে, যা ডেটাবেস ম্যানেজমেন্ট এবং অন্যান্য সিস্টেমের সাথে ইন্টিগ্রেশনকে সহজ করে তোলে। CSV, JSON, এবং গ্রাফ ডেটাবেস ফরম্যাটে ডেটা ইম্পোর্ট ও এক্সপোর্ট করার সুবিধা প্রদান করে, যা বিভিন্ন প্রকার ডেটা সোর্স এবং ডেস্টিনেশন সিস্টেমের মধ্যে ডেটা ট্রান্সফার করতে সক্ষম।
নিওফোরজে (Neo4J) গ্রাফ ডেটাবেসে ডেটা ইনপোর্ট করার জন্য বিভিন্ন ফাইল ফরম্যাট যেমন CSV, JSON এবং অন্যান্য ফাইল ফরম্যাট ব্যবহার করা যেতে পারে। নিওফোরজে এই ডেটা ইম্পোর্ট প্রক্রিয়াকে সহজ করে তুলতে কিছু কার্যকরী টুল এবং কৌশল প্রদান করে। এই প্রক্রিয়ায়, আমরা দেখব কীভাবে CSV, JSON, এবং অন্যান্য ফাইল ফরম্যাট থেকে ডেটা নিওফোরজে তে ইম্পোর্ট করা যায়।
CSV ফাইল থেকে ডেটা ইম্পোর্ট (Importing Data from CSV)
নিওফোরজে তে CSV ফাইল থেকে ডেটা ইম্পোর্ট করতে সাইফার কুয়েরি (Cypher Query) ব্যবহার করা হয়। CSV ফাইল সাধারণত টেবুলার ডেটা ধারণ করে, এবং প্রতিটি সেল একটি প্রপার্টি হিসেবে ব্যবহার করা হয়। নিওফোরজে তে CSV ইম্পোর্ট করার জন্য প্রথমে আপনাকে ফাইলটি আপলোড করতে হবে এবং তারপর কুয়েরি দিয়ে ডেটা লোড করতে হবে।
১. CSV ফাইল আপলোড করা (Uploading CSV File)
নিওফোরজে এর CSV ইম্পোর্টের জন্য সাধারণত ফাইলটি আপলোড করতে হয়। আপনি import ডিরেক্টরিতে ফাইল আপলোড করতে পারেন বা সরাসরি ইউআরএল থেকে ফাইল লোড করতে পারেন।
LOAD CSV WITH HEADERS FROM 'file:///path/to/your/file.csv' AS row
এখানে, WITH HEADERS নির্দেশ করে যে প্রথম লাইনটি হেডার হিসেবে বিবেচিত হবে।
২. CSV ফাইল থেকে নোড এবং রিলেশনশিপ তৈরি (Creating Nodes and Relationships from CSV)
CSV ফাইলের মাধ্যমে আপনি নোড (Nodes) এবং রিলেশনশিপ (Relationships) তৈরি করতে পারেন। উদাহরণস্বরূপ, যদি আপনার কাছে একটি CSV ফাইল থাকে যা ব্যক্তির নাম এবং বয়সের তথ্য ধারণ করে, এবং আপনি নোড তৈরি করতে চান:
LOAD CSV WITH HEADERS FROM 'file:///persons.csv' AS row
CREATE (p:Person {name: row.name, age: toInteger(row.age)})
এখানে, row.name এবং row.age CSV ফাইলের কলাম হিসেবে কাজ করবে এবং প্রতিটি ব্যক্তির জন্য একটি Person নোড তৈরি হবে।
৩. CSV ফাইল থেকে রিলেশনশিপ তৈরি (Creating Relationships from CSV)
CSV ফাইল থেকে শুধুমাত্র নোড নয়, সম্পর্কও তৈরি করা যায়। উদাহরণস্বরূপ, যদি আপনার CSV ফাইলে দুটি ব্যক্তি এবং তাদের বন্ধুত্বের সম্পর্ক থাকে, আপনি এটি এভাবে ইম্পোর্ট করতে পারেন:
LOAD CSV WITH HEADERS FROM 'file:///friendships.csv' AS row
MATCH (a:Person {name: row.person1}), (b:Person {name: row.person2})
CREATE (a)-[:FRIEND_WITH]->(b)
এখানে, friendships.csv ফাইলে দুইটি ব্যক্তি এবং তাদের বন্ধুত্বের সম্পর্ক রয়েছে এবং এটি গ্রাফ ডেটাবেসে রিলেশনশিপ তৈরি করবে।
JSON ফাইল থেকে ডেটা ইম্পোর্ট (Importing Data from JSON)
নিওফোরজে JSON ফাইল থেকে ডেটা ইম্পোর্ট করতে APOC (A Package of Procedures and Functions) এক্সটেনশন ব্যবহার করতে হয়। APOC হল একটি শক্তিশালী টুল যা JSON, XML এবং অন্যান্য ফাইল ফরম্যাট থেকে ডেটা ইম্পোর্ট করতে সাহায্য করে।
১. JSON ফাইল আপলোড করা (Uploading JSON File)
নিওফোরজে তে JSON ফাইল আপলোড করার জন্য প্রথমে ফাইলটি ইম্পোর্ট ডিরেক্টরিতে রাখতে হবে। তারপর apoc.load.json ফাংশন ব্যবহার করে JSON ফাইল থেকে ডেটা লোড করা যাবে।
CALL apoc.load.json("file:///path/to/your/file.json") YIELD value
RETURN value
এটি JSON ফাইলের সমস্ত ডেটা লোড করবে এবং আপনি যেকোনো প্রপার্টি এক্সেস করতে পারবেন।
২. JSON থেকে নোড তৈরি (Creating Nodes from JSON)
JSON ফাইলের ডেটা থেকে নোড তৈরি করার জন্য নিম্নলিখিত কুয়েরি ব্যবহার করা যেতে পারে:
CALL apoc.load.json("file:///persons.json") YIELD value
CREATE (p:Person {name: value.name, age: value.age})
এখানে, persons.json ফাইলে name এবং age প্রপার্টি সহ JSON অবজেক্ট থাকলে এটি সেগুলি থেকে Person নোড তৈরি করবে।
৩. JSON থেকে রিলেশনশিপ তৈরি (Creating Relationships from JSON)
JSON ফাইল থেকে সম্পর্ক তৈরি করতে আপনি এরকম কুয়েরি ব্যবহার করতে পারেন:
CALL apoc.load.json("file:///friendships.json") YIELD value
MATCH (a:Person {name: value.person1}), (b:Person {name: value.person2})
CREATE (a)-[:FRIEND_WITH]->(b)
এখানে, friendships.json ফাইলে দুটি ব্যক্তির নাম এবং তাদের বন্ধুত্বের সম্পর্ক থাকবে এবং এটি গ্রাফ ডেটাবেসে একটি FRIEND_WITH সম্পর্ক তৈরি করবে।
অন্যান্য ফাইল ফরম্যাট থেকে ডেটা ইম্পোর্ট (Importing Data from Other File Formats)
নিওফোরজে তে CSV এবং JSON ছাড়াও আরও অন্যান্য ফাইল ফরম্যাট যেমন XML, Excel ইত্যাদির থেকেও ডেটা ইম্পোর্ট করা সম্ভব। এসব ফাইলের জন্যও APOC লাইব্রেরি ব্যবহার করা যেতে পারে।
১. XML ফাইল ইম্পোর্ট (Importing XML Files)
CALL apoc.load.xml("file:///data.xml") YIELD value
RETURN value
এটি XML ফাইল থেকে ডেটা লোড করবে এবং তারপর আপনি এর প্রপার্টি এক্সেস করতে পারবেন।
২. Excel ফাইল ইম্পোর্ট (Importing Excel Files)
Excel ফাইলের ডেটা ইম্পোর্ট করতে APOC লাইব্রেরি ব্যবহার করা যেতে পারে, তবে এটি কিছু কাস্টম কনফিগারেশন প্রয়োজন করতে পারে। সাধারণভাবে, LOAD CSV কৌশল ব্যবহার করে Excel থেকে ডেটা লোড করা হয়।
সারাংশ
নিওফোরজে তে CSV, JSON এবং অন্যান্য ফাইল ফরম্যাট থেকে ডেটা ইম্পোর্ট করার জন্য সাইফার কুয়েরি এবং APOC লাইব্রেরি ব্যবহৃত হয়। CSV ফাইল থেকে নোড এবং রিলেশনশিপ তৈরি, JSON ফাইল থেকে ডেটা লোড করা এবং অন্যান্য ফরম্যাট থেকে ডেটা ইম্পোর্ট করার মাধ্যমে গ্রাফ ডেটাবেসে ডেটা ইনপোর্ট করার প্রক্রিয়া অনেক সহজ হয়ে যায়।
Neo4j-এ ডেটা CSV ফাইল থেকে ইমপোর্ট করার জন্য LOAD CSV কমান্ড ব্যবহার করা হয়। এই কমান্ডটি CSV ফাইল থেকে ডেটা লোড করে এবং সেই ডেটার উপর বিভিন্ন গ্রাফ অপারেশন সম্পাদন করতে সাহায্য করে।
Neo4j-এ CSV ফাইল থেকে ডেটা ইমপোর্ট করা একটি সাধারণ প্রক্রিয়া, যা Cypher Query Language ব্যবহার করে করা হয়। এখানে CSV ফাইলের প্রতিটি রেকর্ডকে Node বা Relationship হিসেবে পরিণত করা হয়।
LOAD CSV সিনট্যাক্স
LOAD CSV WITH HEADERS FROM 'file:///path/to/your/file.csv' AS row
এখানে:
LOAD CSV: CSV ফাইল থেকে ডেটা লোড করতে ব্যবহৃত কমান্ড।WITH HEADERS: যদি আপনার CSV ফাইলের প্রথম লাইনটিতে হেডার থাকে, তবে এটি ডেটাকে হেডারের মাধ্যমে মাপার জন্য ব্যবহার করা হয়।'file:///path/to/your/file.csv': আপনার CSV ফাইলের সঠিক লোকেশন। এটিfile://স্কিমা দিয়ে শুরু হয়।AS row: CSV ফাইলের প্রতিটি রেকর্ডকে একটি row নামে সংজ্ঞায়িত করা হয়েছে, যাতে পরবর্তী কোয়েরিতে প্রতিটি কলাম অ্যাক্সেস করা যাবে।
1. Basic CSV Import (Node Creation)
উদাহরণ:
ধরা যাক, আপনার কাছে একটি CSV ফাইল রয়েছে যেখানে person.csv ফাইলটি এই ধরনের ডেটা ধারণ করে:
name,age,city
Alice,30,Dhaka
Bob,25,Chattogram
Charlie,35,Sylhet
এটি Person নামে একটি নোড তৈরি করবে, যেখানে প্রতিটি ব্যক্তির নাম, বয়স, এবং শহরের প্রপার্টি থাকবে।
Cypher Query:
LOAD CSV WITH HEADERS FROM 'file:///person.csv' AS row
CREATE (p:Person {name: row.name, age: toInteger(row.age), city: row.city});
এখানে:
LOAD CSV WITH HEADERSকমান্ডটিperson.csvফাইল থেকে ডেটা লোড করবে।CREATE (p:Person {...}): প্রতিটি রেকর্ডের জন্য একটিPersonনোড তৈরি করবে, যেখানেname,age, এবংcityপ্রপার্টি থাকবে।toInteger(row.age): বয়সটি একটি পূর্ণসংখ্যা হিসেবে কনভার্ট করার জন্যtoInteger()ফাংশন ব্যবহার করা হচ্ছে।
2. Importing Data with Relationships
ধরা যাক, আপনার কাছে দুটি CSV ফাইল রয়েছে, একটি person.csv এবং একটি relationship.csv।
person.csv:
name,age,city
Alice,30,Dhaka
Bob,25,Chattogram
Charlie,35,Sylhet
relationship.csv:
person1,person2,relationship
Alice,Bob,FRIENDS_WITH
Bob,Charlie,FRIENDS_WITH
এখন, আপনি দুটি CSV ফাইল ব্যবহার করে নোড এবং রিলেশনশিপ তৈরি করতে পারবেন। person1 এবং person2 কলাম থেকে Person নোডের মধ্যে FRIENDS_WITH সম্পর্ক তৈরি করা হবে।
Cypher Query:
// Create Person Nodes
LOAD CSV WITH HEADERS FROM 'file:///person.csv' AS row
CREATE (p:Person {name: row.name, age: toInteger(row.age), city: row.city});
// Create Relationships
LOAD CSV WITH HEADERS FROM 'file:///relationship.csv' AS row
MATCH (a:Person {name: row.person1}), (b:Person {name: row.person2})
CREATE (a)-[:FRIENDS_WITH]->(b);
এখানে:
- প্রথম কোয়েরি
person.csvফাইল থেকে Person নোড তৈরি করবে। - দ্বিতীয় কোয়েরি
relationship.csvফাইল থেকে Person নোডের মধ্যেFRIENDS_WITHসম্পর্ক তৈরি করবে।
3. Filtering and Transformation during Import
আপনি যখন CSV ফাইল থেকে ডেটা লোড করেন, তখন ডেটা ফিল্টার বা রূপান্তর (transformation) করার জন্য কিছু শর্তও প্রয়োগ করতে পারেন।
উদাহরণ:
ধরা যাক, আপনার কাছে একটি product.csv ফাইল আছে এবং আপনি শুধুমাত্র price ৫০ এর বেশি পণ্যের তথ্য লোড করতে চান।
product.csv:
name,category,price
Laptop,Electronics,60000
Phone,Electronics,20000
Shirt,Fashion,1500
Cypher Query:
LOAD CSV WITH HEADERS FROM 'file:///product.csv' AS row
WITH row WHERE toInteger(row.price) > 5000
CREATE (p:Product {name: row.name, category: row.category, price: toInteger(row.price)});
এখানে:
WITH row WHERE toInteger(row.price) > 5000:price৫,০০০ এর বেশি এমন পণ্যগুলো ফিল্টার করা হচ্ছে।CREATE (p:Product {...}): শুধুমাত্র নির্বাচিত পণ্যগুলো Product নোডে তৈরি হচ্ছে।
4. Handling Large CSV Files
যদি আপনার CSV ফাইলটি খুব বড় হয়, তবে আপনি এটি ছোট ছোট অংশে ভাগ করে লোড করতে পারেন। LOAD CSV কমান্ডটি সব ডেটা একবারে লোড করার চেষ্টা করে, তবে বড় ডেটা ফাইল হলে এটি পারফরম্যান্স ইস্যু তৈরি করতে পারে।
ব্যবহারিক পদ্ধতি:
LIMIT ব্যবহার করে ডেটাকে ছোট অংশে ভাগ করে লোড করুন:
LOAD CSV WITH HEADERS FROM 'file:///yourfile.csv' AS row WITH row LIMIT 1000 CREATE (n:Node {name: row.name});- Skip and Limit ব্যবহার করে পৃষ্ঠায় পৃষ্ঠায় ডেটা লোড করুন।
সংক্ষেপ
Neo4j-এ LOAD CSV কমান্ড ব্যবহার করে CSV ফাইল থেকে ডেটা ইমপোর্ট করা খুব সহজ। আপনি Node, Relationship, এবং Properties তৈরি করতে Cypher Query Language ব্যবহার করতে পারেন। এছাড়া, আপনি Transformation, Filtering, এবং Batch Importing ফিচারগুলোও ব্যবহার করতে পারেন বড় ডেটাসেটগুলো সহজে ও কার্যকরভাবে লোড করতে।
নিওফোরজে (Neo4J) এ APOC Plugin ব্যবহার করে ডেটা ইমপোর্ট (Import) এবং এক্সপোর্ট (Export) করা যায়। APOC (Awesome Procedures on Cypher) হল নিওফোরজে (Neo4J) এর একটি শক্তিশালী প্লাগইন যা অনেক ধরনের অতিরিক্ত ফাংশনালিটি প্রদান করে, যেমন ডেটা ইমপোর্ট, এক্সপোর্ট, গ্রাফ বিশ্লেষণ, ডেটা ট্রান্সফরমেশন ইত্যাদি। APOC প্লাগইন ব্যবহার করে আপনি সহজেই বিভিন্ন ফর্ম্যাটে ডেটা ইমপোর্ট এবং এক্সপোর্ট করতে পারবেন।
APOC Plugin ইনস্টল করা
নিওফোরজে (Neo4J) এ APOC প্লাগইন ব্যবহার করতে হলে প্রথমে এটি ইনস্টল করতে হবে। এটি সাধারনত নিওফোরজে এর ডিফল্ট প্লাগইন হিসেবে অন্তর্ভুক্ত থাকে, তবে যদি না থাকে, তবে আপনি এটি নিম্নলিখিত কমান্ড দিয়ে ইনস্টল করতে পারেন:
ডাউনলোড এবং ইনস্টল: APOC প্লাগইন ইনস্টল করতে নিচের কমান্ডটি ব্যবহার করুন:
bin/neo4j-admin install-apoc- নিওফোরজে সার্ভার পুনরায় চালু করুন।
ডেটা ইমপোর্ট করা (Data Import)
APOC প্লাগইন ব্যবহার করে আপনি বিভিন্ন ফাইল ফরম্যাট (যেমন CSV, JSON, XML) থেকে ডেটা নিওফোরজে গ্রাফ ডেটাবেসে ইমপোর্ট করতে পারেন।
১. CSV ফাইল ইমপোর্ট করা
যদি আপনার কাছে একটি CSV ফাইল থাকে, আপনি APOC এর apoc.load.csv ফাংশন ব্যবহার করে তা নিওফোরজে ডেটাবেসে ইমপোর্ট করতে পারেন।
সাধারণ সিনট্যাক্স:
CALL apoc.load.csv("file:///path/to/your/file.csv") YIELD map AS row
MERGE (p:Person {name: row.name, age: toInteger(row.age)})
RETURN p;
এখানে:
apoc.load.csv("file:///path/to/your/file.csv"): ফাইল লোকেশন এবং নাম নির্দেশ করে।YIELD map AS row: ফাইলের প্রতিটি সারিকে একটি মাপ (map) হিসেবে প্রক্রিয়া করা হয়।MERGE: এটি ডেটাবেসে নোড তৈরি বা আপডেট করে।
২. JSON ফাইল ইমপোর্ট করা
আপনি যদি JSON ফাইল ইমপোর্ট করতে চান, তবে apoc.load.json ব্যবহার করতে পারেন:
CALL apoc.load.json("file:///path/to/your/file.json") YIELD value
MERGE (p:Person {name: value.name, age: value.age})
RETURN p;
এখানে:
apoc.load.json: JSON ফাইলের ডেটা লোড করে।value: JSON অবজেক্টের প্রতিটি এন্ট্রি।
ডেটা এক্সপোর্ট করা (Data Export)
APOC প্লাগইন ডেটা এক্সপোর্ট করার জন্যও বিভিন্ন ফাংশন প্রদান করে। আপনি বিভিন্ন ফরম্যাটে ডেটা এক্সপোর্ট করতে পারেন, যেমন CSV, JSON, XML ইত্যাদি।
১. CSV ফাইল এক্সপোর্ট করা
ডেটাবেস থেকে ডেটা CSV ফাইলে এক্সপোর্ট করতে apoc.export.csv.all ফাংশন ব্যবহার করা হয়।
CALL apoc.export.csv.all("file:///path/to/your/output.csv", {})
YIELD file, nodes, relationships, properties, time
RETURN file, nodes, relationships, properties, time;
এখানে:
apoc.export.csv.all: সমস্ত নোড এবং সম্পর্ক CSV ফাইলে এক্সপোর্ট করে।file:///path/to/your/output.csv: আউটপুট ফাইলের লোকেশন।
২. JSON ফাইল এক্সপোর্ট করা
ডেটাবেস থেকে JSON ফাইল এক্সপোর্ট করতে apoc.export.json.all ফাংশন ব্যবহার করা হয়।
CALL apoc.export.json.all("file:///path/to/your/output.json", {})
YIELD file, nodes, relationships, properties, time
RETURN file, nodes, relationships, properties, time;
এখানে:
apoc.export.json.all: সমস্ত ডেটা JSON ফরম্যাটে এক্সপোর্ট করে।file:///path/to/your/output.json: আউটপুট ফাইলের লোকেশন।
ডেটা ফিল্টার ও কাস্টম এক্সপোর্ট
আপনি নির্দিষ্ট নোড বা সম্পর্ক এক্সপোর্ট করতে চান, তাহলে apoc.export.csv.query বা apoc.export.json.query ব্যবহার করতে পারেন। উদাহরণস্বরূপ:
CALL apoc.export.csv.query(
"MATCH (p:Person) WHERE p.age > 30 RETURN p.name, p.age",
"file:///path/to/your/output.csv", {}
)
YIELD file, nodes, relationships, properties, time
RETURN file, nodes, relationships, properties, time;
এখানে:
- কুয়েরি দিয়ে নির্দিষ্ট ডেটা ফিল্টার করা হয়েছে, যেমন
p.age > 30।
APOC এর অন্যান্য ডেটা ইমপোর্ট এবং এক্সপোর্ট ফাংশন
- apoc.export.graphml: গ্রাফML ফরম্যাটে ডেটা এক্সপোর্ট।
- apoc.export.rdf: RDF ফরম্যাটে ডেটা এক্সপোর্ট।
- apoc.import.json: JSON ফাইল ইমপোর্ট করার জন্য।
- apoc.import.graphml: গ্রাফML ফাইল ইমপোর্ট করার জন্য।
সারাংশ
APOC প্লাগইন নিওফোরজে (Neo4J) এর একটি শক্তিশালী টুল যা ডেটা ইমপোর্ট ও এক্সপোর্টের কাজকে সহজ এবং কার্যকরী করে তোলে। CSV, JSON, এবং XML ফরম্যাটে ডেটা ইমপোর্ট ও এক্সপোর্ট করতে APOC এর বিভিন্ন ফাংশন যেমন apoc.load.csv, apoc.load.json, apoc.export.csv.all, এবং apoc.export.json.all ব্যবহার করা যায়। এর মাধ্যমে ডেটাবেসে ডেটা স্থানান্তর এবং এক্সপোর্ট প্রক্রিয়া আরও দ্রুত ও নির্ভুলভাবে সম্পাদিত হয়।
নিওফোরজে (Neo4J) ডেটাবেসে স্টোর করা গ্রাফ ডেটা বিভিন্ন ফরম্যাটে এক্সপোর্ট করা যেতে পারে, যেমন CSV এবং JSON ফরম্যাট। এই এক্সপোর্ট প্রক্রিয়া ডেটাকে অন্য সিস্টেমে ট্রান্সফার করতে বা বিশ্লেষণের জন্য ব্যবহার করা যায়। এখানে আমরা CSV এবং JSON ফরম্যাটে ডেটা এক্সপোর্ট করার পদ্ধতি আলোচনা করব।
CSV ফরম্যাটে ডেটা এক্সপোর্ট (Exporting Data to CSV)
নিওফোরজে-তে ডেটাকে CSV (Comma-Separated Values) ফরম্যাটে এক্সপোর্ট করা খুবই সাধারণ একটি প্রক্রিয়া, যা বিশেষত টেবিলরূপে ডেটা বিশ্লেষণের জন্য উপকারী। Cypher কুয়েরি ব্যবহার করে ডেটা CSV ফরম্যাটে এক্সপোর্ট করা হয়।
CSV ফরম্যাটে এক্সপোর্ট করার উদাহরণ
ধরা যাক, আমাদের Person লেবেলযুক্ত নোড এবং FRIEND_OF সম্পর্ক রয়েছে, এবং আমরা এই তথ্যগুলো CSV ফরম্যাটে এক্সপোর্ট করতে চাই। এর জন্য নিচের কুয়েরি ব্যবহার করা হয়:
MATCH (p:Person)-[:FRIEND_OF]->(f:Person)
RETURN p.name AS Person1, f.name AS Friend
এই কুয়েরি দুটি নোডের (Person) মধ্যে সম্পর্কিত তথ্য বের করে এনে CSV ফরম্যাটে এক্সপোর্ট করবে, যেখানে Person1 এবং Friend কলাম থাকবে।
CSV ফরম্যাটে ডেটা এক্সপোর্ট করা
এক্সপোর্ট করা ডেটা সেভ করতে নিম্নলিখিত কুয়েরি ব্যবহার করা হয়:
CALL apoc.export.csv.query(
"MATCH (p:Person)-[:FRIEND_OF]->(f:Person) RETURN p.name AS Person1, f.name AS Friend",
"friends.csv",
{}
)
এখানে, apoc.export.csv.query ফাংশনটি ব্যবহার করে কুয়েরির ফলাফলকে friends.csv নামক ফাইলে সেভ করা হবে।
JSON ফরম্যাটে ডেটা এক্সপোর্ট (Exporting Data to JSON)
JSON (JavaScript Object Notation) ফরম্যাট গ্রাফ ডেটার জন্য একটি জনপ্রিয় বিন্যাস, যা বিভিন্ন প্ল্যাটফর্মে ডেটা ট্রান্সফারের জন্য সুবিধাজনক। JSON ফরম্যাটে ডেটা এক্সপোর্ট করার জন্যও Cypher কুয়েরি ব্যবহার করা হয়।
JSON ফরম্যাটে এক্সপোর্ট করার উদাহরণ
ধরা যাক, আমরা Person লেবেলযুক্ত নোডের নাম এবং বয়স (age) সম্পর্কিত তথ্য JSON ফরম্যাটে এক্সপোর্ট করতে চাই:
MATCH (p:Person)
RETURN p.name AS Name, p.age AS Age
এই কুয়েরি দুটি প্রপার্টি (name এবং age) JSON ফরম্যাটে এক্সপোর্ট করবে।
JSON ফরম্যাটে ডেটা এক্সপোর্ট করা
JSON ফরম্যাটে ডেটা এক্সপোর্ট করার জন্য নিচের কুয়েরি ব্যবহার করা হয়:
CALL apoc.export.json.query(
"MATCH (p:Person) RETURN p.name AS Name, p.age AS Age",
"people.json",
{}
)
এখানে, apoc.export.json.query ফাংশনটি কুয়েরির ফলাফলকে people.json নামক ফাইলে সেভ করবে।
সারাংশ
নিওফোরজে (Neo4J) ডেটা এক্সপোর্ট করার জন্য বিভিন্ন টেকনিক ব্যবহার করা যেতে পারে, তবে CSV এবং JSON ফরম্যাট খুবই জনপ্রিয়। CSV ফরম্যাটে ডেটা এক্সপোর্ট করতে apoc.export.csv.query ফাংশন এবং JSON ফরম্যাটে ডেটা এক্সপোর্ট করতে apoc.export.json.query ফাংশন ব্যবহার করা হয়। এই টেকনিকগুলির মাধ্যমে গ্রাফ ডেটাবেসের ডেটা সহজেই অন্য সিস্টেমে ট্রান্সফার বা বিশ্লেষণের জন্য প্রস্তুত করা যায়।
Read more