Dela via


Skapa hanterad lagring i Unity Catalog med hjälp av tjänstens huvudnamn (äldre)

Viktigt!

Den här dokumentationen har dragits tillbaka och kanske inte uppdateras. De produkter, tjänster eller tekniker som nämns i det här innehållet stöds inte längre. Information om hur du visar den aktuella administratörsdokumentationen finns i Hantera ditt Azure Databricks-konto.

Den här artikeln beskriver en äldre metod för att skapa externa platser och hanterad lagring med hjälp av tjänstens huvudnamn. I stället för tjänstens huvudnamn rekommenderar Databricks starkt att du använder en Hanterad Azure-identitet som den identitet som ger åtkomst till lagringscontainern. Se Använda Azure-hanterade identiteter i Unity Catalog för att få åtkomst till lagring.

Men om du fortfarande vill använda ett huvudnamn för tjänsten, eller om du har en befintlig hanterad Unity Catalog-lagring eller externa platser som använder tjänstens huvudnamn och du vill förstå processen, finns anvisningarna i den här arkivartikeln.

Skapa ett metaarkiv som används med hjälp av tjänstens huvudnamn (äldre)

Så här skapar du ett Unity Catalog-metaarkiv som nås av ett huvudnamn för tjänsten:

  1. Skapa ett lagringskonto för Azure Data Lake Storage Gen2.

    En lagringscontainer i det här kontot lagrar alla metaarkivets hanterade tabeller, förutom de som finns i en katalog eller ett schema med sin egen hanterade lagringsplats.

    Se Skapa ett lagringskonto som ska användas med Azure Data Lake Storage Gen2. Detta måste vara ett Azure Data Lake Storage Gen2-konto med Premium-prestanda i samma region som dina Azure Databricks-arbetsytor.

  2. Skapa en container i det nya lagringskontot.

    Anteckna ADLSv2-URI:n för containern, som har följande format:

    abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
    

    I stegen nedan ersätter du <storage-container> med den här URI:n.

  3. I Microsoft Entra-ID skapar du ett huvudnamn för tjänsten och tilldelar det behörigheter till lagringskontot med hjälp av anvisningarna i Access Storage med hjälp av tjänstens huvudnamn och Microsoft Entra-ID (Azure Active Directory).

    Unity Catalog använder tjänstens huvudnamn för att komma åt containrar i lagringskontot för Unity Catalog-användare. Generera en klienthemlighet för tjänstens huvudnamn. Se MS Entra-tjänstens huvudnamnsautentisering. Anteckna klienthemligheten för tjänstens huvudnamn, klientprogram-ID och katalog-ID där du skapade tjänstens huvudnamn. I följande steg ersätter du <client-secret>, <client-application-id>och <directory-id> med dessa värden.

  4. Anteckna de här egenskaperna, som du kommer att använda när du skapar ett metaarkiv:

    • <aad-application-id>
    • Lagringskontots region
    • <storage-container>
    • Tjänstens huvudnamn , <client-secret><client-application-id>, och<directory-id>
  5. Du kan inte skapa ett metaarkiv som används med hjälp av ett huvudnamn för tjänsten i kontokonsolens användargränssnitt. Använd i stället API:et för kontometaarkiv. Till exempel:

    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"
       }
    }'
    

    Information om hur du autentiserar till API:er på kontonivå finns i MS Entra-tjänstens huvudnamnsautentisering.

    Användaren som skapar ett metaarkiv är dess ägare. Databricks rekommenderar att du omtilldelar ägarskapet för metaarkivet till en grupp. Se Tilldela en metaarkivadministratör.

  6. Anteckna metaarkivets ID. När du visar metaarkivets egenskaper är metaarkivets ID den del av URL:en efter /data och före /configuration.

  7. Metaarkivet har skapats, men Unity Catalog kan ännu inte skriva data till det. Så här slutför du konfigurationen av metaarkivet:

    1. I en separat webbläsare loggar du in på en arbetsyta som har tilldelats metaarkivet som administratör för arbetsytan.

    2. Anteckna arbetsytans URL, som är den första delen av URL:en, efter https:// och inklusive azuredatabricks.net.

    3. Generera en personlig åtkomsttoken. Se API:et för tokenhantering.

    4. Lägg till den personliga åtkomsttoken i .netrc filen i din hemkatalog. Detta förbättrar säkerheten genom att förhindra att den personliga åtkomsttoken visas i gränssnittets kommandohistorik. Se API:et för tokenhantering.

    5. Kör följande cURL-kommando för att skapa rotlagringsautentiseringsuppgifterna för metaarkivet. Ersätt platshållarvärdena:

      • <workspace-url>: URL:en för arbetsytan där den personliga åtkomsttoken genererades.
      • <credential-name>: Ett namn på lagringsautentiseringsuppgifterna.
      • <directory-id>: Katalog-ID för tjänstens huvudnamn som du skapade.
      • <application-id>: Program-ID:t för tjänstens huvudnamn som du skapade.
      • <client-secret>: Värdet för den klienthemlighet som du genererade för tjänstens huvudnamn (inte klienthemlighets-ID:t).
      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>\"
         }
      }"
      

      Anteckna lagringsautentiserings-ID:t, som är värdet id för från cURL-kommandots svar.

  8. Kör följande cURL-kommando för att uppdatera metaarkivet med den nya rotlagringsautentiseringsuppgiften. Ersätt platshållarvärdena:

    • <workspace-url>: URL:en för arbetsytan där den personliga åtkomsttoken genererades.
    • <metastore-id>: Metaarkivets ID.
    • <storage-credential-id>: Lagringsautentiseringsuppgiftens ID från föregående kommando.
    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>\"}"
    

Nu kan du lägga till arbetsytor i metaarkivet.

Skapa en lagringsautentiseringsuppgift som använder tjänstens huvudnamn (äldre)

Om du vill skapa en lagringsautentiseringsuppgift med hjälp av tjänstens huvudnamn måste du vara administratör för Azure Databricks-kontot. Kontoadministratören som skapar lagringsautentiseringsuppgifterna för tjänstens huvudnamn kan delegera ägarskapet till en annan användare eller grupp för att hantera behörigheter för den.

Skapa först ett huvudnamn för tjänsten och ge det åtkomst till ditt lagringskonto efter Åtkomstlagring med hjälp av tjänstens huvudnamn och Microsoft Entra-ID (Azure Active Directory).

Du kan inte lägga till en lagringsautentiseringsuppgift för tjänstens huvudnamn med hjälp av Catalog Explorer. Använd i stället API:et för lagringsuppgifter. Till exempel:

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"
   }'

Du kan också skapa en lagringsautentiseringsuppgift med hjälp av Databricks Terraform-providern och databricks_storage_credential.