Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure HorizonDB è un servizio di database nativo del cloud completamente gestito e pronto per l'intelligenza artificiale basato su PostgreSQL. Combina un'architettura di calcolo e archiviazione disaggregata con una progettazione di database come log per offrire prestazioni prevedibili, sicurezza di livello aziendale, disponibilità elevata e scalabilità senza problemi per carichi di lavoro cruciali.
Questa guida introduttiva illustra come creare un cluster Azure HorizonDB usando il portale di Azure, interfaccia della riga di comando di Azure o i modelli di Azure Resource Manager (ARM).
Prerequisiti
Prima di iniziare, assicurarsi di avere:
- Una sottoscrizione di Azure. Se non ne hai uno, crea un account Azure gratuito.
- Autorizzazioni appropriate per creare risorse nella sottoscrizione.
Comprendere quello che si sta creando
Un cluster di Azure HorizonDB comprende:
- Set configurato di risorse di calcolo e risorse di archiviazione.
- Distribuzione all'interno di un gruppo di risorse di Azure.
- Il database
postgrescreato per impostazione predefinita. - Un
azure_maintenancedatabase per i processi del servizio gestito. - Database
azure_sysper query store e funzionalità di ottimizzazione autonoma.
Note
Non includere informazioni personali, sensibili o riservate nei nomi delle risorse (ad esempio, nome della tabella, nome del database) e nei tag delle risorse. I dati inseriti in questi campi non sono considerati dati del cliente.
Creare un cluster usando il portale di Azure
Seguire questa procedura per creare un cluster Azure HorizonDB usando il portale di Azure. La procedura guidata illustra le opzioni di configurazione essenziali per il calcolo, l'archiviazione e l'autenticazione.
Passare alla procedura guidata di creazione
- Accedi al portale di Azure.
- Selezionare Crea una risorsa nell'angolo superiore sinistro.
- In Categorie selezionare Database.
- Trovare e selezionare Azure HorizonDB.
- Fare clic su Crea.
Configurare le impostazioni di base
Dettagli del progetto
| Setting | Valore suggerito | Note |
|---|---|---|
| Subscription | Il tuo abbonamento | Scegliere dove fatturare la risorsa |
| Gruppo di risorse | {resourceGroup} | Crea nuovo o seleziona esistente |
Dettagli del cluster
| Setting | Valore suggerito | Description |
|---|---|---|
| Nome del cluster | horizondb-production | Deve essere univoco nell'ambito della stessa sottoscrizione di Azure e dello stesso gruppo di risorse. |
| Area geografica | Area più vicina all'utente | Prendere in considerazione conformità, residenza dei dati, prezzi e prossimità agli utenti. |
| Versione di PostgreSQL | Ultima versione disponibile | Attualmente è supportata solo la versione 17. |
Dettagli di calcolo
Selezionare Configura per personalizzare:
| Setting | Valore suggerito | Description |
|---|---|---|
| vCore | 2 | Numero di vCore di cui è stato effettuato il provisioning per i nodi di calcolo primario e di replica (la memoria viene modificata automaticamente). |
| Disponibilità elevata | Con ridondanza della zona | Disabilitare o abilitare repliche leggibili con disponibilità elevata. |
| Repliche leggibili ad alta disponibilità | 1 | Crea una o più repliche per aumentare la protezione della disponibilità nell'area e aumentare la velocità effettiva di lettura. |
Selezionare Salva per confermare o Annulla per annullare le modifiche.
Authentication
| Setting | Description | Raccomandato |
|---|---|---|
| Metodo di autenticazione | Modalità di autenticazione degli utenti | - Solo autenticazione PostgreSQL |
| Nome utente amministratore | adminuser | - Deve essere di 1-63 caratteri - Solo numeri e lettere - Non è possibile iniziare con pg_- Non può essere un nome riservato di sistema |
| Password | Password complessa | 8-128 caratteri con caratteri maiuscoli, minuscoli, numeri e caratteri speciali |
Configurare la rete
Scegliere il metodo di connettività (non è possibile modificarlo dopo la creazione):
Connettività di rete
Connettersi tramite un endpoint pubblico usando le regole del firewall.
Metodo di connettività:
| Setting | Description |
|---|---|
| Accesso pubblico | Solo gli indirizzi IP configurati nella sezione Regole del firewall possono accedere a questo cluster. Per impostazione predefinita, non sono consentiti indirizzi IP pubblici. |
Regole del firewall:
| Setting | Description |
|---|---|
| Consenti servizi di Azure | Consentire le connessioni da tutti i servizi di Azure |
| Aggiungere l'indirizzo IP client corrente | Aggiungere l'indirizzo IP all'elenco elementi consentiti |
Configurare la sicurezza
| Setting | Può cambiare in un secondo momento | Options |
|---|---|---|
| Chiave di crittografia dei dati | ❌ No | L'archiviazione usata per il database e il backup vengono crittografati per impostazione predefinita con chiavi gestite dal servizio |
Aggiungere tag di risorsa (facoltativo)
Organizzare le risorse con coppie nome-valore:
| Name | Value | Purpose |
|---|---|---|
| Environment | Development | Identificare il tipo di ambiente |
| CostCenter | IT-Dept | Tenere traccia dei costi per reparto |
| Proprietario | admin@contoso.com | Identificare le parti responsabili |
Rivedi e crea
- Selezionare Rivedi e crea.
- Esaminare tutte le configurazioni.
- Selezionare Crea per la distribuzione.
La distribuzione richiede in genere 5-10 minuti. Al termine, selezionare Vai alla risorsa per accedere al cluster.
Creare un cluster usando il interfaccia della riga di comando di Azure
Prerequisiti per CLI
Per questo script, usare l'interfaccia della riga di comando di Azure in locale perché l'esecuzione in Cloud Shell richiede troppo tempo.
Accedere ad Azure
Usare lo script seguente per accedere usando una sottoscrizione specifica.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Per maggiori informazioni, vedere Impostare una sottoscrizione attiva o Accedere in modo interattivo
Se si usa Azure Cloud Shell, si è già connessi.
Aggiungere l'estensione interfaccia della riga di comando di Azure per HorizonDB:
az extension add --name horizondb
Creare un cluster Azure HorizonDB con CLI
Creare un cluster con un comando:
az horizondb create \
--resource-group {resourceGroup} \
--name {cluster} \
--location {location} \
--version 17 \
--administrator-login {administratorLogin} \
--administrator-login-password {administratorLoginPassword} \
--v-cores 2
Informazioni di riferimento dei parametri dell'interfaccia a riga di comando
| Parametro | Description | Esempio |
|---|---|---|
--resource-group |
Nome del gruppo di risorse | {resourceGroup} |
--name |
Nome del cluster (univoco all'interno della sottoscrizione e del gruppo di risorse) | {cluster} |
--location |
Area di Azure | {location} |
--version |
Versione di PostgreSQL | 17 |
--administrator-login |
Nome utente amministratore | {administratorLogin} |
--administrator-login-password |
Password amministratore | {administratorLoginPassword} |
--v-cores |
Numero di vCore assegnati a ogni replica del cluster | 2 |
--replica-count |
Numero di repliche leggibili ad alta disponibilità | 1 |
--zone-placement-policy |
Definisce il modo in cui le repliche vengono posizionate tra le zone di disponibilità | BestEffort |
Creare una regola del firewall in un cluster Azure HorizonDB con l'interfaccia della riga di comando
Importante
Questa funzionalità non è ancora supportata da interfaccia della riga di comando di Azure tramite un modulo o un'estensione specifica per HorizonDB.
Aggiungere regole del firewall per la connettività client:
az rest --method PUT \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.HorizonDB/pools/DefaultPool/firewallRules/{firewallRule}?api-version=2026-01-20-preview" \
--body '{
"properties": {
"startIpAddress": "10.0.0.1",
"endIpAddress": "10.0.0.10",
"description": "Allow access from corporate network"
}
}'
Esempio di interfaccia della riga di comando avanzata
Creare un cluster a disponibilità elevata con ridondanza della zona:
az horizondb create \
--resource-group {resourceGroup} \
--name {cluster} \
--location australiaeast \
--version 17 \
--administrator-login {administratorLogin} \
--administrator-login-password {administratorLoginPassword} \
--v-cores 2 \
--replica-count 2 \
--zone-placement-policy Strict
Importante
Questa funzionalità non è ancora supportata da interfaccia della riga di comando di Azure tramite un modulo o un'estensione specifica per HorizonDB.
Aggiungere regole del firewall per la connettività client:
az rest --method PUT \
--uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.HorizonDB/pools/DefaultPool/firewallRules/{firewallRule}?api-version=2026-01-20-preview" \
--body '{
"properties": {
"startIpAddress": "10.0.0.1",
"endIpAddress": "10.0.0.10",
"description": "Allow access from corporate network"
}
}'
Creare un cluster utilizzando un modello ARM
Panoramica dei modelli ARM
I modelli di Azure Resource Manager (ARM) consentono di definire l'infrastruttura come codice. Usare i modelli per le distribuzioni ripetibili.
Modello ARM minimo
Salvare il file come horizondb-template.json:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "String"
},
"poolName": {
"defaultValue": "DefaultPool",
"type": "String"
},
"location": {
"type": "String"
},
"administratorLogin": {
"type": "String"
},
"administratorLoginPassword": {
"type": "SecureString"
},
"version": {
"type": "String"
},
"vCores": {
"type": "String"
},
"apiVersion": {
"defaultValue": "2026-01-20-preview",
"type": "String"
},
"firewallRules": {
"defaultValue": [],
"type": "Array"
}
},
"resources": [
{
"type": "Microsoft.HorizonDB/clusters",
"apiVersion": "[parameters('apiVersion')]",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"properties": {
"createMode": "Default",
"version": "[parameters('version')]",
"administratorLogin": "[parameters('administratorLogin')]",
"administratorLoginPassword": "[parameters('administratorLoginPassword')]",
"vCores": "[parameters('vCores')]"
}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2019-08-01",
"name": "[concat('firewallRules-', copyIndex())]",
"dependsOn": [
"[concat('Microsoft.HorizonDB/clusters/', parameters('clusterName'))]"
],
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.HorizonDB/clusters/pools/firewallRules",
"name": "[concat(parameters('clusterName'),'/',parameters('poolName'),'/',parameters('firewallRules')[copyIndex()].name)]",
"apiVersion": "[parameters('apiVersion')]",
"properties": {
"description": "[parameters('firewallRules')[copyIndex()].name]",
"startIpAddress": "[parameters('firewallRules')[copyIndex()].startIpAddress]",
"endIpAddress": "[parameters('firewallRules')[copyIndex()].endIpAddress]"
}
}
]
}
},
"copy": {
"name": "firewallRulesIterator",
"count": "[if(greater(length(parameters('firewallRules')), 0), length(parameters('firewallRules')), 1)]",
"mode": "Serial"
},
"condition": "[greater(length(parameters('firewallRules')), 0)]"
}
]
}
Salvare il file come horizondb-parameters.json:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"value": "{cluster}"
},
"location": {
"value": "australiaeast"
},
"administratorLogin": {
"value": "{administratorLogin}"
},
"administratorLoginPassword": {
"value": "{administratorLoginPassword}"
},
"version": {
"value": "17"
},
"vCores": {
"value": "2"
},
"apiVersion": {
"value": "2026-01-20-preview"
},
"firewallRules": {
"value": [
{
"name": "myfirewallrule",
"startIpAddress": "{yourIPAddress}",
"endIpAddress": "{yourIPAddress}"
}
]
}
}
}
Distribuire il modello di ARM
az group create --name {resourceGroup} --location australiaeast
az deployment group create \
--resource-group {resourceGroup} \
--template-file horizondb-template.json \
--parameters horizondb-parameters.json
Ottenere informazioni di connessione
Dopo aver creato il cluster, recuperare i dettagli della connessione:
Usare il portale di Azure
- Vai al cluster nel portale di Azure.
- Aprire la pagina Panoramica .
- Copiare questi valori:
-
Nome del cluster (endpoint primario):
{cluster}.{randomId}.australiaeast.horizondb.azure.com -
Account di accesso amministratore:
{administratorLogin}
-
Nome del cluster (endpoint primario):
Utilizzare l'interfaccia della riga di comando di Azure
az horizondb show \
--resource-group {resourceGroup} \
--name {cluster} \
--query "{clusterName:properties.fullyQualifiedDomainName, adminUser:properties.administratorLogin}" \
--output table
Connettersi tramite psql
Installare psql
Se non si hanno strumenti client PostgreSQL, scaricare PostgreSQL per la piattaforma.
Connetti al tuo cluster
psql "host={cluster}.{randomId}.australiaeast.horizondb.azure.com port=5432 dbname=postgres user={administratorLogin} sslmode=require"
Quando richiesto, immettere la password amministratore impostata durante la creazione del cluster.
Formato stringa di connessione
host={cluster}.{randomId}.australiaeast.horizondb.azure.com port=5432 dbname={databaseName} user={administratorLogin} password={administratorLoginPassword} sslmode=require
Verificare la connessione
Dopo la connessione, viene visualizzato:
psql (16.12, server 17.9 (Azure HorizonDB (c8e7b717d05)(release)))
WARNING: psql major version 16, server major version 17.
Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.
postgres=>
Creazione di un database
CREATE DATABASE user_database;
\c user_database
\q
Risolvere problemi di connessione
Blocco della connessione da parte del firewall
Se viene visualizzato:
connection to server at "{cluster}.{randomId}.australiaeast.horizondb.azure.com" (###.###.###.###), port 5432 failed: Connection timed out
Soluzione: assicurarsi che sia presente una regola del firewall il cui intervallo di indirizzi IP iniziali e finali include l'indirizzo IP usato dal computer per accedere al cluster.
az horizondb firewall-rule create \
--resource-group {resourceGroup} \
--cluster-name {cluster} \
--firewall-rule-name {firewallRule} \
--start-ip-address {yourIPAddress} \
--end-ip-address {yourIPAddress}
SSL obbligatorio ma non configurato
Verificare che la stringa di connessione includa sslmode=require.
Pulire le risorse
Al termine dell'avvio rapido, eliminare le risorse per evitare addebiti.
Eliminare l'intero gruppo di risorse
az group delete --name {resourceGroup} --yes
Eliminare solo il cluster
az horizondb delete \
--resource-group {resourceGroup} \
--name {cluster} \
--yes