تكوين التخزين المؤقت
إشعار
سنتقاعد Azure HDInsight على AKS في 31 يناير 2025. قبل 31 يناير 2025، ستحتاج إلى ترحيل أحمال العمل الخاصة بك إلى Microsoft Fabric أو منتج Azure مكافئ لتجنب الإنهاء المفاجئ لأحمال العمل الخاصة بك. سيتم إيقاف المجموعات المتبقية على اشتراكك وإزالتها من المضيف.
هام
هذه الميزة في وضع المعاينة حاليًا. تتضمن شروط الاستخدام التكميلية لمعاينات 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
تسجيل الدخول إلى مدخل Azure.
في شريط البحث في مدخل Microsoft Azure، اكتب "HDInsight on AKS cluster" وحدد "Azure HDInsight on AKS clusters" من القائمة المنسدلة.
حدد اسم نظام المجموعة من صفحة القائمة.
انتقل إلى شفرة Configuration Management .
انتقل إلى config.properties -> التكوينات المخصصة ثم انقر فوق إضافة.
قم بتعيين الخصائص المطلوبة، وانقر فوق موافق.
Save the configuration.
استخدام قالب ARM
المتطلبات الأساسية
- مجموعة Trino تشغيلية مع HDInsight على AKS.
- إنشاء قالب ARM للمجموعة الخاصة بك.
- راجع نموذج قالب ARM لنظام المجموعة الكامل.
- الإلمام بتأليف قالب 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.