দ্রুপাল 7 এর সাথে ভিউ 3 ইন্টিগ্রেশন সহ বৃহত ফ্ল্যাট-ফাইল ডেটা উত্স আমদানি করা হচ্ছে


13

আমার লক্ষ্য হ'ল দ্রুপাল using ব্যবহার করে বেশ কয়েকটি খুব বড় ফ্ল্যাট-ফাইল ডেটা উত্স ( সিএসভি , ফিক্সড প্রস্থ এবং এক্সএমএল ডক্স) এর মধ্যে কেবল পঠনযোগ্য ডেটা অ্যাক্সেসের জন্য একটি দ্রুত, নির্ভরযোগ্য এবং স্বয়ংক্রিয় পদ্ধতি তৈরি করা যা ভিউ 3 ব্যবহারের বিরুদ্ধে জিজ্ঞাসা করা যেতে পারে মডিউল। আমি ইতিমধ্যে উপলব্ধ মডিউলগুলি ব্যবহার করতে পছন্দ করব তবে কাস্টম মডিউল তৈরি করাও একটি বিকল্প।

কাজের জন্য উপযুক্ত নয় মডিউল এবং পদ্ধতিগুলি ছড়িয়ে দেওয়ার জন্য, আমি যে ফাইলগুলির সাথে কাজ করছি তার পরিসংখ্যান এখানে রইল:

  • বার্ষিক আমদানি: 8,500,000 লাইন সিএসভি ফাইল। (বার্ষিক সাজা এবং পুনরায় লোড করা হয়েছে primary প্রাথমিক কী রয়েছে))
  • সাপ্তাহিক আমদানি: 350,000 লাইন স্থির প্রস্থ ফাইল। (সাপ্তাহিক সাজা এবং পুনরায় লোড করা হয়েছে primary প্রাথমিক কী নেই ))
  • প্রতি ঘন্টা আমদানি: 3,400 লাইন সিএসভি ফাইল। (যতবার সম্ভব আপডেট এবং সিঙ্ক করতে চান তবে প্রতি 20 মিনিটের বেশি হবে না primary প্রাথমিক কী রয়েছে)
  • দৈনিক আমদানি: 200 আইটেম এক্সএমএল ফাইল। (প্রতিদিন খচিত এবং পুনরায় লোড করা হয়েছে primary প্রাথমিক কী রয়েছে)

তিনটি ফর্ম্যাটের মধ্যে রূপান্তর করা কোনও সমস্যা নয় এবং এটি আমদানি পারফরম্যান্সকে উন্নত করবে বা আরও ভাল সরঞ্জাম উপলব্ধ করার সুযোগ দিলে তা করা যায়। ( স্থির প্রস্থ থেকে সিএসভি ইত্যাদির জন্য AWK ইত্যাদি) ক্রোন এবং স্ক্রিপ্টগুলির মাধ্যমে পুনরুদ্ধার এবং রূপান্তর অটোমেশন সহজ , তবে তবুও ড্রুপাল 7 ইন্টিগ্রেশনটি স্বয়ংক্রিয় করতে হবে। যতক্ষণ না ভ্যু সম্পর্ক ব্যবহার করে ডেটা উল্লেখ করতে পারে ততক্ষণ কাস্টম সারণীর ব্যবহারও সম্ভব।

ড্রুপাল 7 এর সাথে এই জাতীয় ডেটা সংহত করার জন্য সর্বোত্তম অনুশীলনটি কী হবে? এছাড়াও, আমি কি ডেটা বা আমি সম্পাদন করার চেষ্টা করছি সম্পর্কিত কোনও গুরুত্বপূর্ণ বিবরণ রেখে দিচ্ছি?


এখানে কয়েকটি প্রকল্প আমি বর্তমানে সন্ধানের জন্য সমাধান খুঁজছি are বৃহত্তর ডেটা আমদানি নিয়ে কাজ করার সময় কোনটি রুট নিতে হবে তা সিদ্ধান্ত নিতে অন্যদের সহায়তা করতে আমি এটিকে প্রসারিত করতে চাই।

নোডগুলিতে ডেটা আমদানি করা:

  • ফিডস (বর্তমানে ডি 7 এর জন্য আলফা)

ফিডগুলি নির্ভরযোগ্যভাবে ডেটা আমদানি করবে। ছোট ডেটা উত্সগুলির জন্য গতি যুক্তিসঙ্গত তবে 300k + টেবিলের জন্য খুব ধীর।

ক্রোন এবং জব শিডিয়ুলার (বর্তমানে ডি 7 এর জন্য আলফা) ব্যবহার করে অটোমেশন উপলব্ধ ।

উত্স ডেটাতে কোনও সূচক বা অনন্য কী উপলব্ধ না হওয়া এটি ব্যবহার করা কঠিন করে তুলছে। এটি ফিডগুলির চেয়ে দ্রুত, তবে এখনও খুব বড় টেবিলগুলি আমদানি করতে ধীর।

অটোমেশন ড্রাশ এবং ক্রোন এর মাধ্যমে উপলব্ধ।

নোডের পরিবর্তে কাস্টম টেবিল

ডেটা মডিউল খুব আশাপ্রদ দেখায়, কিন্তু মুহূর্তে D7 জন্য খুবই ত্রুটি মুক্ত নয়। অটোমেশন এবং আমদানির গতির প্রয়োজনীয়তাগুলি ডেটা ব্যবহার করে সহজেই পূরণ করা যায় তবে নির্ভরযোগ্যতার অভাব হয়। মতামত ইন্টিগ্রেশন (লিঙ্ক d6 জন্য) খুব আশাপ্রদ দেখায়।

রেফারেন্সের জন্য এটি যুক্ত করা হয়েছে। এই মুহুর্তে কোনও ডি 7 প্রার্থী নেই, তবে এটি একটি কাস্টম মডিউলটির সূচনা পয়েন্ট হিসাবে কাজ করতে পারে।

রেফারেন্সের জন্য এটি যুক্ত করা হয়েছে। এটি ড্রপাল in. এ টেবিল উইজার্ড দ্বারা শোষিত হয়েছে বলে মনে হয় আবার, কেবলমাত্র রেফারেন্সের জন্য যুক্ত।

দেখার একীকরণের জন্য সারণি উইজার্ড (কেবলমাত্র ডি 6) প্রয়োজন বলে মনে হচ্ছে । রেফারেন্সের জন্য যুক্ত করা হয়েছে, তবে ভিউগুলির প্রয়োজনীয়তা পূরণ করে না।


@ এমপিডি - একটি সম্ভাব্য সমাধান এবং প্রসারিত মডিউল হিসাবে "কাস্টম টেবিলগুলি" যুক্ত হয়েছে। এই সংযোজনের জন্য আপনাকে ধন্যবাদ।

উত্তর:


8

আমার অন্ত্রে বলুন যে এই পরিকল্পনাটি আপনার সার্ভারগুলিকে আগুন ধরিয়ে দেবে ...

গম্ভীরভাবে, আপনি যদি এত বেশি ডেটা মন্থন করে থাকেন তবে আমার মনে হয় আপনার কোনও ডাটা বহিরাগত ডেটাসোর্সে রাখা উচিত এবং তারপরে এটি দ্রুপালের সাথে সংহত করা দরকার।

আমার প্রাথমিক চিন্তাটি বাহ্যিক ডেটার জন্য দুটি ডাটাবেস ব্যবহার করবে, যাতে আপনি সাপ্তাহিক আমদানি ডাব্লু / ও ডিস্টার্বড জিনিসগুলি খুব বেশি করতে পারেন। অন্য কথায়, ডাটাবেস এ আপ এবং চলমান পান এবং তারপরে বি-তে আমদানি করুন, আমদানি হয়ে গেলে, বি কে সরাসরি উত্স করুন। তারপরে মুছুন এবং এ-তে আমদানি করুন

আমি বাহ্যিক ডেটাসোর্সগুলিকে দ্রুপালের সাথে একীকরণের প্রচুর কাজ করেছি এবং এটি আসলে তেমন কঠিন নয়। দ্রুপলকে পিএইচপি 5 ঘৃণার জন্য ট্রানজিশন পরিকল্পনায় আমি একটি সংক্ষিপ্তসার দিয়েছি । এটি ড্রুপাল for এর জন্য ছিল, তবে একই জিনিসটি মূলত ড্রুপাল to এর ক্ষেত্রে প্রযোজ্য sen মূলত, আপনি সিসিকে / ফিল্ডস এপিআই আপনার নিজের ইন্টারফেসের সাহায্যে কী অনুকরণ করে।

যদিও সাপ্তাহিক ডাটাবেসের জন্য কোনও ইউইউডি না থাকা সত্যই কাজগুলিতে একটি রেঞ্চ ফেলে দেয়। এই অংশটি যদিও অনেক প্রয়োজন, আরও এমন একটি প্রশ্ন / একটি ফোরামে সরবরাহ করা যেতে পারে।

আপনি যদি সত্যিই আমদানির পথে যেতে না চান তবে আমি ফিডস এবং মাইগ্রেটে জামিন দেব এবং আপনার নিজস্ব আমদানি স্ক্রিপ্ট লিখব। মূলত, আপনি সূচি.পি.পি. থেকে প্রাথমিক বইয়ের স্ট্র্যাপ প্রক্রিয়াটি করেন, আপনার ডেটাসোর্সকে জিজ্ঞাসা করেন, আপনার নোডগুলি তৈরি করুন এবং তারপরে সেভ করুন। প্রোগ্রামগতভাবে নোড তৈরি করা সহজ।

এটি দিয়ে শুরু করার সর্বোত্তম উপায় হ'ল ইউআই দিয়ে নোড তৈরি করা, তারপরে এটি মুদ্রণ_আর, এবং আপনার আমদানি স্ক্রিপ্টে কোডটির সাথে অবজেক্টটি প্রতিলিপি করা। শ্রমশক্তি, ফাইল এবং নোডেরেফগুলি শক্ত অংশ, তবে এই বিষয়গুলির বৈশিষ্ট্যগুলি তৈরি করতে আপনাকে কেবল API এর এই অংশগুলির সাথে পরিচিত হতে হবে। আপনার বৈধ নোড অবজেক্টটি একবার হয়ে গেলে আপনি কেবল একটি নোড_সেভ () করতে পারেন। নিশ্চিত হয়ে নিন যে আপনি set_Time_limit () দিয়ে খুব বড় সীমা নির্ধারণ করেছেন যাতে আপনার স্ক্রিপ্টটি চলমান।

বর্ণনামূলককরণ / বিবরণ নীচে সম্পাদনা করুন:

ব্যক্তিগতভাবে, আমরা কিছুক্ষণ আগে ডেটা আমদানির জন্য অবদানের মডিউল ভিত্তিক পদ্ধতির ব্যবহার বন্ধ করে দিয়েছি। তারা বেশিরভাগই ভাল কাজ করে তবে আমরা তাদের সাথে লড়াই করার জন্য খুব বেশি সময় ব্যয় করে শেষ করেছি এবং ব্যয় / সুবিধা খুব কম ছিল।

আপনার যদি সত্যই ড্রুপালের সঠিক ডেটা দরকার হয় তবে কাস্টম আমদানি স্ক্রিপ্ট সম্পর্কে আমার মতামত পরিবর্তন হয়নি। আপনি উল্লেখ করেছেন যে মডিউলগুলির মধ্যে একটি নোড অবজেক্টগুলি কীভাবে তৈরি করবেন তার সূচনা পয়েন্ট হিসাবে ব্যবহার করা যেতে পারে, তারপরে আপনার ডেটা বিল্ড নোডগুলির মধ্য দিয়ে লুপ করুন এবং সেগুলি সংরক্ষণ করুন। আপনার যদি কোনও পিকে থাকে তবে আপনি সহজেই যুক্তি যুক্ত করতে পারেন ডাটাবেস এবং নোড_লোড (), সংশোধন করতে এবং সংরক্ষণ করতে। আপনি যদি ড্রুপাল এপিআই জানেন তবে একটি আমদানি স্ক্রিপ্ট সত্যিই কয়েক ঘন্টা কাজ।

যদি ভিউজ ইন্টিগ্রেশনটি একটি কী (এবং এটি সম্পাদনার উপর ভিত্তি করে মনে হয়) এবং আপনি বাহ্যিক সারণীগুলির পদ্ধতির করতে চান, তবে আপনার সর্বোত্তম বিকল্পটি হ'ল আপনার ডেটা ভিউতে আনার জন্য একটি কাস্টম মডিউল করুন এবং হুক_ভিউ_ডাটা বাস্তবায়ন করুন । সম্ভাব্যতার চেয়ে বেশি, আপনি আপনার ডেটাসোর্স সমর্থন করার জন্য যে কোনও উপায়ে কাস্টম মডিউল করবেন, সুতরাং এই হুক যুক্ত করা আরও বেশি কাজ হওয়া উচিত নয়। আপনাকে এগিয়ে নিয়ে যাওয়ার জন্য টিডাব্লু এবং ডেটা মডিউলগুলির কয়েকটি উদাহরণ থাকা উচিত।

ব্যক্তিগতভাবে, যদিও, আমি বাইরের ডেটাগুলির সাথে ভিউগুলির একীকরণটি সত্যই সার্থক হতে দেখিনি। যে ক্ষেত্রে আমি এটি বিবেচনা করেছি, ডেটা ভিউ ভিত্তিক পদ্ধতির সাথে ভালভাবে কাজ করার জন্য খুব "আলাদা" ছিল। উপরের "ঘৃণা" লিঙ্কে বর্ণিত পদ্ধতিটি ব্যবহার করে আমি কেবল শেষ করছি।


আপনি তিনটি দুর্দান্ত পয়েন্ট নিয়ে এসেছেন এবং আমি সেই অনুসারে আমার প্রশ্নটি সামঞ্জস্য করতে যাচ্ছি। গণ আমদানি ও রফতানিটি দুর্দান্ত হবে তবে কয়েক হাজার, বা সম্ভবত লক্ষ লক্ষ নোড এই মুহুর্তে আমদানি করার সময় সর্বোত্তম, অবাস্তব বলে মনে হয়। কাস্টম টেবিলগুলি যদি তাদের দৃশ্যের সাথে সংহত করা যায় তবে খুব ব্যবহারযোগ্য হতে পারে। আপনার জবাবের জন্য আপনাকে ধন্যবাদ এমএমডি।
সাইট্রিকগুয়ে

2

আমি মনে করি একটি নোড ভিত্তিক (বা এমনকি সত্তা ভিত্তিক) অ্যাপ্রোচ আপনার সার্ভারটিকে কয়েক মিলিয়ন নোড দিয়ে জ্বালিয়ে দেবে। এছাড়াও, আপনার প্রতি ঘন্টা আমদানি দেখে, এর অর্থ হ'ল আপনি সেকেন্ডে কমপক্ষে একবার নোড_সেভ () বানাবেন। এটি ড্রুপালের পক্ষে খুব বেশি এবং কার্য সম্পাদনের সমস্যা তৈরি করে problem

এর পেছনের কারণটি হ'ল এই বিষয়বস্তুর জন্য, আপনার কোনও হুক প্রক্রিয়া লাগবে না, আপনার পাঠাটো প্রয়োজন হবে না (তবে আপনি ম্যানুয়ালি ওরফে তৈরি করতে পারেন, এটি পাঠাটোের তুলনায় অনেক সস্তা), আপনার ক্ষেত্রের প্রয়োজন হবে না ... একটি লিখুন সরল "INSERT" ক্যোয়ারী নোড_স্যাভ () বা সত্তা_সেভ () এর চেয়ে 100 গুণ দ্রুত।

1 / আইএমএইচও সর্বোত্তম বিকল্পটি হ'ল আপনার ডেটা আমদানির জন্য একটি কাস্টম টেবিল এবং একটি কাস্টম মডিউল, তারপরে দ্রুপাল ইন্টিগ্রেশনের জন্য ভিউ হ্যান্ডলার লিখুন।

2 / ডাটাবেস ক্যাশে প্রতি ঘন্টা আমদানির সময় অবৈধ হয়। যদি এটি খুব বেশি সময় নেয় তবে আপনি একটি প্রতিলিপি সম্পর্কে ভাবতে পারেন। সবচেয়ে সহজ আকারে, দুটি অভিন্ন টেবিল তৈরি করুন, প্রথমটি ব্যবহার করুন, দ্বিতীয়টিতে আমদানি করুন, দ্বিতীয় টেবিলটি ব্যবহার করতে আপনার ড্রুপাল কনফিগারেশনটি স্যুইচ করুন, ২ য় টেবিলটি 1 ম-তে সিঙ্ক করুন (তারপরে optionচ্ছিকভাবে প্রথমটিতে ফিরে যেতে পারেন)। আর একটি সমাধান আপনার কাস্টম আমদানি স্ক্রিপ্টে রয়েছে, INSERT / UPDATE কোয়েরিগুলি প্রস্তুত এবং গোষ্ঠী করুন, তারপরে ডাটাবেস লেখার সময় হ্রাস করার জন্য এটি কেবলমাত্র একটি লেনদেনের শেষে প্রেরণ করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.