Udostępnij za pośrednictwem


Używanie zewnętrznej bazy danych magazynu metadanych Hive

Ważne

Ta funkcja jest aktualnie dostępna jako funkcja podglądu. Dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure obejmują więcej warunków prawnych, które dotyczą funkcji platformy Azure, które znajdują się w wersji beta, w wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej. Aby uzyskać informacje o tej konkretnej wersji zapoznawczej, zobacz Informacje o wersji zapoznawczej usługi Azure HDInsight w usłudze AKS. W przypadku pytań lub sugestii dotyczących funkcji prześlij żądanie w usłudze AskHDInsight , aby uzyskać szczegółowe informacje i postępuj zgodnie z nami, aby uzyskać więcej aktualizacji w społeczności usługi Azure HDInsight.

Magazyn metadanych Hive jest używany jako centralne repozytorium do przechowywania metadanych dotyczących danych. W tym artykule opisano sposób dodawania bazy danych magazynu metadanych Hive do klastra Trino za pomocą usługi HDInsight w usłudze AKS. Istnieją dwa sposoby:

  • Wykaz programu Hive można dodać i połączyć go z zewnętrzną bazą danych magazynu metadanych Hive podczas tworzenia klastra Trino.

  • Katalog hive można dodać i dołączyć zewnętrzną bazę danych magazynu metadanych Hive do klastra przy użyciu aktualizacji szablonu usługi ARM.

W poniższym przykładzie opisano dodawanie katalogu hive i bazy danych magazynu metadanych do klastra przy użyciu szablonu usługi ARM.

Wymagania wstępne

  • Operacyjny klaster Trino z usługą HDInsight w usłudze AKS.
  • Utwórz szablon usługi ARM dla klastra.
  • Zapoznaj się z kompletnym przykładem szablonu usługi ARM klastra.
  • Znajomość tworzenia i wdrażania szablonów usługi ARM.

Uwaga

  • Obecnie obsługujemy usługę Azure SQL Database jako wbudowany magazyn metadanych.
  • Ze względu na ograniczenie programu Hive znak "-" (łącznik) w nazwie bazy danych magazynu metadanych nie jest obsługiwany.
  • Obsługiwane jest tylko jedno połączenie bazy danych magazynu metadanych. Wszystkie wykazy wymienione w clusterProfile.trinoProfile.catalogOptions.hive sekcji zostaną skonfigurowane tak, aby używały jednego i tych samych parametrów bazy danych, które zostały określone jako pierwsze.

Dodawanie zewnętrznej bazy danych magazynu metadanych Hive

Istnieje kilka ważnych sekcji, które należy dodać do szablonu usługi ARM klastra, aby skonfigurować katalog hive i bazę danych magazynu metadanych Hive:

Konfiguracja magazynu metadanych

Skonfiguruj zewnętrzną bazę danych magazynu metadanych Hive w config.properties pliku:

{
    "fileName": "config.properties",
    "values": {
        "hive.metastore.hdi.metastoreDbConnectionURL": "jdbc:sqlserver://server-name.database.windows.net;database=myhmsdb1;encrypt=true;trustServerCertificate=true;create=false;loginTimeout=30",
        "hive.metastore.hdi.metastoreDbConnectionUserName": "trinoadmin",
        "hive.metastore.hdi.metastoreDbConnectionPasswordSecret": "hms-db-pwd",
        "hive.metastore.hdi.metastoreWarehouseDir": "abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse"
    }
}
Właściwości opis Przykład
hive.metastore.hdi.metastoreDb Połączenie ionURL Parametry połączenia JDBC do bazy danych. jdbc:sqlserver://nazwa-serwera.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30
hive.metastore.hdi.metastoreDb Połączenie ionUserName Nazwa użytkownika SQL do nawiązania połączenia z bazą danych. trinoadmin
hive.metastore.hdi.metastoreDb Połączenie ionPasswordSecret Secret referenceName skonfigurowany w wpisach tajnychProfile z hasłem. hms-db-pwd
hive.metastore.hdi.metastoreWarehouseDir Identyfikator URI ABFS do lokalizacji w magazynie, w którym są przechowywane dane. abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse

Uwierzytelnianie magazynu metadanych

Skonfiguruj uwierzytelnianie do zewnętrznej bazy danych magazynu metadanych Hive, określając wpisy tajne usługi Azure Key Vault.

Uwaga

referenceName powinna być zgodna z wartością podaną w hive.metastore.hdi.metastoreDbConnectionPasswordSecret

"secretsProfile": {
    "keyVaultResourceId": "/subscriptions/{USER_SUBSCRIPTION_ID}/resourceGroups/{USER_RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/{USER_KEYVAULT_NAME}",
    "secrets": [
        {
            "referenceName": "hms-db-pwd",
            "type": "Secret",
            "keyVaultObjectName": "hms-db-pwd"
        }                        ]
},
Właściwości opis Przykład
secretsProfile.keyVaultResourceId Ciąg identyfikatora zasobu platformy Azure w usłudze Azure Key Vault, w którym są przechowywane wpisy tajne magazynu metadanych Hive. /subscriptions/00000000-0000-0000-0000-00000000000000/resourceGroups/trino-rg/providers/Microsoft.KeyVault/vaults/trinoakv
secretsProfile.secrets[*].referenceName Unikatowa nazwa odwołania wpisu tajnego do późniejszego użycia w pliku clusterProfile. Secret1_ref
secretsProfile.secrets[*].type Typ obiektu w usłudze Azure Key Vault, obsługiwany jest tylko wpis tajny. Klucz tajny
secretsProfile.secrets[*].keyVaultObjectName Nazwa obiektu wpisu tajnego w usłudze Azure Key Vault zawierającego rzeczywistą wartość wpisu tajnego. secret1

Konfiguracja wykazu

Aby katalog Trino używał zewnętrznego magazynu metadanych Hive, powinien określić hive.metastore=hdi właściwość. Aby uzyskać więcej informacji, zobacz Dodawanie katalogów do istniejącego klastra:

{
    "fileName": "hive1.properties",
    "values": {
        "connector.name": "hive",
        "hive.metastore": "hdi"
    }
}

Kompletny przykład

Aby skonfigurować zewnętrzny magazyn metadanych Hive do istniejącego klastra Trino, dodaj wymagane sekcje w szablonie usługi ARM klastra, korzystając z następującego przykładu:

{
    "$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": {
                    "secretsProfile": {
                        "keyVaultResourceId": "/subscriptions/{USER_SUBSCRIPTION_ID}/resourceGroups/{USER_RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/{USER_KEYVAULT_NAME}",
                        "secrets": [
                            {
                                "referenceName": "hms-db-pwd",
                                "type": "Secret",
                                "keyVaultObjectName": "hms-db-pwd"
                            }                        ]
                    },
                    "serviceConfigsProfiles": [
                        {
                            "serviceName": "trino",
                            "configs": [
                                {
                                    "component": "common",
                                    "files": [
                                        {
                                            "fileName": "config.properties",
                                            "values": {
                                                "hive.metastore.hdi.metastoreDbConnectionURL": "jdbc:sqlserver://server-name.database.windows.net;database=myhmsdb1;encrypt=true;trustServerCertificate=true;create=false;loginTimeout=30",
                                                "hive.metastore.hdi.metastoreDbConnectionUserName": "trinoadmin",
                                                "hive.metastore.hdi.metastoreDbConnectionPasswordSecret": "hms-db-pwd",
                                                "hive.metastore.hdi.metastoreWarehouseDir": "abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse"
                                            }
                                        }
                                    ]
                                },
                                {
                                    "component": "catalogs",
                                    "files": [
                                        {
                                            "fileName": "hive1.properties",
                                            "values": {
                                                "connector.name": "hive",
                                                "hive.metastore": "hdi"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            }
        }
    ]
}

Wdróż zaktualizowany szablon usługi ARM, aby odzwierciedlić zmiany w klastrze. Dowiedz się, jak wdrożyć szablon usługi ARM. Po pomyślnym wdrożeniu katalog "hive1" będzie widoczny w klastrze Trino.

Możesz uruchomić kilka prostych zapytań, aby wypróbować katalog hive.

Sprawdź, czy wykaz hive został pomyślnie utworzony.

show catalogs;

Wykonaj zapytanie względem tabeli (w tym przykładzie "hive1" jest nazwą określonego katalogu hive).

create schema hive1.schema1;
create table hive1.schema1.tpchorders as select * from tpch.tiny.orders;
select * from hive1.schema1.tpchorders limit 100;

Konfiguracja alternatywna

Alternatywnie zewnętrzne parametry bazy danych magazynu metadanych Hive można określić razem trinoProfile.catalogOptions.hive z właściwością hive.metastore=hdi katalogu:

Właściwości opis Przykład
trinoProfile.catalogOptions.hive Lista katalogów hive lub góry lodowej lub delty z parametrami zewnętrznej bazy danych magazynu metadanych Hive, wymagają parametrów dla każdego z nich. Aby użyć zewnętrznej bazy danych magazynu metadanych, wykaz musi znajdować się na tej liście.
trinoProfile.catalogOptions.hive[*].catalogName Nazwa wykazu Trino skonfigurowanego w serviceConfigsProfilesprogramie , który został skonfigurowany do używania zewnętrznej bazy danych magazynu metadanych Programu Hive. hive1
trinoProfile.catalogOptions.hive[*].metastoreDb Połączenie ionURL Parametry połączenia JDBC do bazy danych. jdbc:sqlserver://nazwa-serwera.database.windows.net; database=myhmsdb1; encrypt=true; trustServerCertificate=true; create=false; loginTimeout=30
trinoProfile.catalogOptions.hive[*].metastoreDb Połączenie ionUserName Nazwa użytkownika SQL do nawiązania połączenia z bazą danych. trinoadmin
trinoProfile.catalogOptions.hive[*].metastoreDb Połączenie ionPasswordSecret Secret referenceName skonfigurowany w wpisach tajnychProfile z hasłem. hms-db-pwd
trinoProfile.catalogOptions.hive[*].metastoreWarehouseDir Identyfikator URI ABFS do lokalizacji w magazynie, w którym są przechowywane dane. abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse

Kompletny przykład

{
    "$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": {
                    "secretsProfile": {
                        "keyVaultResourceId": "/subscriptions/{USER_SUBSCRIPTION_ID}/resourceGroups/{USER_RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/{USER_KEYVAULT_NAME}",
                        "secrets": [
                            {
                                "referenceName": "hms-db-pwd",
                                "type": "Secret",
                                "keyVaultObjectName": "hms-db-pwd"
                            }                        ]
                    },
                    "serviceConfigsProfiles": [
                        {
                            "serviceName": "trino",
                            "configs": [
                                {
                                    "component": "catalogs",
                                    "files": [
                                        {
                                            "fileName": "hive1.properties",
                                            "values": {
                                                "connector.name": "hive",
                                                "hive.metastore": "hdi"
                                            }
                                        }
                                    ]
                                }
                            ]
                        }
                    ],
                    "trinoProfile": {
                        "catalogOptions": {
                            "hive": [
                                {
                                    "catalogName": "hive1",
                                    "metastoreDbConnectionURL": "jdbc:sqlserver://server-name.database.windows.net;database=myhmsdb1;encrypt=true;trustServerCertificate=true;create=false;loginTimeout=30",
                                    "metastoreDbConnectionUserName": "trinoadmin",
                                    "metastoreDbConnectionPasswordSecret": "hms-db-pwd",
                                    "metastoreWarehouseDir": "abfs://container1@myadlsgen2account1.dfs.core.windows.net/hive/warehouse"
                                }
                            ]
                        }
                    }
                }
            }
        }
    ]
}