একই ক্যাসস্পেসে (এসকিউএলের অন্তর্ভুক্ত INTO এর মতো) একটি ক্যাসান্দ্রা কলাম ফ্যামিলি থেকে অন্যটিতে ডেটা অনুলিপি করার একটি ভাল উপায় কী?


11

ক্যাসান্দ্রা কলামফ্যামিলি / সারণী থেকে অন্য সারিতে সমস্ত সারি সহজেই স্থানান্তর করার উপায় অনুসন্ধান করার চেষ্টা করছেন।

COPYকমান্ড, যেমন আমি বুঝতে, একটি ভাল বিকল্প। তবে এটি যেহেতু সমস্ত ডেটা .csvডিস্কে ফেলে দেয় এবং তারপরে এটি আবার লোড হয়, আমি সাহায্য করতে পারব না তবে ইঞ্জিন করার আরও ভাল উপায় আছে কিনা তা ভাবতে পারছি না।

আমি কী বোঝাতে চাইছি তার একটি নির্দিষ্ট উদাহরণ হ'ল INSERT * FROM my_table INTO my_other_tableঅনেক SQLডাটাবেসে উপলব্ধ । অবশ্যই, আমি বুঝতে পেরেছি যে ক্যাসান্দ্রা নোএসকিউএল এবং অতএব একই পদ্ধতিতে কাজ করে না - তবে এটি এমন কিছু বলে মনে হয় যা উপলভ্য।

এটি সম্পাদন করার একটি ভাল উপায় কী?

অনেক ধন্যবাদ!

উত্তর:


10
cqlsh -k mykeyspace -e 'COPY fromTable(columnNames) TO STDOUT' | head -n -1 | 
cqlsh -k mykeyspace -e 'COPY toTable(columnNames) FROM STDIN'

1
ধন্যবাদ, এটি আকর্ষণীয় দেখায়। তবে আমি চরিত্রের অব্যাহতি এবং অন্যান্য সমস্যা সম্পর্কে উদ্বিগ্ন, বিশেষত যখন নির্দিষ্ট ধরণের ডেটা নিয়ে কাজ করি। এটা কি আদৌ উদ্বেগজনক?
হুয়ান কার্লোস কটো

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

ক্যাসান্দ্রা ২.১.২-এ আমাকে কমান্ডটি -N -2 হওয়ার জন্য সংশোধন করতে হয়েছিল কারণ COPY এর আউটপুটটি শেষে দুটি লাইন অন্তর্ভুক্ত করে যাতে ছাঁটাই করা প্রয়োজন। এটি এখনও কাজ করে যাচ্ছিল, তবে এটি শেষে খালি লাইনটি সম্পর্কে উন্মাদ হয়ে উঠল।
ctlacko

দ্রষ্টব্য - 2 মিলিয়নেরও কম সারি রয়েছে এমন ডেটাসেটগুলি আমদানি করতে কেবল কপি FROM ব্যবহার করুন। বড় ডেটাসেট আমদানি করতে, ক্যাসান্দ্রার বাল্ক লোডার ব্যবহার করুন।
গণেশপি

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