خانه --> اخبار --> قابلیت پالایش داده ها یا Allow Filtering در پایگاه داده ی کاساندرا (Cassandra)

قابلیت پالایش داده ها یا Allow Filtering در پایگاه داده ی کاساندرا (Cassandra)

قابلیتپالایش داده ها از کساندرا ۳٫۶ برای بهره برداری بهتر از کاساندرا به این پایگاه داده اضافه شد. با قابلیت Allow Filtering از کساندرا ۳٫۶ به بعد بدون استفاده از ایندکس ثانویه میتوان در جدول مورد نظر، درخواست پرسوجوی (where) بر روی هر فیلدی  انجام داد بدون آنکه در شرط کلید پارتیشن یا کلید اصلی ذکر شود. همچنین بعد انجام ایندکس ثانویه میتوان در جدول مورد نظر، درخواست پرسوجوی (where) بر روی هر فیلدی که ایندکس ثانویه شده، بدون آنکه در شرط کلید پارتیشن یا کلید اصلی ذکر شود، انجام داد.

Allow Filtering در پایگاه داده ی کاساندرا
امکانات در پایگاه داده ی کاساندرا

نکته: استفاده از قابلیت Allow Filtering بر روی نتایج خیلی بزرگ مناسب نیست.

نکته: استفاده از قابلیت Allow Filtering بر روی داده های هایی که به واسطه استفاده از Allow Filtering تعداد زیادی از آنها حذف میشود. هزینه زیادی دارد و یک استفاده  صحیح از Allow Filtering نیست.

نکته: استفاده از قابلیت Allow Filtering در اصل فیلتر زدن بر روی نتیجه داده های select است به عبارتی گویا یک درخواست دوم بر روی درخواست اول انجام میشود.

نکته: استفاده از قابلیت Allow Filtering در اصل فیلتر زدن بر روی نتیجه داده های select است که در سمت استفاده کننده از درخواست پردازش میشود به عیارتی سربار این عمل بر روی کامپیوتر مصرف کننده از این دستور است. (البته تا جایی که متوجه شدم بعدا اگر وقت کردم بررسی میکنم و این نکته را اصلاح میکنم)

به کدهای زیر توجه کنید تا محل استفاده درست از Allow Filtering را به درستی بیاموزید.

 


1
2
3
4
5
6
<span class="line">CREATE TABLE temperature (
</span><span class="line">   weatherstation_id text,
</span><span class="line">   event_time timestamp,
</span><span class="line">   temperature text,
</span><span class="line">   PRIMARY KEY (weatherstation_id,event_time)
</span><span class="line">);</span>

1
2
3
<span class="line">SELECT *
</span><span class="line">FROM temperature
</span><span class="line">WHERE weatherstation_id in ('1234ABCD','5678EFGH');</span>


1
2
3
4
<span class="line">SELECT *
</span><span class="line">FROM temperature
</span><span class="line">WHERE event_time in ('2013-04-03 06:00','2013-04-03 07:00')
</span><span class="line">ALLOW FILTERING;</span>


1
2
3
4
<span class="line">SELECT *
</span><span class="line">FROM temperature
</span><span class="line">WHERE weatherstation_id in ('1234ABCD','5678EFGH')
</span><span class="line">AND event_time in ('2013-04-03 06:00','2013-04-03 07:00');</span>


1
2
3
4
<span class="line">cqlsh:test&gt; SELECT *
</span><span class="line">        ... FROM temperature
</span><span class="line">        ... WHERE temperature in ('32F','33F');
</span><strong><span class="line" style="color: #ff0000;">Bad Request: Cannot use IN operator on column not part of the partition key</span></strong>


1
2
3
4
5
<span class="line">cqlsh:test&gt; create index on temperature (temperature);
</span><span class="line">cqlsh:test&gt; SELECT *
</span><span class="line">        ... FROM temperature
</span><span class="line">        ... WHERE temperature in ('32F','33F');
</span><strong><span class="line" style="color: #ff0000;">Bad Request: Cannot use IN operator on column not part of the partition key</span></strong>



1
2
3
<span class="line">آدرس منبع متن
 http://mechanics.flite.com/blog/2014/01/08/the-in-operator-in-cassandra-cql/
</span>

آدرس کانال تلگرام سایت بیگ دیتا:

t.me/bigdata_channel

آدرس کانال سروش ما:
https://sapp.ir/bigdata_channel

جهت دیدن سرفصل های دوره های آموزشی بر روی اینجا کلیک کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *