Creare l’archiviazione gestita del catalogo Unity usando un’entità servizio (legacy)
Importante
Questa documentazione è stata ritirata e potrebbe non essere aggiornata. Il prodotto, il servizio o la tecnologia citati in questo contenuto non sono più supportati. Per visualizzare la documentazione di amministrazione corrente, vedere Gestire l'account Azure Databricks.
Questo articolo descrive un metodo legacy per la creazione di percorsi esterni e l'archiviazione gestita tramite un'entità servizio. Anziché le entità servizio, Databricks consiglia vivamente di usare un'identità gestita di Azure come identità che consente l'accesso al contenitore di archiviazione. Vedere Usare le identità gestite di Azure nell’Unity Catalog per accedere all'archiviazione.
Tuttavia, se si vuole comunque usare un'entità servizio o se si dispone di una risorsa di archiviazione gestita di Unity Catalog o percorsi esterni che usano un'entità servizio e si vuole comprendere il processo, le istruzioni vengono fornite in questo articolo sull'archivio.
Creare un metastore a cui si accede usando un'entità servizio (legacy)
Per creare un metastore del catalogo Unity a cui si accede da un'entità servizio:
Creare un account di archiviazione per Azure Data Lake Storage Gen2.
Un contenitore di archiviazione in questo account archivia tutte le tabelle gestite del metastore, ad eccezione di quelle incluse in un catalogo o in uno schema con la propria posizione di archiviazione gestita.
Vedere Creare un account di archiviazione da usare con Azure Data Lake Storage Gen2. Deve trattarsi di un account Azure Data Lake Storage Gen2 con prestazioni Premium nella stessa area delle aree di lavoro di Azure Databricks.
Creare un contenitore nel nuovo account di archiviazione.
Prendere nota dell'URI ADLSv2 per il contenitore, nel formato seguente:
abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
Nei passaggi seguenti sostituire
<storage-container>
con questo URI.In Microsoft Entra ID creare un'entità servizio e assegnargli le autorizzazioni per l'account di archiviazione, usando le istruzioni in Accedere all'archiviazione usando un'entità servizio e Microsoft Entra ID(Azure Active Directory).
Il catalogo unity userà questa entità servizio per accedere ai contenitori nell'account di archiviazione per conto degli utenti di Unity Catalog. Generare un segreto client per l'entità servizio. Vedere Autenticazione dell’entità servizio di Microsoft Entra. Prendere nota del segreto client per l'entità servizio, l'ID applicazione client e l'ID directory in cui è stata creata questa entità servizio. Nei passaggi seguenti sostituire
<client-secret>
,<client-application-id>
e<directory-id>
con questi valori.Prendere nota di queste proprietà, che verranno usate quando si crea un metastore:
<aad-application-id>
- Area dell'account di archiviazione
<storage-container>
- L'entità servizio è
<client-secret>
,<client-application-id>
e<directory-id>
Non è possibile creare un metastore a cui si accede usando un'entità servizio nell'interfaccia utente della console dell'account. Usare invece l'API Metastore dell'account. Ad esempio:
curl -n -X POST --header 'Content-Type: application/json' https://<account-domain>/api/2.0/accounts/<account-id>/metastores --data '{ "metastore_info": { "name": "<metastore-name>", "storage_root": "<storage-container>", "region": "<region>" "storage_root_credential_id" } }'
Per informazioni su come eseguire l'autenticazione alle API a livello di account, vedere Autenticazione dell'entità servizio MS Entra.
L'utente che crea un metastore è il proprietario. Databricks consiglia di riassegnare la proprietà del metastore a un gruppo. Vedere Assegnare un amministratore del metastore.
Prendere nota dell'ID del metastore. Quando si visualizzano le proprietà del metastore, l'ID del metastore è la parte dell'URL dopo
/data
e prima/configuration
di .Il metastore è stato creato, ma Unity Catalog non è ancora in grado di scrivere dati. Per completare la configurazione del metastore:
In un browser separato accedere a un'area di lavoro assegnata al metastore come amministratore dell'area di lavoro.
Prendere nota dell'URL dell'area di lavoro, ovvero la prima parte dell'URL, dopo
https://
e inclusiva diazuredatabricks.net
.Generare un token di accesso personale. Vedere l'API di gestione dei token.
Aggiungere il token di accesso personale al
.netrc
file nella home directory. Ciò migliora la sicurezza impedendo la visualizzazione del token di accesso personale nella cronologia dei comandi della shell. Vedere l'API di gestione dei token.Eseguire il comando cURL seguente per creare le credenziali di archiviazione radice per il metastore. Sostituire i valori segnaposto;
<workspace-url>
: URL dell'area di lavoro in cui è stato generato il token di accesso personale.<credential-name>
: nome per le credenziali di archiviazione.<directory-id>
: ID directory per l'entità servizio creata.<application-id>
: ID applicazione per l'entità servizio creata.<client-secret>
: valore del segreto client generato per l'entità servizio (non l'ID segreto client).
curl -n -X POST --header 'Content-Type: application/json' https://<workspace-url>/api/2.0/unity-catalog/storage-credentials --data "{ \"name\": \"<credential-name>\", \"azure_service_principal\": { \"directory_id\": \"<directory-id>\", \"application_id\": \"<application-id>\", \"client_secret\": \"<client-secret>\" } }"
Prendere nota dell'ID credenziale di archiviazione, ovvero il valore di dalla
id
risposta del comando cURL.
Eseguire il comando cURL seguente per aggiornare il metastore con le nuove credenziali di archiviazione radice. Sostituire i valori segnaposto;
<workspace-url>
: URL dell'area di lavoro in cui è stato generato il token di accesso personale.<metastore-id
>: ID del metastore.<storage-credential-id
>: ID delle credenziali di archiviazione del comando precedente.
curl -n -X PATCH --header 'Content-Type: application/json' https://<workspace-url>/api/2.0/unity-catalog/metastores/<metastore-id> --data "{\"storage_root_credential_id\": \"<storage-credential-id>\"}"
È ora possibile aggiungere aree di lavoro al metastore.
Creare credenziali di archiviazione che usano un'entità servizio (legacy)
Per creare credenziali di archiviazione usando un'entità servizio, è necessario essere un amministratore dell'account Azure Databricks. L'amministratore dell'account che crea le credenziali di archiviazione dell'entità servizio può delegare la proprietà a un altro utente o gruppo per gestire le autorizzazioni.
Creare prima di tutto un'entità servizio e concedere l'accesso all'account di archiviazione dopo l'archiviazione di Access usando un'entità servizio e Microsoft Entra ID (Azure Active Directory).
Non è possibile aggiungere credenziali di archiviazione dell'entità servizio usando Esplora cataloghi. Usare invece l'API Credenziali di archiviazione. Ad esempio:
curl -X POST -n \
https://<databricks-instance>/api/2.1/unity-catalog/storage-credentials \
-d '{
"name": "<storage-credential-name>",
"read_only": true,
"azure_service_principal": {
"directory_id": "<directory-id>",
"application_id": "<application-id>",
"client_secret": "<client-secret>"
},
"skip_validation": "false"
}'
È anche possibile creare credenziali di archiviazione usando il provider Databricks Terraform e databricks_storage_credential.