نمایش نتایج 1 تا 4 از 4

نام تاپیک: وارد کردن داده‌‌ها به صورت خودکار در HBase

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1391
    پست
    57

    وارد کردن داده‌‌ها به صورت خودکار در HBase

    سلام

    من قصد دارم با پایگاه داده H‌‌Base روی Hadoop یک مثال حل کنم به این صورت که داده‌ها رو از کاربر می‌گیره و داخل پایگاه داده Insert می‌کنه. (مشخصا دفترچه تلفن هست). برای وارد کردن داده‌ها باید یک آبجکت از نوع Put بسازم به این صورت:
    Put p = new Put(Bytes.toBytes("row1"));


    که نام سطر هم باید به عنوان ورودی داده بشه (در اینجا row1 داده شده). مشکل اینجاست که این نام سطر باید برای همه فیلدها یکتا باشه و من باید برای هر وارد کردن داده جدید کد رو دستکاری کنم و نام جدیدی بهش بدم که این کار اصولی نیست. حالا می‌خوام بدونم چطور می‌تونم این نام سطر رو به صورت اتوماتیک و خودکار generate کنم که نیاز نباشه هر بار کد رو تغییر بدم.
    اگر هم فیلیدی با این نام در پایگاه داده وجود داشته باشه، داده جدید رو روی اون رونویسی می‌کنه.

    کد کامل برنامه به صورت زیر هست:

    String fName, lName, number ;        
    Scanner in = new Scanner (System.in) ;
    System.out.println("Wainting for taking new phone number info ...\n");
    System.out.println("Please Enter first name : ");
    fName = in.nextLine() ;
    System.out.println("Please Enter last name : ");
    lName = in.nextLine() ;
    System.out.println("Please Enter number : ");
    number = in.nextLine() ;


    Configuration config = HBaseConfiguration.create();
    HTable hTable = new HTable(config, "phoneList");
    Put p = new Put(Bytes.toBytes("row1"));
    p.add(Bytes.toBytes("personal"), Bytes.toBytes("firstName")
    ,Bytes.toBytes(fName));
    p.add(Bytes.toBytes("personal"), Bytes.toBytes("lastName")
    ,Bytes.toBytes(lName));
    p.add(Bytes.toBytes("phone"), Bytes.toBytes("number")
    ,Bytes.toBytes(number));
    hTable.put(p);
    hTable.close();

    in.close();


    امیدوارم که منظورمو درست رسونده باشم. اگر جایی گنگ بود بفرمایید بیشتر توضیح بدم.

    تشکر

  2. #2

    نقل قول: وارد کردن داده‌‌ها به صورت خودکار در HBase

    نکته خیلی مهم این است که در هنگام کار با پایگاه داده های NoSQL باید نحوه نگرش و تفکر ما از تفکر رابطه ای به منطق های مربوط به خودش تغییر کند. نام سطری که فرمودید در واقع همان کلید سطر یا rowkey است که تولید خودکار و یا افزایشی آن طبق مستندات خود HBase اصلا پیشنهاد نمی شود و مشکلاتی را هم ممکن است به همراه داشته باشد.

    ولی می توانید با کد زیر بررسی کنید که سطری با آن کلید آیا وجود دارد یا خیر:

    Get get = new Get(rowkey);
    Result result = htable.get(get);
    if (!result.isEmpty()) {
    throw new Exception("Row with this key already exists.");
    }
    آخرین ویرایش به وسیله مبین رنجبر : یک شنبه 02 اسفند 1394 در 06:32 صبح
    Mobin Ranjbar

    Software Engineer, Big Data Evangelist and Startup Guy

    www.linkedin.com/in/mobinranjbar

    www.MobinRanjbar.com
    www.Hadoop.ir
    www.BigDataWatcher.com

    < به سوالات و درخواست هایی مبنی بر ارسال سورس کد ، نوشتن برنامه و ... از طریق پیام خصوصی پاسخ داده نمی شود >

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1391
    پست
    57

    نقل قول: وارد کردن داده‌‌ها به صورت خودکار در HBase

    ممنونم

    پس راه حل اصولی برای این‌که مجبور نباشیم در هر بار وارد کردن داده به پایگاه داده، کد رو تغییر بدیم چی هست؟

    با این تفاسیر فکر کنم باید کلید رو از کاربر بگیریم و بعد بررسی کنیم که قبلا وجود نداشته باشه.

  4. #4

    نقل قول: وارد کردن داده‌‌ها به صورت خودکار در HBase

    نقل قول نوشته شده توسط M.soheil مشاهده تاپیک
    ممنونم

    پس راه حل اصولی برای این‌که مجبور نباشیم در هر بار وارد کردن داده به پایگاه داده، کد رو تغییر بدیم چی هست؟

    با این تفاسیر فکر کنم باید کلید رو از کاربر بگیریم و بعد بررسی کنیم که قبلا وجود نداشته باشه.
    نیازی به تغییر کد و گرفتن کلید از کاربر نیست. به طور مثال در یک سیستم بلاگ دهی در CF مربوط به پست های بلاگ،کلید هر سطر می تواند ترکیبی از نام کاربری و زمان ایجاد باشد. به صورت زیر:

    Put put = new Put("sampleUser_" + created_time); 
    Mobin Ranjbar

    Software Engineer, Big Data Evangelist and Startup Guy

    www.linkedin.com/in/mobinranjbar

    www.MobinRanjbar.com
    www.Hadoop.ir
    www.BigDataWatcher.com

    < به سوالات و درخواست هایی مبنی بر ارسال سورس کد ، نوشتن برنامه و ... از طریق پیام خصوصی پاسخ داده نمی شود >

تاپیک های مشابه

  1. پاسخ: 24
    آخرین پست: دوشنبه 16 اسفند 1395, 18:40 عصر
  2. سوال: وارد کردن ساعت به صورت 24 ساعته در فرم ؟!
    نوشته شده توسط saman-nte در بخش C#‎‎
    پاسخ: 8
    آخرین پست: دوشنبه 15 دی 1393, 21:51 عصر
  3. پاسخ: 15
    آخرین پست: یک شنبه 03 شهریور 1392, 19:58 عصر
  4. وارد كردن ساعت به صورت 24 ساعته در تكس باكس
    نوشته شده توسط jmfnima در بخش C#‎‎
    پاسخ: 2
    آخرین پست: جمعه 25 آذر 1390, 09:55 صبح
  5. مبتدی: وارد كردن عدد به صورت خاص در ديتا گريد ويو
    نوشته شده توسط fatemeali در بخش C#‎‎
    پاسخ: 5
    آخرین پست: پنج شنبه 06 مرداد 1390, 09:52 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •