ترتيب الفرز الافتراضي للأعمدة في كاساندرا؟

StackOverflow https://stackoverflow.com//questions/25086648

  •  02-01-2020
  •  | 
  •  

سؤال

كنت أتابع البرنامج التعليمي حيث يقول المعلم أن الترتيب الافتراضي للأعمدة الموجودة في الصف هو UTF8-tye.لكنه لا يتطرق إليها أكثر من ذلك.

أنا لا أفهم ما يعنيه.خاصة إذا كانت أعمدتي من أنواع مختلفة مثل int, timestamp إلخ.

وأيضًا كيف يمكنني تحديد ترتيب الفرز على الأعمدة ليكون شيئًا آخر غير "نوع UTF8".

هل كانت مفيدة؟

المحلول

إنه يتحدث عن أسماء الأعمدة، وليس قيم الأعمدة.في إصدارات كاساندرا القديمة، يمكنك استخدام SuperColumns، وهي عبارة عن مجموعات من الأعمدة داخل صف واحد.شيء من هذا القبيل:

{ RowKey: 
   { SuperColumn1Key: {c1:v, c2:v .... } },
   { SuperColumn2Key: {c1:v, c2:v .... } },
   { SuperColumn3Key: {c1:v, c2:v .... } }
}

إنه شيء مشابه لما هو عليه اليوم صف واسع.يمكن للمقارنة إنشاء كل من فرز الأعمدة الفائقة داخل صف وكذلك فرز الأعمدة حسب أسمائها (يمكنك اختيار مقارنتين مختلفتين في SuperColumnFamily، أحدهما لفرز الأعمدة الفائقة والآخر لفرز الأعمدة).على سبيل المثال، باستخدام مقارنة TimeUUID للأعمدة الفائقة، يمكنك استرجاعها مرتبة حسب الوقت بينما UTF8Type عبارة عن فرز "أبجدي".

تخيل هذا الصف في مقارنة أعمدة UTF8:

{ id: {"author":"john", "vote": 3} }

الآن دعونا نضيف عمودًا جديدًا، مثل النص.نظرًا لأنه utf8، فإن "text" ("a"<"t"<"v") سيكون بين المؤلف والتصويت

{ id: {"author":"john", "text": "blablabla", "vote": 3} }

ومع ذلك، أعتقد أن ما شاهدته هو مقطع فيديو قديم، نظرًا لأن هذا المفهوم لم يعد مستخدمًا في الإصدار الأحدث

إتش تي إتش، كارلو

نصائح أخرى

الإجابة المختصرة هي:ترتيب التجميع الافتراضي في Cassandra هو تصاعدي (ASC).

بشكل افتراضي، يتم تحسين جداول Cassandra بدون ترتيب مجموعات محدد لاستعلامات SELECT الصاعدة.إذا كنت بحاجة إلى إجراء استعلامات باستخدام استعلامات تنازلية، فيمكنك تحديد ترتيب تجميعي لتخزين الأعمدة على القرص بالترتيب العكسي للترتيب الافتراضي.

تشير الوثائق الرسمية إلى أن هذا الأمر غير واضح بعض الشيء بالنسبة للقارئ السريع (ابحث عن الكلمة الأساسية السحرية "الافتراضية"):

ترتيب النتائج

يمكنك طلب نتائج الاستعلام للاستفادة من الفرز على الأعمدة على القرص.يمكنك ترتيب النتائج بترتيب تصاعدي أو تنازلي.سيكون الترتيب الصاعد أكثر كفاءة من الهبوط.إذا كنت بحاجة إلى نتائج في ترتيب تنازلي ، فيمكنك تحديد ترتيب تجميع لتخزين الأعمدة على القرص بالترتيب العكسي ل تقصير.ستكون الاستعلامات الهبوطية أسرع من السير الصاعد.

http://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_table_r.html?scroll=reference_ds_v3f_vfk_xj__ordering-results

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top