DataWeave হল MuleSoft এর একটি শক্তিশালী ডাটা ট্রান্সফরমেশন (Data Transformation) ভাষা, যা বিভিন্ন ডেটা ফরম্যাটের মধ্যে ট্রান্সফরমেশন করার জন্য ব্যবহৃত হয়। এটি API ইন্টিগ্রেশন এবং ডেটা ম্যানিপুলেশনের জন্য একটি গুরুত্বপূর্ণ উপাদান, যা বিশেষভাবে JSON, XML, CSV এবং অন্যান্য ফরম্যাটের মধ্যে ডেটার রূপান্তর করতে সহায়তা করে।
DataWeave এর ভূমিকা
MuleSoft প্ল্যাটফর্মে DataWeave একটি অন্যতম গুরুত্বপূর্ণ টুল যা ডেটা ট্রান্সফরমেশন, ডেটা এক্সট্র্যাকশন, এবং ম্যানিপুলেশন কাজগুলো সম্পাদন করতে ব্যবহৃত হয়। এটি ডেটার ফরম্যাট কনভার্শন, ডেটা এক্সট্র্যাকশন এবং ডেটা ম্যানিপুলেশনে পারফরম্যান্স-বান্ধব সমাধান প্রদান করে।
DataWeave এর বৈশিষ্ট্যসমূহ
- ডেটা ফরম্যাট কনভার্শন: DataWeave JSON, XML, CSV, YAML, এবং অন্যান্য ডেটা ফরম্যাটে ট্রান্সফরমেশন এবং কনভার্শন সহজভাবে পরিচালনা করতে সক্ষম।
- ইন্টিগ্রেশন এবং API রূপান্তর: এটি API ইন্টিগ্রেশন প্ল্যাটফর্মের জন্য বিভিন্ন ডেটা ফরম্যাটের মধ্যে ট্রান্সফরমেশন সহজভাবে সম্পাদন করতে ব্যবহৃত হয়।
- অপারেটর এবং ফাংশন সমর্থন: DataWeave বিভিন্ন ফাংশন এবং অপারেটরের মাধ্যমে ডেটার উপর ম্যানিপুলেশন করে, যেমন ম্যাপিং, এক্সট্র্যাকশন, অ্যারে/অবজেক্ট হ্যান্ডলিং, ফিল্টারিং ইত্যাদি।
- ফ্লেক্সিবল সিনট্যাক্স: এটি একটি declarative ভাষা, যার মাধ্যমে ডেটার কাঠামো নির্ধারণ করা হয় এবং এটি স্বাভাবিক ভাষার মতোই সহজ এবং পড়তে সুবিধাজনক।
- পাশের ডেটা সিস্টেমের সাথে সহজ ইন্টিগ্রেশন: DataWeave সহজে বিভিন্ন ডেটা সোর্স এবং সিস্টেমের মধ্যে ডেটা এক্সট্র্যাক্ট, ম্যানিপুলেট, এবং রূপান্তর করতে সক্ষম।
DataWeave সিনট্যাক্স
DataWeave একটি লিনিয়ার, declarative ভাষা যা এক্সপ্রেশন এবং ফাংশন ব্যবহার করে ডেটা প্রসেস করে। এর সিনট্যাক্স সহজ এবং স্ট্রাকচারড, যেখানে ইনপুট এবং আউটপুট ডেটার ফরম্যাট স্পেসিফাই করা হয়।
উদাহরণ: JSON থেকে XML এ রূপান্তর
%dw 2.0
output application/xml
var inputData = [
{ "name": "John", "age": 30 },
{ "name": "Alice", "age": 25 }
]
---
{
people: inputData map ((item) -> {
person: {
name: item.name,
age: item.age
}
})
}
এই উদাহরণে, inputData একটি JSON অ্যারে হিসাবে ডিফাইন করা হয়েছে। DataWeave ব্যবহার করে এটি XML ফরম্যাটে রূপান্তরিত হয়েছে। map ফাংশন ব্যবহার করে অ্যারের প্রতিটি আইটেমের জন্য একটি person অবজেক্ট তৈরি করা হয়েছে।
উদাহরণ: CSV থেকে JSON এ রূপান্তর
%dw 2.0
output application/json
var csvData = "name,age\nJohn,30\nAlice,25"
---
csvData as Csv
এখানে, csvData একটি CSV ফরম্যাটে ডেটা রয়েছে এবং DataWeave as Csv ফাংশন ব্যবহার করে এটি JSON এ রূপান্তর করছে। DataWeave CSV ফরম্যাটকে খুব সহজেই JSON এ রূপান্তরিত করতে সক্ষম।
ডেটা ম্যানিপুলেশন
DataWeave বিভিন্ন ধরণের ডেটা ম্যানিপুলেশন অপারেশন করতে সহায়তা করে, যেমন:
- ম্যাপিং: ডেটার মান পরিবর্তন বা পুনর্গঠন।
- ফিল্টারিং: নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করা।
- এগ্রিগেটিং: ডেটা সংগ্রহ করা, যেমন অ্যারে বা অবজেক্টের মধ্যে গাণিতিক বা লজিক্যাল অপারেশন করা।
উদাহরণ: অ্যারে ফিল্টার করা
%dw 2.0
output application/json
var people = [
{ "name": "John", "age": 30 },
{ "name": "Alice", "age": 25 },
{ "name": "Bob", "age": 40 }
]
---
people filter ((person) -> person.age > 30)
এই উদাহরণে, filter ফাংশন ব্যবহার করা হয়েছে যা অ্যারের মধ্যে ৩০ বছরের বেশি বয়সের ব্যক্তিদের বেছে নিচ্ছে।
DataWeave এর ব্যবহার
- API ইন্টিগ্রেশন: বিভিন্ন API থেকে ডেটা ইন্টিগ্রেট করতে এবং তাদের মধ্যে রূপান্তর বা মানসমূহের ম্যানিপুলেশন করতে DataWeave ব্যবহার করা হয়।
- ডেটা ফরম্যাট কনভার্শন: JSON থেকে XML, CSV থেকে JSON বা অন্য ডেটা ফরম্যাটে রূপান্তর করা।
- ডেটা ট্রান্সফরমেশন: যখন বিভিন্ন ডেটাবেস বা সিস্টেমে ডেটা পরিবর্তন বা রূপান্তর প্রয়োজন হয়, তখন DataWeave কার্যকরীভাবে কাজ করে।
DataWeave এর সুবিধা
- সহজ এবং ইনটুইটিভ: DataWeave সিনট্যাক্স খুবই সরল, যা ডেভেলপারদের ডেটা রূপান্তর সহজে করতে সাহায্য করে।
- ফ্লেক্সিবল এবং স্কেলেবল: এটি API, ডেটাবেস, ক্লাউড পরিষেবা এবং অন্যান্য সিস্টেমের মধ্যে ইন্টিগ্রেশন সমাধান দেয়।
- রিয়েল-টাইম ডেটা প্রসেসিং: এটি রিয়েল-টাইম ডেটা ট্রান্সফরমেশন সমর্থন করে, যা অ্যাপ্লিকেশন বা API গুলির জন্য দ্রুত এবং দক্ষ ডেটা প্রসেসিং সম্ভব করে।
সারাংশ
DataWeave হল MuleSoft-এর একটি অত্যন্ত শক্তিশালী ডেটা ট্রান্সফরমেশন ভাষা, যা ডেটা ফরম্যাট কনভার্শন, এক্সট্র্যাকশন এবং ম্যানিপুলেশন সহজ করে তোলে। এটি API ইন্টিগ্রেশন, ডেটা ইন্টিগ্রেশন এবং বিভিন্ন সিস্টেমের মধ্যে ডেটার প্রবাহ সহজ এবং স্কেলেবল করে। JSON, XML, CSV এবং অন্যান্য ফরম্যাটের মধ্যে ডেটা রূপান্তর এবং ম্যানিপুলেশন করতে DataWeave একটি অপ্রতিদ্বন্দ্বী সরঞ্জাম।
DataWeave হল MuleSoft এর একটি শক্তিশালী ডেটা ট্রান্সফরমেশন ভাষা, যা বিভিন্ন ডেটা ফরম্যাটের মধ্যে ডেটা রূপান্তর এবং ম্যাপিং করার জন্য ব্যবহৃত হয়। এটি একটি declarative ভাষা, যা ডেটা প্রক্রিয়ার কাজগুলো খুব সহজ এবং পরিষ্কারভাবে সম্পাদন করতে সাহায্য করে। DataWeave মিউলসফটের Mule runtime এবং Anypoint Platform-এ ডেটা ট্রান্সফরমেশন সম্পাদনের জন্য প্রধান টুল হিসেবে ব্যবহৃত হয়।
DataWeave কি?
DataWeave মূলত একটি ডেটা ট্রান্সফরমেশন ভাষা যা JSON, XML, CSV, HTML, এবং অন্যান্য বিভিন্ন ফরম্যাটে ডেটা রূপান্তর করতে ব্যবহৃত হয়। এটি মিউলফ্লো (MuleFlow) এর মধ্যে ডেটা ম্যানিপুলেশন এবং ফরম্যাট রূপান্তরের কাজ করে। DataWeave এর মাধ্যমে আপনি এক ফরম্যাট থেকে অন্য ফরম্যাটে ডেটা রূপান্তর করতে পারেন, যেমন JSON থেকে XML, CSV থেকে JSON, এবং আরও অনেক কিছু।
DataWeave এর প্রয়োজনীয়তা
- ডেটা রূপান্তর: অনেক ক্ষেত্রেই বিভিন্ন সিস্টেম এবং অ্যাপ্লিকেশনগুলির মধ্যে ডেটা আদান-প্রদান করার সময় ডেটার বিভিন্ন ফরম্যাট প্রয়োজন হতে পারে। DataWeave সহজভাবে এই রূপান্তরের কাজটি সম্পাদন করে।
- এমবেডেড ট্রান্সফরমেশন লজিক: DataWeave এর মাধ্যমে আপনি MuleSoft ফ্লোতে সহজেই ডেটা ট্রান্সফরমেশন লজিক এমবেড করতে পারেন। এটি কোনও কোডিং কমপ্লেক্সিটি ছাড়াই সম্পন্ন করা সম্ভব।
- ফরম্যাট এর কাস্টমাইজেশন: DataWeave ব্যবহার করে আপনি বিভিন্ন ফরম্যাটের মধ্যে কাস্টমাইজড রূপান্তর তৈরি করতে পারেন, যেমন XML ফাইলের কিছু নির্দিষ্ট ট্যাগ থেকে ডেটা এক্সট্র্যাক্ট করা বা JSON ফরম্যাটের কাস্টম কীগুলির সাথে ডেটা ম্যানিপুলেট করা।
- ব্যবসায়িক লজিক প্রয়োগ: DataWeave ডেটা ট্রান্সফরমেশনের পাশাপাশি ব্যবসায়িক লজিক প্রয়োগ করতেও সহায়তা করে। যেমন, একটি নির্দিষ্ট মানের উপর ভিত্তি করে ডেটার ফিল্টারিং, শর্ত আরোপ, এবং ডেটা ফিল্ডগুলির মধ্যে ক্যালকুলেশন করা।
- সহজ কাস্টম ট্রান্সফরমেশন: DataWeave JSON, XML, CSV, এবং অন্যান্য ফরম্যাটের মধ্যে ট্রান্সফরমেশন করতে খুব সহজ এবং দ্রুত হয়, এবং আপনি শুধুমাত্র একটি নির্দিষ্ট ফরম্যাটের ডেটা প্রদান করলে DataWeave সেগুলিকে কাস্টম ফরম্যাটে রূপান্তর করে।
DataWeave এর প্রধান বৈশিষ্ট্য
- Declarative Syntax: DataWeave হল একটি declarative ভাষা, যেখানে আপনি রূপান্তরের ফলাফল নির্ধারণ করেন, কিভাবে তা সম্পন্ন হবে তা নির্ধারণ না করে।
- Support for Multiple Data Formats: DataWeave একাধিক ডেটা ফরম্যাট (JSON, XML, CSV, Java Objects, etc.) সমর্থন করে, যা একে একে সহজে বিভিন্ন ফরম্যাটে রূপান্তর করতে সক্ষম করে।
- Rich Functions: DataWeave বিভিন্ন ফাংশন এবং অপারেটর সরবরাহ করে, যা ডেটা ট্রান্সফরমেশনের কাজ সহজতর করে, যেমন
map,filter,join,mergeইত্যাদি। - Inline Transformations: DataWeave ফরম্যাটের মধ্যে ইনলাইন ট্রান্সফরমেশন করার ক্ষমতা রাখে, যার মাধ্যমে একাধিক ডেটা সোর্সের রূপান্তর একসাথে করা যায়।
- DataWeave Expressions: ডেটা প্রসেসিং করার সময় DataWeave এক্সপ্রেশন ব্যবহৃত হয়, যা ফিল্ডের মান পরিবর্তন, নতুন মান তৈরি, বা কন্ডিশনাল লজিক প্রয়োগ করতে ব্যবহৃত হয়।
DataWeave এর ব্যবহার
- JSON থেকে XML রূপান্তর:
%dw 2.0
output application/xml
var data = {
"name": "John",
"age": 30
}
---
{
"person": {
"name": data.name,
"age": data.age
}
}
এখানে, DataWeave এর মাধ্যমে JSON ডেটা XML ফরম্যাটে রূপান্তর করা হয়েছে।
- CSV থেকে JSON রূপান্তর:
%dw 2.0
output application/json
var csvData = "name,age\nJohn,30\nJane,25"
---
csvData splitBy("\n") map (item) -> {
"name": item splitBy(",")[0],
"age": item splitBy(",")[1] as Number
}
এখানে, CSV ফাইলের ডেটা JSON ফরম্যাটে রূপান্তর করা হয়েছে।
- ফিল্টারিং ডেটা:
%dw 2.0
output application/json
var data = [
{ "name": "John", "age": 30 },
{ "name": "Jane", "age": 25 },
{ "name": "Mike", "age": 35 }
]
---
data filter ((item) -> item.age > 30)
এখানে, DataWeave ব্যবহার করে age > 30 শর্ত অনুযায়ী ডেটা ফিল্টার করা হয়েছে।
DataWeave এর প্রয়োজনীয়তা
- ডেটা ট্রান্সফরমেশন সহজতর: DataWeave বিভিন্ন ডেটা ফরম্যাটের মধ্যে ট্রান্সফরমেশন করার প্রক্রিয়া অনেক সহজ করে তোলে। আপনি যদি বিভিন্ন ফরম্যাটে ডেটা রূপান্তর করতে চান, তবে DataWeave এর সহজ এবং শক্তিশালী ভাষা সেই কাজ দ্রুত এবং কার্যকরভাবে করতে সাহায্য করে।
- ব্যবসায়িক প্রক্রিয়া সংহত করা: একটি শক্তিশালী ডেটা ট্রান্সফরমেশন লজিক ব্যবহৃত হলে বিভিন্ন ব্যবসায়িক প্রক্রিয়া একসাথে সুসংগতভাবে কাজ করতে পারে।
- কাস্টমাইজড রূপান্তর: ব্যবসায়িক চাহিদা অনুযায়ী ডেটা ট্রান্সফরমেশন করতে DataWeave আপনাকে একটি কাস্টমাইজড এবং মডুলার পদ্ধতি প্রদান করে।
- পারফরম্যান্স অপটিমাইজেশন: DataWeave ট্রান্সফরমেশন দ্রুত এবং কার্যকরীভাবে সম্পাদিত হয়, যেহেতু এটি ডেটার মধ্যে শুধুমাত্র প্রয়োজনীয় তথ্য প্রক্রিয়া করে এবং কম সময়ে রূপান্তর সম্পন্ন করতে পারে।
সারাংশ
DataWeave হল MuleSoft এর একটি শক্তিশালী ডেটা ট্রান্সফরমেশন ভাষা যা একাধিক ডেটা ফরম্যাটের মধ্যে ডেটা রূপান্তর এবং প্রসেসিং সহজ ও কার্যকরী করে তোলে। এটি ফরম্যাটের মধ্যে ট্রান্সফরমেশন করার জন্য একটি declarative ভাষা সরবরাহ করে এবং একাধিক ডেটা ফরম্যাট (JSON, XML, CSV ইত্যাদি) সমর্থন করে। DataWeave এর সাহায্যে আপনি কাস্টম ট্রান্সফরমেশন এবং ব্যবসায়িক লজিক প্রয়োগ করতে পারবেন, যার ফলে MuleSoft এর ইন্টিগ্রেশন ফ্লো আরও শক্তিশালী এবং কার্যকরী হয়ে ওঠে।
DataWeave হল MuleSoft-এর একটি শক্তিশালী ডেটা ট্রান্সফরমেশন ল্যাঙ্গুয়েজ যা ডেটা ইন্টিগ্রেশন, ট্রান্সফরমেশন, এবং ম্যানিপুলেশন করতে ব্যবহৃত হয়। এটি মূলত Mule ESB (Enterprise Service Bus) বা MuleSoft Anypoint Platform-এ ব্যবহৃত হয়। DataWeave ডেটা কনভার্সন এবং ইন্টিগ্রেশন কাজ সহজ এবং দ্রুত করার জন্য ডিজাইন করা হয়েছে।
DataWeave ব্যবহারকারীকে বিভিন্ন ডেটা ফরম্যাটে (যেমন JSON, XML, CSV, এবং Java অবজেক্ট) ডেটা ট্রান্সফরম করতে সক্ষম করে। এটি একটি declarative স্টাইলে কাজ করে, যা খুবই শক্তিশালী এবং পাঠযোগ্য।
DataWeave এর সিনট্যাক্স
DataWeave এর সিনট্যাক্স খুবই সহজ এবং কার্যকর। DataWeave স্ক্রিপ্ট সাধারণত input (ইনপুট ডেটা), output (আউটপুট ডেটা) এবং transformation logic (ট্রান্সফরমেশন লজিক) নিয়ে গঠিত।
একটি DataWeave স্ক্রিপ্ট সাধারণত তিনটি অংশে বিভক্ত থাকে:
- Header (হেডার): ইনপুট এবং আউটপুট ডেটা ফরম্যাট উল্লেখ করা হয়।
- Body (বডি): ডেটা ট্রান্সফরমেশন লজিক থাকে।
- Footer (ফুটার): (যদি প্রযোজ্য হয়) এখানে কোন অতিরিক্ত ফাংশন বা প্রসেসিং থাকতে পারে।
উদাহরণ:
%dw 2.0
output application/json
var myName = "John"
---
{
"name": myName,
"age": 30
}
এখানে, %dw 2.0 হল DataWeave ল্যাঙ্গুয়েজ ভার্সন, output application/json হল আউটপুট ফরম্যাট, এবং তারপর আমরা একটি JSON অবজেক্ট তৈরি করছি।
DataWeave এর ফাংশন
DataWeave বিভিন্ন ধরনের ফাংশন এবং অপারেটর প্রদান করে যা ডেটা ট্রান্সফরমেশনকে সহজ করে তোলে। এখানে কিছু মূল ফাংশনের উদাহরণ দেয়া হল।
১. মান (Literal) ব্যবহার
DataWeave এর মধ্যে আপনি সরাসরি মান (literal) ব্যবহার করতে পারেন।
%dw 2.0
output application/json
---
{
"message": "Hello, World!"
}
এখানে "Hello, World!" একটি লিটারাল স্ট্রিং যা JSON আউটপুটে প্রিন্ট হবে।
২. প্রকাশ (Variables) ব্যবহার
DataWeave এ var কিওয়ার্ড দিয়ে আপনি ভ্যারিয়েবল ঘোষণা করতে পারেন।
%dw 2.0
output application/json
var name = "Alice"
---
{
"greeting": "Hello, " ++ name
}
এখানে, name ভ্যারিয়েবল ব্যবহার করে "Hello, Alice" আউটপুট তৈরি করা হয়েছে।
৩. অপারেটর (Operators) ব্যবহার
DataWeave ফাংশনগুলিতে আপনি বিভিন্ন অপারেটর যেমন ++ (কেটা অপারেটর) বা map (লিস্ট অপারেশন) ব্যবহার করতে পারেন।
%dw 2.0
output application/json
var numbers = [1, 2, 3, 4]
---
numbers map (n) -> n * 2
এখানে map অপারেটর ব্যবহার করে একটি তালিকার প্রতিটি মানকে গুণ করা হয়েছে এবং আউটপুট হবে [2, 4, 6, 8]।
৪. কন্ডিশনাল স্টেটমেন্ট (Conditional Statements)
DataWeave এ কন্ডিশনাল স্টেটমেন্ট ব্যবহার করতে if-else কাঠামো ব্যবহার করা হয়।
%dw 2.0
output application/json
var age = 25
---
{
"status": if (age > 18) "Adult" else "Minor"
}
এখানে, যদি বয়স ১৮ এর বেশি হয়, তবে "Adult" আউটপুট হবে, অন্যথায় "Minor"।
৫. ম্যাপিং (Mapping)
DataWeave এ আপনি একটি ডেটা স্রোতকে অন্য ডেটা স্ট্রাকচারে ম্যাপ করতে পারেন। যেমন, একটি JSON অবজেক্ট থেকে নির্দিষ্ট কীগুলির মান এক্সট্র্যাক্ট করা।
%dw 2.0
output application/json
var data = [
{ "name": "Alice", "age": 25 },
{ "name": "Bob", "age": 30 }
]
---
data map (item) -> {
"full_name": item.name,
"years": item.age
}
এখানে, map ফাংশন ব্যবহার করে একটি নতুন অবজেক্টে name এবং age থেকে full_name এবং years তৈরি করা হয়েছে।
৬. লিস্ট এবং ম্যাপ ফাংশন
DataWeave এ লিস্ট বা ম্যাপ ফাংশন ব্যবহার করে একাধিক অপারেশন করা যায়, যেমন filter, reduce, pluck ইত্যাদি।
%dw 2.0
output application/json
var people = [
{ "name": "Alice", "age": 25 },
{ "name": "Bob", "age": 30 },
{ "name": "Charlie", "age": 35 }
]
---
people filter (p) -> p.age > 30
এখানে filter ফাংশন ব্যবহার করে শুধু তাদের তথ্য বের করা হচ্ছে যারা বয়স ৩০ এর বেশি।
DataWeave এর আউটপুট ফরম্যাট
DataWeave বিভিন্ন আউটপুট ফরম্যাটে কাজ করতে পারে, যেমন:
application/json: JSON ফরম্যাট।application/xml: XML ফরম্যাট।text/csv: CSV ফরম্যাট।application/java: Java অবজেক্ট হিসেবে আউটপুট।
এই আউটপুট ফরম্যাটগুলি সিস্টেমের প্রয়োজন অনুযায়ী নির্বাচিত হয়।
উদাহরণ:
%dw 2.0
output application/xml
---
{
"person": {
"name": "John Doe",
"age": 30
}
}
এখানে JSON ডেটা XML ফরম্যাটে রূপান্তরিত হবে।
সারাংশ
DataWeave হল একটি শক্তিশালী এবং লাইটওয়েট ডেটা ট্রান্সফরমেশন ল্যাঙ্গুয়েজ যা ডেটা ইন্টিগ্রেশন এবং ট্রান্সফরমেশন সহজ করে তোলে। DataWeave-এর সিনট্যাক্স সরল এবং পরিষ্কার, যা ব্যবহারকারীদের সহজে ডেটা ট্রান্সফর্ম এবং ইন্টিগ্রেশন করতে সহায়তা করে। এর ফাংশনগুলি যেমন variables, conditionals, map, filter, reduce ইত্যাদি, বিভিন্ন ধরনের ডেটা অপারেশন সম্পাদন করতে সক্ষম। DataWeave বিভিন্ন ফরম্যাটের মধ্যে ট্রান্সফরমেশন করতে পারে এবং এটি একটি কার্যকরী টুল হিসেবে কাজ করে মিউলফ্লো (Mule Flow) বা API ইন্টিগ্রেশনে।
DataWeave হল মিউলসফট (MuleSoft) এর একটি শক্তিশালী ডেটা ট্রান্সফরমেশন ভাষা, যা মূলত ডেটা এক্সচেঞ্জ ফরম্যাটগুলি (যেমন JSON, XML, CSV, Java Objects ইত্যাদি) মধ্যে ট্রান্সফরমেশন সম্পন্ন করতে ব্যবহৃত হয়। DataWeave আপনাকে একাধিক ডেটা ফরম্যাটে ট্রান্সফরমেশন (রূপান্তর) করার জন্য একটি declarative এবং functional ভাষা প্রদান করে, যা ডেটা ম্যানিপুলেশন এবং প্রসেসিং সহজ এবং কার্যকর করে তোলে।
DataWeave এর মূল ধারণা
DataWeave একটি declarative ভাষা, যার মাধ্যমে আপনি কিভাবে ডেটা রূপান্তরিত হবে তা উল্লেখ করতে পারেন। এতে একটি সরল, পাঠযোগ্য এবং কার্যকরী সিনট্যাক্স রয়েছে। DataWeave মূলত তিনটি কাজ সম্পাদন করে:
- Mapping: ইনপুট ডেটা থেকে আউটপুট ডেটাতে মান বা প্রপার্টি ম্যাপ করা।
- Filtering: ডেটা ফিল্টার করা, নির্দিষ্ট শর্ত অনুযায়ী।
- Transformation: ডেটাকে এক ফরম্যাট থেকে অন্য ফরম্যাটে রূপান্তরিত করা।
DataWeave Syntax
DataWeave সিনট্যাক্স সাধারণত তিনটি প্রধান অংশে বিভক্ত:
- Source: ইনপুট ডেটা, যেমন JSON, XML, CSV ইত্যাদি।
- Transformation Logic: ডেটা ট্রান্সফর্মেশন লজিক, যেখানে আপনি ইনপুট ডেটা কিভাবে আউটপুট ডেটাতে রূপান্তরিত হবে তা উল্লেখ করেন।
- Target: আউটপুট ডেটা, যা প্রাপ্ত রূপান্তরিত ডেটা।
DataWeave উদাহরণ
1. JSON থেকে XML এ Data Transformation
ধরা যাক, আপনি একটি JSON অবজেক্টকে XML এ রূপান্তর করতে চান:
JSON ইনপুট:
{
"name": "John",
"age": 30,
"city": "New York"
}
DataWeave স্ক্রিপ্ট (JSON থেকে XML):
%dw 2.0
output application/xml
var inputJson = {
"name": "John",
"age": 30,
"city": "New York"
}
---
{
person: {
name: inputJson.name,
age: inputJson.age,
city: inputJson.city
}
}
আউটপুট (XML):
<person>
<name>John</name>
<age>30</age>
<city>New York</city>
</person>
এই উদাহরণে, inputJson ভ্যারিয়েবলটি JSON ডেটার একটি অবজেক্ট হিসেবে ডিফাইন করা হয়েছে, এবং DataWeave স্ক্রিপ্টের মাধ্যমে এটি XML ফরম্যাটে রূপান্তরিত হয়েছে।
2. CSV থেকে JSON এ Data Transformation
ধরা যাক, আপনার একটি CSV ফাইল রয়েছে, এবং আপনি সেটিকে JSON এ রূপান্তর করতে চান।
CSV ইনপুট:
name,age,city
John,30,New York
Jane,25,Los Angeles
DataWeave স্ক্রিপ্ট (CSV থেকে JSON):
%dw 2.0
output application/json
var inputCsv = read(url: "classpath://data.csv", format: "csv", header: true)
---
{
people: inputCsv map (p) -> {
name: p.name,
age: p.age,
city: p.city
}
}
আউটপুট (JSON):
{
"people": [
{
"name": "John",
"age": 30,
"city": "New York"
},
{
"name": "Jane",
"age": 25,
"city": "Los Angeles"
}
]
}
এই উদাহরণে, read() ফাংশনটি CSV ডেটাকে পড়েছে এবং তা JSON ফরম্যাটে রূপান্তরিত করা হয়েছে।
3. Filtering Data with DataWeave
DataWeave এর মাধ্যমে ডেটা ফিল্টার করা খুব সহজ। নিচের উদাহরণে একটি CSV ডেটা থেকে নির্দিষ্ট শর্ত অনুযায়ী ডেটা ফিল্টার করা হচ্ছে:
CSV ইনপুট:
name,age,city
John,30,New York
Jane,25,Los Angeles
Mike,35,Chicago
DataWeave স্ক্রিপ্ট (Filtering):
%dw 2.0
output application/json
var inputCsv = read(url: "classpath://data.csv", format: "csv", header: true)
---
{
filteredPeople: inputCsv filter (p) -> p.age > 30
}
আউটপুট (JSON):
{
"filteredPeople": [
{
"name": "Mike",
"age": 35,
"city": "Chicago"
}
]
}
এই উদাহরণে, filter ফাংশনটি ব্যবহার করা হয়েছে যাতে ৩০ বছরের বেশি বয়সের ব্যক্তি নির্বাচিত হয়।
DataWeave এর সুবিধা
- Declarative Syntax: DataWeave একটি declarative ভাষা, যেখানে আপনি শুধুমাত্র কী করতে চান তা উল্লেখ করেন, কীভাবে করতে হবে তা DataWeave নিজেই পরিচালনা করে।
- Multiple Format Support: DataWeave JSON, XML, CSV, Java, and other formats এর মধ্যে রূপান্তর করতে পারে।
- Powerful Data Transformation: DataWeave ডেটা ম্যাপিং, ফিল্টারিং, অ্যাগ্রিগেশন, এবং ট্রান্সফরমেশন করতে সক্ষম, যা আরও কার্যকরী ডেটা প্রক্রিয়া নিশ্চিত করে।
- Integrates with MuleSoft: DataWeave মিউলসফটের সাথে একীভূত হয়ে কাজ করতে পারে, যেখানে আপনি API-led ইন্টিগ্রেশন, ডেটা ফ্লো এবং সিস্টেম ইন্টিগ্রেশন সহজভাবে করতে পারেন।
উপসংহার
DataWeave একটি অত্যন্ত শক্তিশালী এবং কার্যকরী ডেটা ট্রান্সফরমেশন টুল যা মিউলসফট প্ল্যাটফর্মের মাধ্যমে সহজেই বিভিন্ন ডেটা ফরম্যাটের মধ্যে ট্রান্সফরমেশন করতে সহায়তা করে। এর ডেক্লারেটিভ সিনট্যাক্স এবং উচ্চ ক্ষমতাসম্পন্ন ট্রান্সফরমেশন ফিচারগুলি ডেটা ম্যানিপুলেশনকে দ্রুত এবং সহজ করে তোলে। JSON থেকে XML, CSV থেকে JSON বা অন্যান্য ফরম্যাটের মধ্যে ট্রান্সফরমেশন করতে DataWeave একটি অপরিহার্য টুল হিসেবে ব্যবহৃত হয়।
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