ClickHouse/docs/fa/sql_reference/functions/bitmap_functions.md
2020-04-04 12:15:31 +03:00

12 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true d734a8e46d 49 نگاشت بیت

توابع نگاشت بیت

توابع بیت مپ برای دو بیت مپ محاسبه ارزش شی کار, این است که بازگشت بیت مپ جدید و یا کارتیت در حالی که با استفاده از محاسبه فرمول, مانند و, یا, صخره نوردی, و نه, و غیره.

2 نوع از روش های ساخت و ساز برای شی بیت مپ وجود دارد. یکی این است که توسط گروه بیت مپ تابع تجمع با دولت ساخته شود, دیگر این است که توسط شی مجموعه ای ساخته شود. این نیز برای تبدیل شی بیت مپ به مجموعه شی.

نقشه شهری روارینگ به یک ساختار داده در حالی که ذخیره سازی واقعی از اجسام بیت مپ پیچیده شده است. هنگامی که کارتیت کمتر از یا برابر است 32, با استفاده از عینیت مجموعه. هنگامی که کارتیت بیشتر از است 32, با استفاده از شی نقشه شهری روارینگ. به همین دلیل است ذخیره سازی مجموعه کارتیت کم سریع تر است.

برای کسب اطلاعات بیشتر در مورد نقشه شهری روارینگ: پرورش دهنده.

طراحی بیت مپ

ساخت یک بیت مپ از مجموعه عدد صحیح بدون علامت.

bitmapBuild(array)

پارامترها

  • array unsigned integer array.

مثال

SELECT bitmapBuild([1, 2, 3, 4, 5]) AS res, toTypeName(res)
┌─res─┬─toTypeName(bitmapBuild([1, 2, 3, 4, 5]))─────┐
│     │ AggregateFunction(groupBitmap, UInt8)    │
└─────┴──────────────────────────────────────────────┘

بیت مپوری

تبدیل بیت مپ به مجموعه عدد صحیح.

bitmapToArray(bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapToArray(bitmapBuild([1, 2, 3, 4, 5])) AS res
┌─res─────────┐
│ [1,2,3,4,5] │
└─────────────┘

اطلاعات دقیق

زیرمجموعه بازگشت در محدوده مشخص شده (دامنه را شامل نمی شود).

bitmapSubsetInRange(bitmap, range_start, range_end)

پارامترها

مثال

SELECT bitmapToArray(bitmapSubsetInRange(bitmapBuild([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,100,200,500]), toUInt32(30), toUInt32(200))) AS res
┌─res───────────────┐
│ [30,31,32,33,100] │
└───────────────────┘

نمایش سایت

ایجاد یک زیر مجموعه از بیت مپ با عناصر نفر گرفته شده بین range_start و cardinality_limit.

نحو

bitmapSubsetLimit(bitmap, range_start, cardinality_limit)

پارامترها

مقدار بازگشتی

زیرمجموعه.

نوع: Bitmap object.

مثال

پرسوجو:

SELECT bitmapToArray(bitmapSubsetLimit(bitmapBuild([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,100,200,500]), toUInt32(30), toUInt32(200))) AS res

نتیجه:

┌─res───────────────────────┐
│ [30,31,32,33,100,200,500] │
└───────────────────────────┘

اطلاعات دقیق

بررسی اینکه نگاشت بیت شامل یک عنصر است.

bitmapContains(haystack, needle)

پارامترها

مقادیر بازگشتی

  • 0 — If haystack شامل نمی شود needle.
  • 1 — If haystack شامل needle.

نوع: UInt8.

مثال

SELECT bitmapContains(bitmapBuild([1,5,7,9]), toUInt32(9)) AS res
┌─res─┐
│  1  │
└─────┘

بیتمافاسانی

بررسی اینکه دو بیت مپ دارند تقاطع توسط برخی از عناصر.

bitmapHasAny(bitmap1, bitmap2)

اگر شما اطمینان حاصل کنید که bitmap2 حاوی شدت یک عنصر, در نظر با استفاده از اطلاعات دقیق تابع. این کار موثر تر است.

پارامترها

  • bitmap* bitmap object.

بازگشت ارزش

  • 1 اگر bitmap1 و bitmap2 حداقل یک عنصر مشابه داشته باشید.
  • 0 وگرنه

مثال

SELECT bitmapHasAny(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res
┌─res─┐
│  1  │
└─────┘

بیتمافاسال

مشابه به hasAll(array, array) بازده 1 اگر بیت مپ اول شامل تمام عناصر از یک ثانیه, 0 در غیر این صورت. اگر استدلال دوم بیت مپ خالی است و سپس باز می گردد 1.

bitmapHasAll(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapHasAll(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res
┌─res─┐
│  0  │
└─────┘

هشدار داده می شود

Retrun بیت مپ cardinality از نوع UInt64.

bitmapCardinality(bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapCardinality(bitmapBuild([1, 2, 3, 4, 5])) AS res
┌─res─┐
│   5 │
└─────┘

بیت مپمن

Retrun کوچکترین مقدار از نوع UInt64 در مجموعه UINT32_MAX اگر این مجموعه خالی است.

bitmapMin(bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapMin(bitmapBuild([1, 2, 3, 4, 5])) AS res
┌─res─┐
│   1 │
└─────┘

جرم اتمی

جابجایی بزرگترین ارزش نوع اوینت64 در مجموعه, 0 اگر مجموعه ای خالی است.

bitmapMax(bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapMax(bitmapBuild([1, 2, 3, 4, 5])) AS res
┌─res─┐
│   5 │
└─────┘

ترجمههای بیت مپ

تبدیل مجموعه ای از ارزش ها در بیت مپ به مجموعه ای دیگر از ارزش, نتیجه یک بیت مپ جدید است.

bitmapTransform(bitmap, from_array, to_array)

پارامترها

  • bitmap bitmap object.
  • from_array UInt32 array. For idx in range [0, from_array.size()), if bitmap contains from_array[idx], then replace it with to_array[idx]. Note that the result depends on array ordering if there are common elements between from_array and to_array.
  • to_array UInt32 array, its size shall be the same to from_array.

مثال

SELECT bitmapToArray(bitmapTransform(bitmapBuild([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), cast([5,999,2] as Array(UInt32)), cast([2,888,20] as Array(UInt32)))) AS res
┌─res───────────────────┐
│ [1,3,4,6,7,8,9,10,20] │
└───────────────────────┘

بیت مپند

دو بیت مپ و محاسبه, نتیجه یک بیت مپ جدید است.

bitmapAnd(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapToArray(bitmapAnd(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
┌─res─┐
│ [3] │
└─────┘

نگاشت بیت

دو بیت مپ و یا محاسبه, نتیجه یک بیت مپ جدید است.

bitmapOr(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapToArray(bitmapOr(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
┌─res─────────┐
│ [1,2,3,4,5] │
└─────────────┘

بیت مپکسور

دو محاسبه گز بیت مپ, نتیجه یک بیت مپ جدید است.

bitmapXor(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapToArray(bitmapXor(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
┌─res───────┐
│ [1,2,4,5] │
└───────────┘

بیت مپندو

دو محاسبه بیت مپ اندنوت, نتیجه یک بیت مپ جدید است.

bitmapAndnot(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
┌─res───┐
│ [1,2] │
└───────┘

اطلاعات دقیق

دو بیت مپ و محاسبه بازگشت cardinality از نوع uint64.

bitmapAndCardinality(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapAndCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
┌─res─┐
│   1 │
└─────┘

کمبود سیگار

دو بیت مپ و یا محاسبه بازگشت cardinality از نوع uint64.

bitmapOrCardinality(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapOrCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
┌─res─┐
│   5 │
└─────┘

هشدار داده می شود

دو بیت مپ xor محاسبه بازگشت cardinality از نوع uint64.

bitmapXorCardinality(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapXorCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
┌─res─┐
│   4 │
└─────┘

اطلاعات دقیق

دو بیت مپ andnot محاسبه بازگشت cardinality از نوع uint64.

bitmapAndnotCardinality(bitmap,bitmap)

پارامترها

  • bitmap bitmap object.

مثال

SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
┌─res─┐
│   2 │
└─────┘

مقاله اصلی