Aracılığıyla paylaş


Önbelleğe almayı yapılandırma

Önemli

Bu özellik şu anda önizlemededir. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları, beta, önizleme aşamasında olan veya henüz genel kullanıma sunulmamış Azure özellikleri için geçerli olan daha fazla yasal hüküm içerir. Bu belirli önizleme hakkında bilgi için bkz . AKS üzerinde Azure HDInsight önizleme bilgileri. Sorular veya özellik önerileri için lütfen AskHDInsight'ta ayrıntıları içeren bir istek gönderin ve Azure HDInsight Topluluğu hakkında daha fazla güncelleştirme için bizi takip edin.

Hive bağlayıcısını kullanarak nesne depolamayı sorgulamak, Trino için yaygın bir kullanım örneğidir. Bu işlem genellikle büyük miktarda veri göndermeyi içerir. Nesneler BIRDEN çok çalışan tarafından HDFS'den veya desteklenen başka bir nesne deposundan alınır ve bu çalışanlar tarafından işlenir. Farklı parametrelere sahip yinelenen sorgular, hatta farklı kullanıcılardan gelen farklı sorgular genellikle aynı nesnelere erişip aktarır.

AKS üzerinde HDInsight, Trino için aşağıdaki avantajları sağlayan nihai sonuç önbelleğe alma özelliği ekledi:

  • Nesne depolama yükünü azaltın.
  • Sorgu performansını geliştirin.
  • Sorgu maliyetini azaltın.

Önbelleğe Alma seçenekleri

Önbelleğe alma için farklı seçenekler:

  • Nihai sonuç önbelleğe alma: Etkinleştirildiğinde (koordinatör bileşeni yapılandırma bölümünde), koordinatör VM'sindeki katalog önbellekleri için herhangi bir sorgunun sonucu.
  • Hive/Iceberg/Delta Lake kataloğu önbelleğe alma: Etkinleştirildiğinde (ilgili türdeki belirli bir katalog için), çalışan VM'lerde küme içindeki her sorgu için bölünmüş veriler önbelleğe alınır.

Nihai sonuç önbelleğe alma

Nihai sonuç önbelleğe alma iki şekilde yapılandırılabilir:

Kullanılabilir yapılandırma parametreleri şunlardır:

Özellik Varsayılan Açıklama
query.cache.enabled yanlış Doğruysa nihai sonucu önbelleğe almayı etkinleştirir.
query.cache.ttl - Önbellek verilerinin çıkarmadan önce saklanmasına kadar olan süreyi tanımlar. Örneğin: "10m","1h"
query.cache.disk-usage-percentage 80 Önbelleğe alınan veriler için kullanılan disk alanının yüzdesi.
query.cache.max-result-data-size 0 Sonuç için maksimum veri boyutu. Bu değer aşılırsa sonuç önbelleğe alınmaz.

Not

Sonuç önbelleğe alma işlemi, önbellek anahtarı olarak sorgu planını ve ttl'yi kullanır.

Nihai sonuç önbelleğe alma işlemi aşağıdaki oturum parametreleriyle de denetlenebilir:

Oturum parametresi Varsayılan Açıklama
query_cache_enabled Özgün yapılandırma değeri Sorgu/oturum için nihai sonuç önbelleğe almayı etkinleştirir/devre dışı bırakır.
query_cache_ttl Özgün yapılandırma değeri Önbellek verilerinin çıkarmadan önce saklanmasına kadar olan süreyi tanımlar.
query_cache_max_result_data_size Özgün yapılandırma değeri Sonuç için maksimum veri boyutu. Bu değer aşılırsa sonuç önbelleğe alınmaz.
query_cache_forced_refresh yanlış true olarak ayarlandığında, sorgu yürütme sonucunu önbelleğe alınmaya zorlar; başka bir ifadeyle sonuç, varsa mevcut önbelleğe alınmış verilerin yerini alır).

Not

Oturum parametreleri bir oturum için ayarlanabilir (örneğin, Trino CLI kullanılıyorsa) veya sorgu metni öncesinde çok deyimli olarak ayarlanabilir. Örneğin,

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;

Nihai sonuç önbelleğe alma, Yönetilen Prometheus ve Grafana kullanılarak görüntülenebilen JMX ölçümleri üretir. Aşağıdaki ölçümler kullanılabilir:

Metrik Sistem Açıklama
trino_cache_cachestats_requestcount Önbellek katmanından geçen toplam sorgu sayısı. Bu sayı, önbellek kapalı olarak yürütülen sorguları içermez.
trino_cache_cachestats_hitcount Önbellek isabet sayısı, yani veriler kullanılabilir olduğunda ve önbellekten döndürülürken yapılan sorgu sayısı.
trino_cache_cachestats_misscount Veri kullanılamadığında ve önbelleğe alınması gerektiğinde önbellek kaçırma sayısı.
trino_cache_cachestats_hitrate Toplam sorgu sayısına göre önbellek isabetlerinin yüzde gösterimi.
trino_cache_cachestats_totalevictedcount Önbellekten çıkarılan önbelleğe alınmış sorguların sayısı.
trino_cache_cachestats_totalbytesfromsource Kaynaktan okunan bayt sayısı.
trino_cache_cachestats_totalbytesfromcache Önbellekten okunan bayt sayısı.
trino_cache_cachestats_totalcachedbytes Önbelleğe alınan toplam bayt sayısı.
trino_cache_cachestats_totalevictedbytes Çıkarılan toplam bayt sayısı.
trino_cache_cachestats_spaceused Önbelleğin geçerli boyutu.
trino_cache_cachestats_cachereadfailures Herhangi bir hata nedeniyle verilerin önbellekten okunamama sayısı.
trino_cache_cachestats_cachewritefailures Herhangi bir hata nedeniyle verilerin önbelleğe yazılmama sayısı.

Azure portalı kullanarak

  1. Azure portalda oturum açın.

  2. Azure portalı arama çubuğuna "AKS kümesinde HDInsight" yazın ve açılan listeden "AKS kümelerinde Azure HDInsight" öğesini seçin.

    AKS Kümesinde HDInsight kullanmaya başlamaya yönelik arama seçeneğini gösteren ekran görüntüsü.

  3. Liste sayfasından kümenizin adını seçin.

    Listeden ihtiyacınız olan AKS Kümesinde HDInsight'ı seçmeyi gösteren ekran görüntüsü.

  4. Yapılandırma Yönetimi dikey penceresine gidin.

    Azure portalı yapılandırma yönetimini gösteren ekran görüntüsü.

  5. config.properties -> Özel yapılandırmalar'a gidin ve Ekle'ye tıklayın.

    Özel yapılandırmayı gösteren ekran görüntüsü.

  6. Gerekli özellikleri ayarlayın ve Tamam'a tıklayın.

    Yapılandırma özelliklerini gösteren ekran görüntüsü.

  7. Yapılandırmayı kaydedin .

    Yapılandırmanın nasıl kaydedileceklerini gösteren ekran görüntüsü.

ARM şablonunu kullanma

Önkoşullar

ARM şablonunun bölümündeki koordinatör bileşeninde properties.clusterProfile.serviceConfigsProfiles özellikleri tanımlamanız gerekir. Aşağıdaki örnekte özelliklerin nereye ekleneceği gösterilmektedir.

{
    "$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 önbelleğe alma

Üç bağlayıcı da Hive önbelleğinde açıklandığı gibi aynı parametre kümesini paylaşır.

Not

Bazı parametreler yapılandırılamaz ve her zaman varsayılan değerlerine ayarlanır:
hive.cache.data-transfer-port=8898,
hive.cache.bookkeeper-port=8899,
hive.cache.location=/etc/trino/cache,
hive.cache.disk-usage-percentage=80

Aşağıdaki örnek, ARM şablonunu kullanarak Hive önbelleğini etkinleştirmek için özelliklerin nereye ekleneceğini gösterir.

{
    "$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"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }

            }
        }
    ]
}

Güncelleştirilmiş ARM şablonunu kümenizdeki değişiklikleri yansıtacak şekilde dağıtın. ARM şablonu dağıtmayı öğrenin.