সমস্ত রেকর্ড (> 1000) কীভাবে জিজ্ঞাসা করবেন এবং সিএসভিতে রফতানি করবেন?


13

আমি অর্কিগিস ফোরামে পোস্ট করেছি তবে কোনও উত্তর পাই নি। কেউ আমাকে কীভাবে সমাধান করতে পারেন বলতে পারেন?

ধরুন আপনার কাছে বায়ুর গতির তথ্যের সাথে অক্টোবর 1 থেকে 31 ডিসেম্বর পর্যন্ত একটি যানবাহন ট্র্যাকিং রেকর্ড রয়েছে। সমস্ত ডেটা জিওডাটাবেজে (sde-sqlserver) এবং ফিচার স্তর হিসাবে আরকিজিআইএস সার্ভার 10.1-এ সংরক্ষণ করা হয়েছে। একটি টাইম স্লাইডার বাতাসের গতি সহ একটি গাড়ির অবস্থান প্রদর্শন করে।

যখন কোনও ব্যবহারকারী সময়সীমা পরিবর্তন করে (উদাঃ অক্টোবর ২২ - অক্টোবর)), প্রথম ক্যোয়ারী টাস্ক (গণনার জন্য) ব্যাপ্তির মধ্যে থাকা বৈশিষ্ট্যের সংখ্যা গণনা করে। সাধারণত দুই দিনেরও বেশি 1000 এর ফলাফল পাওয়া যায় (উদাঃ 1750) (যদিও আমি এই সীমাটি পরিবর্তন করতে চাই না)।

সমস্ত রেকর্ড হাতে রাখার জন্য আমি আরেকটি ক্যোয়ারী টাস্ক (এক্সিকিউটিফোর্ডস) ব্যবহার করেছি তবে মডুলাসের সাথে পরিমাণ হ্রাস করেছি (1/10) যা এখনও বাতাসের গতির সামগ্রিক প্রবণতার জন্য একটি সুন্দর চার্ট তৈরির জন্য যথেষ্ট পরিমাণ। তবে, আমি সিএসভিতে একটি সম্পূর্ণ ডেটাসেট ডাউনলোড করার একটি বিকল্পও দিতে চাই (এই ক্ষেত্রে 1750 সারি)

এখানে, আমি সময়সীমার মধ্যে বিশিষ্ট ডেটাসেট পুনরুদ্ধার করতে ফাইন্ডটাস্ক ব্যবহার করেছি।

try {
    //console.log(app.objIDs);
    var attribs;
    csvdata = "";

    var find = new esri.tasks.FindTask("http://xyz.com/arcgis/rest/services/Realtime/Car_Wind_WM/MapServer");
    var params = new esri.tasks.FindParameters();
    params.layerIds = [0];
    params.searchFields = ["OBJECTID"];

    for (var i = 0; i < app.objIDs.length; i++) {
        params.searchText = app.objIDs[i];
        find.execute(params, function (results) {
            attribs = results[0].feature.attributes;
            csvdata += attribs.Date_Central + ',' + attribs.Longitude + "," + attribs.Latitude + "," + attribs.windspeed + "\n";
            console.log(csvdata); //1
        }, function (error) {
            alert("Error");
        });
    }
} catch (error) {
    alert("Change the time range first");
}
console.log(csvdata); //2
setTimeout(function () {
    formatData(app.csvdata);
}, (3 * 1000));

csvdata কনসোল.লগ 2 এ অপরিবর্তিত ছিল, যদিও সমস্ত csvdata (কনসোল.লগ 1 এ) কনসোলে ডেটা দেখায়। ইস্যুটি find.execute সম্পূর্ণ হওয়ার সময় মনে হয়েছে, তাই আমি সেটটাইমআউট যুক্ত করেছি।

এটি কাজ মনে হয় তবে আমি সময়সীমা বাড়িয়ে দিলে তা স্পষ্টতই প্রকাশ পায় না।

সমস্ত রেকর্ড (1000 - 200,000) নির্দিষ্ট সময়সীমার মধ্যে রেখে সিএসভিতে রফতানি করার কি আছে?

উত্তর:


6

বিকল্পগুলির মধ্যে একটি হ'ল সিস্টেমটি আপনাকে রেকর্ডগুলি ফিরিয়ে দেয়। এটি আপনাকে সমস্ত 1750 সারিগুলির রেকর্ড নম্বর দেবে যদিও এটি কেবল 1000 এর জন্য ডেটা ফেরত দেবে।

আপনি যখন রেকর্ডের তালিকা পেয়েছেন (সেগুলি সাজানো হয়েছে কিনা তা সম্পর্কে আমি নিশ্চিত নই) প্রথম 1000 টি টানুন, তারপরে প্রথম এবং শেষ ওবিজেসিটিডগুলিকে সংযোগস্থলে যুক্ত করুন

OBJECTID>=firstobjectid and  OBJECTID<=lastobjectid

যতবার প্রয়োজন ততবার পুনরাবৃত্তি করুন।


6

আমি কোয়েরি টাস্ক ব্যবহার করে এবং রিটার্নআইডসনলি = সত্য সেট করার পরামর্শ দিচ্ছিলাম

নোট করুন যে বৈশিষ্ট্য সেট প্রতিক্রিয়াটিতে অন্তর্ভুক্ত বৈশিষ্ট্যগুলির সংখ্যার সীমা রয়েছে, আইডি অ্যারে প্রতিক্রিয়াতে ফিরে আসা অবজেক্ট আইডির সংখ্যার কোনও সীমা নেই। ক্লায়েন্টরা রিটার্নআইডসঅনলি = সত্য উল্লেখ করে অবজেক্ট আইডির সাবসেটের জন্য বৈশিষ্ট্য সেটগুলির অনুরোধ করে সমস্ত ক্যোয়ারী অনুসারে অবজেক্ট আইডি পেতে এটি ব্যবহার করতে পারে।

এটি জাভাস্ক্রিপ্ট অ্যাপির কোয়েরি টাস্কে পাওয়া যাবে

এটি সিলভারলাইট এপিআইয়ের ক্যোয়ারিতেও সমর্থিত ।

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


এটি বুঝতে পারিনি - দুর্দান্ত! প্রথম লাইনে আপনি রিটার্নইডসকে বলতে চেয়েছিলেন = কেবল সত্য?
অ্যাডেসো

ওফ, এটি সত্য, আমি এখনই আমার উত্তর পরিবর্তন করেছি।
কर्क কুইকেনডাল

ধন্যবাদ কর্ক আমি স্লিভারলাইট এপিআইতে "রিটার্নআইডসঅনলি = ট্রু" জানতাম তবে আপনি উল্লিখিত হিসাবে আমি জাভাস্ক্রিপ্ট এপিআই তে খুঁজে পাইনি। আমি এমএসএসইএসটি আউট পরীক্ষা করব।
ব্যবহারকারী 14693

5
  1. আপনি যদি পয়েন্ট এবং দম্পতি বৈশিষ্ট্যগুলি নিয়ে কাজ করে থাকেন তবে আপনি অবশ্যই পরিষেবা রেকর্ডের সীমা 10 কে বা তারও বেশি বাড়িয়ে দিতে পারেন - বিশেষত যদি আপনি গ্রাফিক্স তৈরি না করে থাকেন।

  2. আপনি একটি অ্যাসিনক্রোনাস জিওপ্রোসেসিং কাজ করতে পারেন এবং সার্ভারে একটি আউটপুট ফোল্ডারে জেনারেট করার পরে ডেটা নিতে পারেন।

  3. যদি আপনি ক্লোজ এবং আপনার ক্যোয়ারির সময় অনুসারে কোনও আদেশ ফেলে দেন। আপনি শেষ রেকর্ডে সময়টি পড়তে এবং পরবর্তী রেকর্ডগুলির সেটটি সময়ের চেয়ে আরও বেশি পেতে পারেন। আপনি আপনার সময়সীমাটির শেষ না হওয়া পর্যন্ত চালিয়ে যান।

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