تكوين التخزين المؤقت

هام

هذه الميزة في وضع المعاينة حاليًا. تتضمن شروط الاستخدام التكميلية لمعاينات Microsoft Azure المزيد من الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي أو قيد المعاينة أو التي لم يتم إصدارها بعد في التوفر العام. للحصول على معلومات حول هذه المعاينة المحددة، راجع معلومات معاينة Azure HDInsight على AKS. للأسئلة أو اقتراحات الميزات، يرجى إرسال طلب على AskHDInsight مع التفاصيل ومتابعتنا لمزيد من التحديثات على مجتمع Azure HDInsight.

يعد الاستعلام عن تخزين الكائنات باستخدام موصل Hive حالة استخدام شائعة ل Trino. غالبا ما تتضمن هذه العملية إرسال كميات كبيرة من البيانات. يتم استرداد الكائنات من HDFS أو مخزن عناصر آخر مدعوم من قبل عدة عمال ومعالجتها من قبل هؤلاء العمال. غالبا ما تصل الاستعلامات المتكررة ذات المعلمات المختلفة، أو حتى استعلامات مختلفة من مستخدمين مختلفين، إلى نفس الكائنات وتنقلها.

أضاف HDInsight على AKS إمكانية التخزين المؤقت للنتيجة النهائية ل Trino، والتي توفر الفوائد التالية:

  • تقليل الحمل على تخزين الكائن.
  • تحسين أداء الاستعلام.
  • تقليل تكلفة الاستعلام.

خيارات التخزين المؤقت

خيارات مختلفة للتخزين المؤقت:

  • التخزين المؤقت للنتيجة النهائية: عند التمكين (في قسم تكوين مكون المنسق)، نتيجة لأي استعلام لأي ذاكرة تخزين مؤقت للكتالوج على جهاز ظاهري منسق.
  • التخزين المؤقت للكتالوج Hive/Iceberg/Delta Lake: عند تمكينه (للكتالوج المحدد من النوع المقابل)، يتم تخزين بيانات منقسمة لكل استعلام مؤقتا داخل نظام المجموعة على الأجهزة الظاهرية العاملة.

التخزين المؤقت للنتيجة النهائية

يمكن تكوين التخزين المؤقت للنتيجة النهائية بطريقتين:

معلمات التكوين المتوفرة هي:

الخاصية Default ‏‏الوصف
query.cache.enabled true تمكين التخزين المؤقت للنتيجة النهائية إذا كان صحيحا.
query.cache.ttl - يحدد الوقت حتى يتم الاحتفاظ ببيانات ذاكرة التخزين المؤقت قبل الإخلاء. على سبيل المثال: "10m","1h"
query.cache.disk-usage-percentage 80 النسبة المئوية لمساحة القرص المستخدمة للبيانات المخزنة مؤقتا.
query.cache.max-result-data-size 0 الحد الأقصى لحجم البيانات للنتيجة. إذا تجاوزت هذه القيمة، فلن يتم تخزين النتيجة مؤقتا.

إشعار

يستخدم التخزين المؤقت للنتيجة النهائية خطة الاستعلام وttl كمفتاح ذاكرة التخزين المؤقت.

يمكن أيضا التحكم في التخزين المؤقت للنتيجة النهائية من خلال معلمات الجلسة التالية:

معلمة جلسة العمل Default ‏‏الوصف
query_cache_enabled قيمة التكوين الأصلية تمكين/تعطيل التخزين المؤقت للنتيجة النهائية لاستعلام/جلسة عمل.
query_cache_ttl قيمة التكوين الأصلية يحدد الوقت حتى يتم الاحتفاظ ببيانات ذاكرة التخزين المؤقت قبل الإخلاء.
query_cache_max_result_data_size قيمة التكوين الأصلية الحد الأقصى لحجم البيانات للنتيجة. إذا تجاوزت هذه القيمة، فلن يتم تخزين النتيجة مؤقتا.
query_cache_forced_refresh true عند التعيين إلى صحيح، يفرض نتيجة تنفيذ الاستعلام ليتم تخزينها مؤقتا، أي أن النتيجة تحل محل البيانات المخزنة مؤقتا الموجودة إذا كانت موجودة).

إشعار

يمكن تعيين معلمات جلسة العمل لجلسة عمل (على سبيل المثال، إذا تم استخدام Trino CLI) أو يمكن تعيينها في جملة متعددة قبل نص الاستعلام. على سبيل المثال،

set session query_cache_enabled=true;
select cust.name, *
from tpch.tiny.orders 
join tpch.tiny.customer as cust on cust.custkey = orders.custkey
order by cust.name
limit 10;

ينتج التخزين المؤقت للنتيجة النهائية مقاييس JMX التي يمكن عرضها باستخدام Managed Prometheus وGrafana. تتوفر المقاييس التالية:

مقياس ‏‏الوصف
trino_cache_cachestats_requestcount إجمالي عدد الاستعلامات التي تمر عبر طبقة ذاكرة التخزين المؤقت. لا يتضمن هذا الرقم الاستعلامات المنفذة مع إيقاف تشغيل ذاكرة التخزين المؤقت.
trino_cache_cachestats_hitcount عدد مرات الوصول إلى ذاكرة التخزين المؤقت، أي عدد الاستعلامات عند توفر البيانات وإرجاعها من ذاكرة التخزين المؤقت.
trino_cache_cachestats_misscount عدد مرات فقدان ذاكرة التخزين المؤقت، أي عدد الاستعلامات عندما لا تكون البيانات متوفرة وكان يجب تخزينها مؤقتا.
trino_cache_cachestats_hitrate النسبة المئوية لتمثيل مرات الوصول إلى ذاكرة التخزين المؤقت مقابل إجمالي عدد الاستعلامات.
trino_cache_cachestats_totalevictedcount عدد الاستعلامات المخزنة مؤقتا التي تم إخلاؤها من ذاكرة التخزين المؤقت.
trino_cache_cachestats_totalbytesfromsource عدد وحدات البايت المقروءة من المصدر.
trino_cache_cachestats_totalbytesfromcache عدد وحدات البايت المقروءة من ذاكرة التخزين المؤقت.
trino_cache_cachestats_totalcachedbytes إجمالي عدد وحدات البايت المخزنة مؤقتا.
trino_cache_cachestats_totalevictedbytes إجمالي عدد وحدات البايت التي تم إخلاؤها.
trino_cache_cachestats_spaceused الحجم الحالي لذاكرة التخزين المؤقت.
trino_cache_cachestats_cachereadfailures عدد المرات التي لا يمكن فيها قراءة البيانات من ذاكرة التخزين المؤقت بسبب أي خطأ.
trino_cache_cachestats_cachewritefailures عدد المرات التي لا يمكن فيها كتابة البيانات في ذاكرة التخزين المؤقت بسبب أي خطأ.

استخدام مدخل Microsoft Azure

  1. تسجيل الدخول إلى مدخل Azure.

  2. في شريط البحث في مدخل Microsoft Azure، اكتب "HDInsight on AKS cluster" وحدد "Azure HDInsight on AKS clusters" من القائمة المنسدلة.

    لقطة شاشة تعرض خيار البحث لبدء استخدام HDInsight على نظام مجموعة AKS.

  3. حدد اسم نظام المجموعة من صفحة القائمة.

    لقطة شاشة تظهر تحديد HDInsight على نظام مجموعة AKS الذي تحتاجه من القائمة.

  4. انتقل إلى شفرة Configuration Management .

    لقطة شاشة تعرض إدارة تكوين مدخل Azure.

  5. انتقل إلى config.properties -> التكوينات المخصصة ثم انقر فوق إضافة.

    لقطة شاشة تعرض التكوين المخصص.

  6. قم بتعيين الخصائص المطلوبة، وانقر فوق موافق.

    لقطة شاشة تعرض خصائص التكوين.

  7. Save the configuration.

    لقطة شاشة توضح كيفية حفظ التكوين.

استخدام قالب ARM

المتطلبات الأساسية

تحتاج إلى تعريف الخصائص في مكون المنسق في properties.clusterProfile.serviceConfigsProfiles القسم في قالب ARM. يوضح المثال التالي مكان إضافة الخصائص.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "resources": [
        {
            "type": "microsoft.hdinsight/clusterpools/clusters",
            "apiVersion": "<api-version>",
            "name": "<cluster-pool-name>/<cluster-name>",
            "location": "<region, e.g. westeurope>",
            "tags": {},
            "properties": {
                "clusterType": "Trino",

                "clusterProfile": {

                    "serviceConfigsProfiles": [
                        {
                            "serviceName": "trino",
                            "configs": [
                                {
                                    "component": "coordinator",
                                    "files": [
                                        {
                                            "fileName": "config.properties",
                                            "values": {
                                                "query.cache.enabled": "true",
                                                "query.cache.ttl": "10m"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }

            }
        }
    ]
}

التخزين المؤقت ل Hive/Iceberg/Delta Lake

تشترك جميع الموصلات الثلاثة في نفس مجموعة المعلمات كما هو موضح في التخزين المؤقت ل Apache Hive .

إشعار

بعض المعلمات غير قابلة للتكوين ويتم تعيينها دائما إلى قيمها الافتراضية:
hive.cache.data-transfer-port=8898،
hive.cache.bookkeeper-port=8899،
hive.cache.location=/etc/trino/cache،
hive.cache.disk-usage-percentage=80

يوضح المثال التالي مكان إضافة الخصائص لتمكين التخزين المؤقت ل Apache Hive باستخدام قالب ARM.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "resources": [
        {
            "type": "microsoft.hdinsight/clusterpools/clusters",
            "apiVersion": "<api-version>",
            "name": "<cluster-pool-name>/<cluster-name>",
            "location": "<region, e.g. westeurope>",
            "tags": {},
            "properties": {
                "clusterType": "Trino",

                "clusterProfile": {

                    "serviceConfigsProfiles": [
                        {
                            "serviceName": "trino",
                            "configs": [
                                {
                                    "component": "catalogs",
                                    "files": [
                                        {
                                            "fileName": "hive1.properties",
                                            "values": {
                                                "connector.name": "hive"
                                                "hive.cache.enabled": "true",
                                                "hive.cache.ttl": "5d"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }

            }
        }
    ]
}

انشر قالب ARM المحدث ليعكس التغييرات في نظام المجموعة. تعرف على كيفية نشر قالب ARM.