ফাইল থেকে ডেটাবেস ডেটা ইনজেকশন

Apache Camel-এ ফাইল থেকে ডেটাবেসে ডেটা ইনজেকশন একটি সাধারণ কাজ যা ডেটা ইন্টিগ্রেশন প্রক্রিয়ায় খুব কার্যকরী। এটি আপনাকে CSV, JSON, XML বা অন্যান্য ফরম্যাটের ফাইল থেকে ডেটা নিয়ে ডেটাবেসে সন্নিবেশ করতে সাহায্য করে। নিচে একটি উদাহরণসহ এই প্রক্রিয়া ব্যাখ্যা করা হলো।

প্রয়োজনীয় ডিপেন্ডেন্সি

প্রথমে, আপনার pom.xml-এ নিম্নলিখিত ডিপেন্ডেন্সিগুলি যোগ করুন:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-core</artifactId>
    <version>3.14.0</version> <!-- Use the latest version -->
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jdbc</artifactId>
    <version>3.14.0</version>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-file</artifactId>
    <version>3.14.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version> <!-- Use the latest version -->
</dependency>

১. File থেকে ডেটা পড়া

আমরা ধরতে পারি যে, আমাদের একটি CSV ফাইল আছে যার নাম data.csv, এবং এটি নিম্নলিখিত ফরম্যাটে ডেটা ধারণ করে:

name,age
Alice,30
Bob,25
Charlie,35

২. Route তৈরি করা

এখন, আমরা একটি Camel রাউট তৈরি করব যা ফাইল থেকে ডেটা পড়বে এবং ডেটাবেসে সন্নিবেশ করবে।

import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;

public class FileToDatabaseExample {
    public static void main(String[] args) throws Exception {
        CamelContext camelContext = new DefaultCamelContext();

        camelContext.addRoutes(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                // CSV ফাইল থেকে ডেটা পড়া
                from("file:input?fileName=data.csv&noop=true") // noop=true ফাইল মুছে ফেলবে না
                    .unmarshal().csv() // CSV ডেটা অবজেক্টে রূপান্তর
                    .split(body()) // প্রতিটি রেকর্ড আলাদাভাবে প্রক্রিয়া করা
                    .process(exchange -> {
                        // CSV থেকে ডেটা বের করা
                        String[] record = exchange.getIn().getBody(String[].class);
                        String name = record[0];
                        String age = record[1];

                        // SQL ইনসার্ট স্টেটমেন্ট তৈরি করা
                        String sql = String.format("INSERT INTO persons (name, age) VALUES ('%s', %s)", name, age);
                        exchange.getIn().setBody(sql);
                    })
                    .to("jdbc:dataSource"); // JDBC ডেটাবেস কনফিগারেশন
            }
        });

        // JDBC ডেটাবেস সংযোগ কনফিগার করা
        // ডেটাবেস URL, ইউজারনেম, পাসওয়ার্ড ইত্যাদি এখানে কনফিগার করুন
        camelContext.getRegistry().bind("dataSource", createDataSource());

        camelContext.start();

        // কিছু সময়ের জন্য চালিয়ে রাখা
        Thread.sleep(10000); // 10 সেকেন্ড

        camelContext.stop();
    }

    private static DataSource createDataSource() {
        // ডেটাবেসের জন্য ডেটাসোর্স তৈরি করুন
        // উদাহরণস্বরূপ, HikariCP বা BasicDataSource ব্যবহার করতে পারেন
        // Return the configured DataSource
    }
}

৩. ডেটাবেস কনফিগারেশন

createDataSource মেথডে আপনার ডেটাবেসের সংযোগ তথ্য (যেমন URL, ইউজারনেম, পাসওয়ার্ড) কনফিগার করুন।

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import javax.sql.DataSource;

private static DataSource createDataSource() {
    HikariConfig config = new HikariConfig();
    config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
    config.setUsername("root");
    config.setPassword("password");
    return new HikariDataSource(config);
}

উপসংহার

Apache Camel ব্যবহার করে ফাইল থেকে ডেটাবেসে ডেটা ইনজেকশন করা একটি সহজ প্রক্রিয়া। উপরের উদাহরণগুলি ব্যবহার করে, আপনি CSV ফাইল থেকে ডেটা পড়তে পারেন এবং সেই ডেটা একটি ডেটাবেসে সন্নিবেশ করতে পারেন। এই পদ্ধতি বিভিন্ন ডেটা সোর্স এবং ডেটা ফরম্যাটের সাথে কাজ করার জন্য অত্যন্ত কার্যকরী।

আরও দেখুন...

Promotion