Condividi tramite


Alternativa: configurazione di OneLake per Volumi Edge di inserimento cloud

Questo articolo descrive una configurazione alternativa per Volumi Edge di inserimento cloud (caricamento BLOB con ripulitura locale) per lakehouse OneLake.

Configurare OneLake per l'identità dell'estensione

Aggiungere l'identità dell'estensione all'area di lavoro di OneLake

  1. Passare al portale di OneLake; ad esempio, https://youraccount.powerbi.com.
  2. Creare o passare all'area di lavoro. Screenshot che mostra la barra multifunzione dell'area di lavoro nel portale.
  3. Selezionare Gestisci accesso. Screenshot che mostra la schermata di gestione dell'accesso nel portale.
  4. Selezionare Aggiungi persone o gruppi.
  5. Immettere il nome dell'estensione dall'installazione di Archiviazione di Container Azure abilitata da Azure Arc. Questo nome deve essere univoco all'interno del tenant. Screenshot che mostra la schermata per aggiungere il nome dell'estensione.
  6. Modificare l'elenco a discesa per le autorizzazioni da Visualizzatore a Collaboratore. Screenshot che mostra la schermata per impostare il collaboratore.
  7. Selezionare Aggiungi.

Creare un'attestazione di volume permanente (PVC) di inserimento cloud

  1. Creare un file denominato cloudIngestPVC.yaml con il contenuto seguente. Modificare il valore metadata.name impostando un nome per l'attestazione di volume permanente. Si fa riferimento a questo nome nell'ultima riga di deploymentExample.yaml nel passaggio successivo. È anche necessario aggiornare il valore di metadata.namespace con il pod di utilizzo previsto. Se non si dispone di un pod di utilizzo previsto, il valore di metadata.namespace è default.

    Nota

    Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti Kubernetes.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      ### Create a nane for your PVC ###
      name: <create-a-pvc-name-here>
      ### Use a namespace that matches your intended consuming pod, or "default" ###
      namespace: <intended-consuming-pod-or-default-here>
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 2Gi
      storageClassName: cloud-backed-sc
    
  2. Per applicare cloudIngestPVC.yaml, eseguire:

    kubectl apply -f "cloudIngestPVC.yaml"
    

Collegare un volume secondario a un volume Edge

È possibile usare la procedura seguente per creare un volume secondario usando l'identità dell'estensione per connettersi al lakehouse di OneLake.

  1. Ottenere il nome del volume Edge usando il comando seguente:

    kubectl get edgevolumes
    
  2. Creare un file denominato edgeSubvolume.yaml e copiare/incollare i contenuti seguenti. Le variabili seguenti devono essere aggiornate con le informazioni personalizzate:

    Nota

    Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti Kubernetes.

    • metadata.name: creare un nome per il volume secondario.
    • spec.edgevolume: questo nome è stato recuperato dal passaggio precedente usando kubectl get edgevolumes.
    • spec.path: creare un nome di sottodirectory personalizzato nel percorso di montaggio. L'esempio seguente contiene già un nome di esempio (exampleSubDir). Se si modifica questo nome di percorso, è necessario aggiornare la riga 33 in deploymentExample.yaml con il nuovo nome del percorso. Se si sceglie di rinominare il percorso, non inserire prima una barra.
    • spec.container: dettagli del data lakehouse di OneLake (ad esempio, <WORKSPACE>/<DATA_LAKE>.Datalake/Files).
    • spec.storageaccountendpoint: l'endpoint dell'account di archiviazione è il prefisso del collegamento Web di Power BI. Ad esempio, se la pagina OneLake è https://contoso-motors.powerbi.com/, l'endpoint sarà https://contoso-motors.dfs.fabric.microsoft.com.
    apiVersion: "arccontainerstorage.azure.net/v1"
    kind: EdgeSubvolume
    metadata:
      name: <create-a-subvolume-name-here>
    spec:
      edgevolume: <your-edge-volume-name-here>
      path: exampleSubDir # If you change this path, line 33 in deploymentExample.yaml must to be updated. Don't use a preceding slash.
      auth:
        authType: MANAGED_IDENTITY
      storageaccountendpoint: "https://<Your AZ Site>.dfs.fabric.microsoft.com/" # Your AZ site is the root of your Power BI OneLake interface URI, such as https://contoso-motors.powerbi.com
      container: "<WORKSPACE>/<DATA_LAKE>.Datalake/Files" # Details of your One Lake Data Lake Lakehouse
      ingestPolicy: edgeingestpolicy-default # Optional: See the following instructions if you want to update the ingestPolicy with your own configuration
    
  3. Per applicare edgeSubvolume.yaml, eseguire:

    kubectl apply -f "edgeSubvolume.yaml"
    

Facoltativo: modificare ingestPolicy dalle impostazioni predefinite

  1. Se si desidera modificare ingestPolicy dall'impostazione predefinita edgeingestpolicy-default, creare un file denominato myedgeingest-policy.yaml con il contenuto seguente. Le variabili seguenti devono essere aggiornate con le preferenze specifiche:

    Nota

    Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti Kubernetes.

    • metadata.name: creare un nome per ingestPolicy. Questo nome deve essere aggiornato e occorre farvi riferimento nella sezione spec.ingestPolicy di edgeSubvolume.yaml.
    • spec.ingest.order: ordine di caricamento dei file modificati ma non salvati. Si tratta del tentativo migliore, non di una garanzia (il valore predefinito è oldest-first). Le opzioni per l'ordine sono: oldest-first o newest-first.
    • spec.ingest.minDelaySec: numero minimo di secondi prima che un file modificato ma non salvato sia idoneo per l'inserimento (il valore predefinito è 60). Questo numero può essere compreso tra 0 e 31536000.
    • spec.eviction.order: modalità di rimozione dei file (il valore predefinito è unordered). Le opzioni per l'ordine di rimozione sono: unordered o never.
    • spec.eviction.minDelaySec: numero di secondi prima che un file pulito sia idoneo per la rimozione (il valore predefinito è 300). Questo numero può essere compreso tra 0 e 31536000.
    apiVersion: arccontainerstorage.azure.net/v1
    kind: EdgeIngestPolicy
    metadata:
      name: <create-a-policy-name-here> # This will need to be updated and referenced in the spec.ingestPolicy section of the edgeSubvolume.yaml
    spec:
      ingest:
        order: <your-ingest-order>
        minDelaySec: <your-min-delay-sec>
      eviction:
        order: <your-eviction-order>
        minDelaySec: <your-min-delay-sec>
    
  2. Per applicare myedgeingest-policy.yaml, eseguire:

    kubectl apply -f "myedgeingest-policy.yaml"
    

Collegare l'app (applicazione nativa Kubernetes)

  1. Per configurare un singolo pod generico (applicazione nativa Kubernetes) in base all'attestazione di volume permanente (PVC), creare un file denominato deploymentExample.yaml con il contenuto seguente. Sostituire i valori di containers.name e volumes.persistentVolumeClaim.claimName con valori personalizzati. Se il nome del percorso è stato aggiornato da edgeSubvolume.yaml, è necessario aggiornare exampleSubDir alla riga 33 con il nuovo nome del percorso.

    Nota

    Usare solo lettere minuscole e trattini. Per altre informazioni, vedere la documentazione sulla denominazione degli oggetti Kubernetes.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: cloudingestedgevol-deployment ### This must be unique for each deployment you choose to create.
    spec:
      replicas: 2
      selector:
        matchLabels:
          name: wyvern-testclientdeployment
      template:
        metadata:
          name: wyvern-testclientdeployment
          labels:
            name: wyvern-testclientdeployment
        spec:
          affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                  matchExpressions:
                  - key: app
                    operator: In
                    values:
                    - wyvern-testclientdeployment
                topologyKey: kubernetes.io/hostname
          containers:
            ### Specify the container in which to launch the busy box. ###
            - name: <create-a-container-name-here>
              image: mcr.microsoft.com/azure-cli:2.57.0@sha256:c7c8a97f2dec87539983f9ded34cd40397986dcbed23ddbb5964a18edae9cd09
              command:
                - "/bin/sh"
                - "-c"
                - "dd if=/dev/urandom of=/data/exampleSubDir/esaingesttestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done"
              volumeMounts:
                ### This name must match the following volumes.name attribute ###
                - name: wyvern-volume
                  ### This mountPath is where the PVC is attached to the pod's filesystem ###
                  mountPath: "/data"
          volumes:
             ### User-defined name that's used to link the volumeMounts. This name must match volumeMounts.name as previously specified. ###
            - name: wyvern-volume
              persistentVolumeClaim:
                ### This claimName must refer to your PVC metadata.name
                claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
    
  2. Per applicare deploymentExample.yaml, eseguire:

    kubectl apply -f "deploymentExample.yaml"
    
  3. Usare kubectl get pods per trovare il nome del pod. Copiare questo nome, perché è necessario nel passaggio successivo.

    Nota

    Poiché spec.replicas da deploymentExample.yaml è stato specificato come 2, vengono visualizzati due pod tramite kubectl get pods. È possibile scegliere uno dei nomi dei pod da usare per il passaggio successivo.

  4. Eseguire il comando seguente e sostituire POD_NAME_HERE con il valore copiato dal passaggio precedente:

    kubectl exec -it POD_NAME_HERE -- sh
    
  5. Cambiare directory impostando il percorso di montaggio /data specificato in deploymentExample.yaml.

  6. Verrà visualizzata una directory con il nome specificato come path nel passaggio 2 della sezione Collegare un volume secondario a un volume Edge. Ora, cd in /YOUR_PATH_NAME_HERE, sostituendo YOUR_PATH_NAME_HERE con i dettagli personalizzati.

  7. Ad esempio, creare un file denominato file1.txt e scrivervi usando echo "Hello World" > file1.txt.

  8. Nel portale di Azure passare all'account di archiviazione e trovare il contenitore specificato nel passaggio 2 di Collegare un volume secondario a un volume Edge. Quando si seleziona il contenitore, file1.txt dovrebbe essere popolato all'interno del contenitore. Se il file non è ancora visualizzato, attendere circa 1 minuto. Volumi Edge attende un minuto prima del caricamento.

Passaggi successivi

Dopo aver completato questi passaggi, è possibile iniziare a monitorare la distribuzione usando Monitoraggio di Azure e il monitoraggio di Kubernetes o il monitoraggio di terze parti con Prometheus e Grafana.

Monitorare la distribuzione