> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> يعرض عدد الكتل المضغوطة التي تستخدم كل برنامج الترميز لكل (جزء بيانات، عمود، تدفق فرعي) في جدول MergeTree.

# mergeTreeCodecBlockCounts

يعرض، لكل (جزء بيانات أو عمود أو تدفق فرعي) في جدول MergeTree، عدد الكتل المضغوطة التي تستخدم كل برنامج الترميز. يتيح لك ذلك مراقبة اختيار برنامج الترميز التكيفي (المفعّل عبر الإعداد `enable_adaptive_codec_selection`)، الذي يمكنه اختيار برنامج الترميز لكل كتلة في الأعمدة ذات برنامج الترميز الافتراضي.

يؤدي اختيار `codec_block_counts` إلى قراءة ملفات البيانات `.bin`، وليس البيانات الوصفية فقط. أما الأعمدة الأخرى فتقتصر على البيانات الوصفية.

لا تُدرج أجزاء البيانات التي لا تسجّل تدفقاتها الفرعية في `columns_substreams.txt`.

تُشتق كل قيمة معروضة من بيانات الجدول، لذا تتطلب قراءة أي عمود من النتيجة صلاحية `SELECT` على جميع أعمدة الجدول. ولا يكفي منح صلاحية تغطي بعض الأعمدة فقط. كما أن هذه الصلاحية مطلوبة لتحديد بنية الدالة، مثلًا عبر `DESCRIBE`. أما المستخدم غير المسموح له برؤية الجدول إطلاقًا، أي الذي لا يملك صلاحية `SHOW TABLES` عليه، فيحصل على `ACCESS_DENIED` سواء كان الجدول موجودًا أم لا، وبذلك لا تكشف الدالة لمثل هذا المستخدم عن الجداول الموجودة.

إذا انطبقت سياسة صفوف على الجدول بالنسبة إلى المستخدم الحالي، فإن قراءة `codec_block_counts` تطرح `ACCESS_DENIED`، لأن الأعداد ستشمل الصفوف التي تخفيها السياسة. تظل الأعمدة الأخرى قابلة للقراءة، ويعرض `system.parts_columns` تلك الأعمدة بغض النظر عن سياسات الصفوف.

## الصياغة

```sql theme={null}
mergeTreeCodecBlockCounts(database, table)
```

## الوسيطات

| الوسيطة | الوصف |
| - | - |
| `database` | اسم قاعدة البيانات التي يوجد فيها الجدول. |
| `table` | اسم جدول MergeTree. |

## القيمة المُعادة

كائن جدول يحتوي على صف واحد لكل مجموعة من (الجزء النشط والعمود والتدفق الفرعي) في الجدول المصدر:

* `part_name` ([String](/ar/reference/data-types/string)) — جزء البيانات النشط الذي ينتمي إليه العمود.
* `column` ([String](/ar/reference/data-types/string)) — اسم العمود.
* `substream` ([String](/ar/reference/data-types/string)) — التدفق الفعلي للعمود الذي تتعلق به الأعداد. يطابق `system.parts_columns.substreams`.
* `data_compressed_bytes` ([Nullable(UInt64)](/ar/reference/data-types/nullable)) — حجم البيانات المضغوطة في التدفق الفرعي، بالبايت. تكون `NULL` لأجزاء `Compact`.
* `data_uncompressed_bytes` ([Nullable(UInt64)](/ar/reference/data-types/nullable)) — حجم البيانات غير المضغوطة في التدفق الفرعي، بالبايت. تكون `NULL` لأجزاء `Compact`.
* `codec_block_counts` ([Map(String, UInt64)](/ar/reference/data-types/map)) — عدد الكتل المضغوطة في هذا التدفق الفرعي، مجمّعة حسب برنامج الترميز. تكون فارغة لأجزاء `Compact`، إذ تشترك أعمدتها في ملف بيانات واحد، ولذلك لا يمكن إسناد برنامج ترميز إلى كل تدفق على حدة.

## مثال للاستخدام

```sql theme={null}
CREATE TABLE mt (a UInt64) ENGINE = MergeTree ORDER BY a
SETTINGS min_bytes_for_wide_part = 0;

INSERT INTO mt SELECT number FROM numbers(100000);

SELECT column, substream, codec_block_counts
FROM mergeTreeCodecBlockCounts(currentDatabase(), mt);
```

```text theme={null}
┌─column─┬─substream─┬─codec_block_counts─┐
│ a      │ a         │ {'LZ4':13}         │
└────────┴───────────┴────────────────────┘
```

إجماليات مستوى العمود هي `GROUP BY column` مع [`sumMap`](/ar/reference/functions/aggregate-functions/sumMap):

```sql theme={null}
SELECT column, sumMap(codec_block_counts)
FROM mergeTreeCodecBlockCounts(currentDatabase(), mt)
GROUP BY column;
```

يعرض العمود `LowCardinality` تدفّقات القاموس والفهارس كلًّا على حدة:

```sql theme={null}
CREATE TABLE mt_lc (s LowCardinality(String)) ENGINE = MergeTree ORDER BY tuple()
SETTINGS min_bytes_for_wide_part = 0;

INSERT INTO mt_lc SELECT toString(number % 1000) FROM numbers(1000000);

SELECT substream, codec_block_counts
FROM mergeTreeCodecBlockCounts(currentDatabase(), mt_lc)
WHERE column = 's'
ORDER BY substream;
```

```text theme={null}
┌─substream─┬─codec_block_counts─┐
│ s         │ {'LZ4':31}         │
│ s.dict    │ {'LZ4':1}          │
└───────────┴────────────────────┘
```
