DataWeave হল MuleSoft এর একটি শক্তিশালী ডেটা ট্রান্সফরমেশন ভাষা যা মূলত ডেটা ম্যাপিং এবং ফরম্যাট কনভার্সনের জন্য ব্যবহৃত হয়। DataWeave আপনাকে JSON, XML, CSV, এবং অন্যান্য ফরম্যাটের মধ্যে ডেটা কনভার্ট করতে এবং একাধিক সোর্স থেকে ডেটা একত্রিত করতে সহায়তা করে। DataWeave কে MuleSoft ফ্লোতে ব্যবহৃত হয় যেখানে ডেটার পরিবর্তন, ম্যানিপুলেশন এবং কনভার্সন করা হয়।
DataWeave এর মূল বৈশিষ্ট্য
- বিভিন্ন ফরম্যাটে ডেটা ম্যানিপুলেশন: JSON, XML, CSV, ইত্যাদি ফরম্যাটে ডেটা এক্সট্র্যাকশন, ম্যানিপুলেশন এবং কনভার্ট করা যায়।
- ট্রান্সফরমেশন এক্সপ্রেশন: DataWeave একটি এক্সপ্রেশন-ভিত্তিক ভাষা, যেখানে আপনি সরাসরি ডেটা ম্যানিপুলেশন এবং কনভার্সন করতে পারেন।
- ডেটা ফিল্টারিং: DataWeave ডেটা ফিল্টারিং এবং ম্যাপিংয়ের জন্য সহজ টুলস প্রদান করে।
- কাস্টম কনভার্সন: JSON থেকে XML বা CSV থেকে JSON-এর মধ্যে কাস্টম কনভার্সন করতে DataWeave ব্যবহার করা যায়।
DataWeave Integration: উদাহরণ সহ
ধরা যাক, আমরা একটি JSON ডেটাকে XML ফরম্যাটে রূপান্তর করতে চাই এবং সেই সাথে কিছু ফিল্টারিং বা ডেটা ম্যানিপুলেশন করতে চাই। মিউলসফট ফ্লোতে DataWeave ব্যবহার করে এটি করা যাবে।
উদাহরণ ১: JSON থেকে XML এ DataWeave ট্রান্সফরমেশন
JSON ইনপুট:
{
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com",
"address": {
"city": "New York",
"zip": "10001"
}
}
DataWeave স্ক্রিপ্ট:
%dw 2.0
output application/xml
var jsonInput = {
"name": "John Doe",
"age": 30,
"email": "john.doe@example.com",
"address": {
"city": "New York",
"zip": "10001"
}
}
---
{
"person": {
"name": jsonInput.name,
"age": jsonInput.age,
"contact": {
"email": jsonInput.email
},
"address": {
"city": jsonInput.address.city,
"zipcode": jsonInput.address.zip
}
}
}
কোড ব্যাখ্যা:
%dw 2.0: DataWeave 2.0 এর ভার্সন নির্দেশ করে।output application/xml: আউটপুট হিসেবে XML ফরম্যাট নির্ধারণ করে।var jsonInput: JSON ডেটার ভ্যারিয়েবল ডিফাইন করা হয়েছে, যেখানে ইনপুট ডেটা রাখা হয়েছে।- ডেটা ম্যাপিং: JSON থেকে XML এ ডেটা ম্যাপিং করে
personএলিমেন্টের মধ্যেname,age,email, এবংaddressফিল্ডগুলি সাজানো হয়েছে।
আউটপুট (XML):
<person>
<name>John Doe</name>
<age>30</age>
<contact>
<email>john.doe@example.com</email>
</contact>
<address>
<city>New York</city>
<zipcode>10001</zipcode>
</address>
</person>
এখানে, JSON ডেটা XML ফরম্যাটে রূপান্তরিত হয়েছে, যেখানে কিছু ডেটা স্ট্রাকচার পরিবর্তন করা হয়েছে।
উদাহরণ ২: CSV থেকে JSON এ DataWeave ট্রান্সফরমেশন
CSV ইনপুট:
name,age,city
John Doe,30,New York
Jane Smith,25,Los Angeles
DataWeave স্ক্রিপ্ট:
%dw 2.0
output application/json
var csvInput = readUrl("classpath://input.csv", "application/csv")
---
{
"people": csvInput map ((item) -> {
"fullName": item.name,
"age": item.age,
"location": item.city
})
}
কোড ব্যাখ্যা:
readUrl(): CSV ফাইলটিclasspath://input.csvথেকে রিড করা হয়েছে।map(): CSV ফাইলের প্রতিটি লাইনে একটি কাস্টম ম্যাপিং করা হয়েছে যেখানেname,age, এবংcityফিল্ডগুলো JSON অবজেক্টে ম্যাপ করা হয়েছে।output application/json: আউটপুট হিসেবে JSON নির্ধারণ করা হয়েছে।
আউটপুট (JSON):
{
"people": [
{
"fullName": "John Doe",
"age": 30,
"location": "New York"
},
{
"fullName": "Jane Smith",
"age": 25,
"location": "Los Angeles"
}
]
}
এখানে, CSV ডেটা JSON ফরম্যাটে রূপান্তরিত হয়েছে, এবং কাস্টম ফিল্ড নামও পরিবর্তন করা হয়েছে (name থেকে fullName, city থেকে location).
উদাহরণ ৩: DataWeave দিয়ে ডেটা ফিল্টার করা
ধরা যাক, আপনার কাছে একটি JSON ডেটা আছে এবং আপনি এতে থেকে শুধু কিছু নির্দিষ্ট ফিল্ড বের করতে চান, যেমন age 30 বা তার বেশি এমন সব রেকর্ড। DataWeave ব্যবহার করে এটি খুব সহজেই করা যায়।
JSON ইনপুট:
[
{"name": "John", "age": 30, "city": "New York"},
{"name": "Jane", "age": 25, "city": "Los Angeles"},
{"name": "Mike", "age": 35, "city": "Chicago"}
]
DataWeave স্ক্রিপ্ট:
%dw 2.0
output application/json
var jsonInput = [
{"name": "John", "age": 30, "city": "New York"},
{"name": "Jane", "age": 25, "city": "Los Angeles"},
{"name": "Mike", "age": 35, "city": "Chicago"}
]
---
jsonInput filter ((item) -> item.age >= 30)
কোড ব্যাখ্যা:
filter(): এই ফাংশনটি JSON অ্যারের মধ্যে থেকে শুধুমাত্রage30 বা তার বেশি এমন রেকর্ডগুলো ফিল্টার করে।output application/json: আউটপুট হিসেবে JSON প্রদান করা হচ্ছে।
আউটপুট (JSON):
[
{"name": "John", "age": 30, "city": "New York"},
{"name": "Mike", "age": 35, "city": "Chicago"}
]
এখানে, JSON অ্যারের মধ্যে থেকে শুধুমাত্র সেই রেকর্ডগুলো ফিল্টার করা হয়েছে যাদের age 30 বা তার বেশি।
DataWeave এর সুবিধা
- সহজ ট্রান্সফরমেশন: JSON, XML, CSV এবং অন্যান্য ফরম্যাটের মধ্যে ডেটা ট্রান্সফর্ম করা সহজ।
- এক্সপ্রেশন ল্যাঙ্গুয়েজ: DataWeave এক্সপ্রেশন ভাষা আপনাকে জটিল ডেটা ম্যানিপুলেশন দ্রুত করতে সাহায্য করে।
- ডেটা ফিল্টারিং: খুব সহজেই ডেটা ফিল্টার এবং ম্যানিপুলেট করা যায়, যা ডেটা প্রসেসিংয়ের কাজকে আরও দ্রুত ও কার্যকরী করে তোলে।
- পারফরম্যান্স: DataWeave একটি হাইপারফরম্যান্স ট্রান্সফরমেশন ইঞ্জিন, যা বড় ডেটা সেটের জন্য উপযোগী।
সারাংশ
DataWeave হল MuleSoft এর একটি অত্যন্ত শক্তিশালী এবং ফ্লেক্সিবল ডেটা ট্রান্সফরমেশন ভাষা। এটি JSON, XML, CSV সহ বিভিন্ন ফরম্যাটের মধ্যে ডেটা ট্রান্সফর্মেশন, ম্যানিপুলেশন, এবং কনভার্সনের জন্য ব্যবহৃত হয়। DataWeave ব্যবহার করে আপনি সহজেই ডেটা এক্সট্র্যাক্ট, ফিল্টার, এবং কাস্টমাইজ করতে পারেন, যা বিশেষভাবে API ইন্টিগ্রেশন এবং ডেটা প্রসেসিংয়ের ক্ষেত্রে খুবই উপকারী।
Read more