Tutorial: Utilizzare le API della zona di consumo di Analytics

Questa esercitazione illustra come usare le API di gestione ACZ (Analytics Consumption Zone) in Azure Data Manager for Energy. È possibile creare, elencare, recuperare ed eliminare istanze di ACZ usando cURL.

Importante

Analytics Consumption Zone è attualmente in anteprima. Per le condizioni legali applicabili alle funzionalità di Azure disponibili in versione beta, in anteprima o non ancora rilasciate nella disponibilità generale, vedere Condizioni per l'utilizzo supplementari per Microsoft Azure anteprime.

Durante l'anteprima, ACZ è disponibile solo nelle istanze del livello sviluppatore e richiede l'uso di elenchi di elementi consentiti. Seguite le indicazioni in Abilitare la zona di utilizzo di Analytics, e contattate il rappresentante Microsoft.

In questa esercitazione apprenderai a:

  • Creare un'istanza di ACZ.
  • Elencare tutte le istanze di ACZ in una partizione di dati.
  • Ottenere i dettagli di un'istanza specifica di ACZ.
  • Eliminare un'istanza di ACZ.

Prerequisiti

Tip

Esplorare l'API in modo interattivo: È possibile visualizzare la specifica dell'API ACZ completa e gli endpoint di test usando l'interfaccia utente di Swagger all'indirizzo https://{instance-name}.energy.azure.com/api/acz/v1/docs. Sostituire {instance-name} con il nome dell'istanza di Azure Data Manager per Energy.

Ottieni i dettagli dell'istanza di Azure Data Manager for Energy

Raccogliere questi dettagli dall'istanza di Azure Data Manager for Energy nel portale di Azure.

Prima di iniziare

Gli esempi di codice in questo tutorial usano valori segnaposto nel formato {curly-braces}. Sostituite questi segnaposto con i valori effettivi quando eseguite i comandi.

Tutte le chiamate API richiedono l'autenticazione. Gli esempi di Bash e PowerShell mostrano la generazione di token inline usando il interfaccia della riga di comando di Azure. Per metodi di autenticazione alternativi, vedere Generare un token di autenticazione.

Creare un'istanza di ACZ

Usare l'API Create ACZ per configurare una nuova istanza di ACZ per una partizione di dati.

API

POST /api/acz/v1/aczs

Punti chiave

  • Un massimo di tre istanze ACZ per partizione di dati (limite di anteprima).
  • Il nome ACZ deve essere univoco all'interno della partizione.
  • L'identità gestita assegnata dall'utente deve essere:
    • Assegnato alla risorsa Azure Data Manager for Energy (vedi Abilitare la zona di utilizzo di Analytics).
    • Concesso il ruolo Collaboratore ai dati del BLOB di archiviazione nell'account di archiviazione Azure Data Lake Storage Gen2 di destinazione.
  • È necessario un account di archiviazione Data Lake Storage Gen2 con uno spazio dei nomi gerarchico abilitato.
# Get auth app ID for your Azure Data Manager for Energy instance
AUTH_APP_ID=$(az resource show --ids /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OpenEnergyPlatform/energyServices/{adme-instance-name} --query properties.authAppId -o tsv)

# Get access token
TOKEN=$(az account get-access-token --resource $AUTH_APP_ID --query accessToken -o tsv)

# Create ACZ instance
curl --request POST \
  --url https://{base-url}/api/acz/v1/aczs \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Content-Type: application/json' \
  --header 'data-partition-id: {data-partition-id}' \
  --data '{
    "name": "{acz-name}",
    "aczType": "{acz-type}",
    "targetFormat": "DELTA_PARQUET",
    "allCatalogSync": false,
    "sink": {
      "storageType": "microsoft.storage/storageaccounts",
      "storageId": "{storage-resource-id}",
      "basePath": "{base-path}"
    },
    "configuration": {
      "catalogKinds": ["{catalog-kinds}"],
      "wellboreDDMSKinds": ["{wellbore-ddms-kinds}"]
    }
  }'

Sostituisci i segnaposto

Placeholder Description
{subscription-id} ID della sottoscrizione in cui si trova l'istanza di Azure Data Manager per Energy.
{resource-group} Gruppo di risorse che contiene l'istanza di Azure Data Manager for Energy.
{adme-instance-name} Nome dell'istanza di Azure Data Manager per Energy.
{base-url} URL dell'istanza di Azure Data Manager for Energy, ad esempio myinstance.energy.azure.com.
{data-partition-id} ID della partizione di dati, ad esempio opendes.
{acz-name} Nome visualizzato per l'istanza di ACZ (ad esempio, 1-100 caratteri). my-acz-wells-and-logs
{acz-type} Facoltativo: LATEST_VERSION (impostazione predefinita) esporta solo la versione più recente ed ALL_VERSIONS esporta tutte le versioni.
{storage-resource-id} ID risorsa di Azure dell'account di archiviazione di destinazione Data Lake Storage Gen2 (ad esempio, /subscriptions/xxx.../storageAccounts/mystorageacct).
{base-path} Facoltativo: percorso di base all'interno dell'account di archiviazione per l'output dei dati ACZ (ad esempio, acz-output).
allCatalogSync Facoltativo (impostazione predefinita: false). Se impostato su true, esporta tutti i tipi di catalogo dalla partizione. Specificato all'esterno della configuration sezione. Quando true, catalogKinds e wellboreDDMSKinds nella configurazione vengono ignorati nei dati del catalogo.
{catalog-kinds} Facoltativo: stringhe di tipi di catalogo OSDU® da sincronizzare (ad esempio, ["osdu:wks:master-data--Well:*"]). Ignorato se allCatalogSync è true.
{wellbore-ddms-kinds} Facoltativo: stringhe di tipo del servizio Wellbore Domain Gestione dati Service (DDMS) da sincronizzare (ad esempio, ["osdu:wks:work-product-component--WellLog:*"]). I download di file vengono eseguiti solo per i tipi elencati qui.

Tip

Esportare tutti i dati del catalogo: Impostare "allCatalogSync": true (all'esterno della configuration sezione) per esportare tutti i tipi di catalogo dalla partizione di dati. Quando è abilitata, gli array catalogKinds e wellboreDDMSKinds nella configurazione vengono ignorati per i dati di catalogo. I download in blocco di Wellbore DDMS si verificano ancora solo per i tipi elencati in wellboreDDMSKinds.

È necessario specificare almeno una delle opzioni seguenti:

  • Imposta "allCatalogSync": true (configurazione esterna).
  • Fornire una matrice catalogKinds nella configurazione con almeno un criterio di tipo.
  • Fornire una matrice wellboreDDMSKinds nella configurazione con almeno un criterio di tipo.

Risposta di esempio (201 Creata)

{
  "aczId": "acz-abc123def456",
  "name": "my-acz-wells-and-logs",
  "status": "ACTIVE",
  "aczType": "LATEST_VERSION",
  "targetFormat": "DELTA_PARQUET",
  "sink": {
    "storageType": "microsoft.storage/storageaccounts",
    "storageId": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}",
    "basePath": "acz-output"
  },
  "allCatalogSync": false,
  "configuration": {
    "catalogKinds": [
      "osdu:wks:master-data--Well:*",
      "osdu:wks:reference-data--UnitOfMeasure:*"
    ],
    "wellboreDDMSKinds": [
      "osdu:wks:work-product-component--WellLog:*"
    ]
  },
  "historicalSnapshotStatus": "PROCESSING",
  "createdTs": "2026-03-31T10:00:00Z",
  "updatedTs": "2026-03-31T10:00:00Z",
  "createdBy": "user@contoso.com"
}

Dopo aver creato l'istanza ACZ, viene avviata l'istantanea cronologica con lo stato PROCESSING. Usare l'API Get ACZ per controllare lo stato.

Elencare istanze ACZ

Usare l'API List ACZs per ottenere tutte le istanze di ACZ in una partizione di dati.

API

GET /api/acz/v1/aczs

# Get auth app ID for your Azure Data Manager for Energy instance
AUTH_APP_ID=$(az resource show --ids /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OpenEnergyPlatform/energyServices/{adme-instance-name} --query properties.authAppId -o tsv)

# Get access token
TOKEN=$(az account get-access-token --resource $AUTH_APP_ID --query accessToken -o tsv)

# List ACZ instances
curl --request GET \
  --url https://{base-url}/api/acz/v1/aczs \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Accept: application/json' \
  --header 'data-partition-id: {data-partition-id}'

Sostituire i segnaposto

Placeholder Description
{subscription-id} ID della sottoscrizione in cui si trova l'istanza di Azure Data Manager per Energy.
{resource-group} Gruppo di risorse che contiene l'istanza di Azure Data Manager for Energy.
{adme-instance-name} Nome dell'istanza di Azure Data Manager per Energy.
{base-url} URL dell'istanza di Azure Data Manager per l'energia (ad esempio, myinstance.energy.azure.com).
{data-partition-id} ID della partizione di dati, ad esempio opendes.

Risposta di esempio (200 OK)

{
  "items": [
    {
      "aczId": "acz-abc123def456",
      "name": "my-acz-wells-and-logs",
      "status": "ACTIVE",
      "aczType": "LATEST_VERSION",
      "targetFormat": "DELTA_PARQUET",
      "sink": {
        "storageType": "microsoft.storage/storageaccounts",
        "storageId": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}",
        "basePath": "acz-output"
      },
      "allCatalogSync": false,
      "configuration": {
        "catalogKinds": [
          "osdu:wks:master-data--Well:*"
        ]
      },
      "historicalSnapshotStatus": "PROCESSING",
      "createdTs": "2026-03-31T10:00:00Z",
      "updatedTs": "2026-03-31T10:00:00Z",
      "createdBy": "user@contoso.com"
    },
    {
      "aczId": "acz-xyz789ghi012",
      "name": "all-catalog-sync-example",
      "status": "ACTIVE",
      "aczType": "LATEST_VERSION",
      "targetFormat": "DELTA_PARQUET",
      "sink": {
        "storageType": "microsoft.storage/storageaccounts",
        "storageId": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}",
        "basePath": "acz-output"
      },
      "allCatalogSync": true,
      "configuration": {
        "wellboreDDMSKinds": [
          "osdu:wks:work-product-component--WellLog:*"
        ]
      },
      "historicalSnapshotStatus": "COMPLETED",
      "createdTs": "2026-03-31T09:00:00Z",
      "updatedTs": "2026-03-31T09:45:00Z",
      "createdBy": "user@contoso.com"
    }
  ],
  "count": 2
}

La risposta elenca tutte le istanze di ACZ in qualsiasi stato: ACTIVE, FAILEDo ACCESS_DENIED. Questa risposta mostra due istanze di ACZ: una che usa la sincronizzazione selettiva del catalogo (allCatalogSync: false con tipi specifici) e un'altra che usa allCatalogSync: true per esportare tutti i tipi di catalogo.

Ottenere i dettagli di ACZ

Usare l'API Get ACZ per ottenere i dettagli per un'istanza di ACZ specifica.

API

GET /api/acz/v1/aczs/{acz-id}

# Get auth app ID for your Azure Data Manager for Energy instance
AUTH_APP_ID=$(az resource show --ids /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OpenEnergyPlatform/energyServices/{adme-instance-name} --query properties.authAppId -o tsv)

# Get access token
TOKEN=$(az account get-access-token --resource $AUTH_APP_ID --query accessToken -o tsv)

# Get ACZ details
curl --request GET \
  --url https://{base-url}/api/acz/v1/aczs/{acz-id} \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Accept: application/json' \
  --header 'data-partition-id: {data-partition-id}'

Sostituire i segnaposto

Placeholder Description
{subscription-id} ID della sottoscrizione in cui si trova l'istanza di Azure Data Manager per Energy.
{resource-group} Gruppo di risorse che contiene l'istanza di Azure Data Manager for Energy.
{adme-instance-name} Nome dell'istanza di Azure Data Manager per Energy.
{base-url} URL dell'istanza di Azure Data Manager for Energy, ad esempio myinstance.energy.azure.com.
{data-partition-id} ID della partizione di dati, ad esempio opendes.
{acz-id} Identificatore ACZ dalla risposta Create o List (ad esempio, acz-abc123def456).

Risposta di esempio (200 OK)

{
  "aczId": "acz-abc123def456",
  "name": "my-acz-wells-and-logs",
  "status": "ACTIVE",
  "aczType": "LATEST_VERSION",
  "targetFormat": "DELTA_PARQUET",
  "sink": {
    "storageType": "microsoft.storage/storageaccounts",
    "storageId": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}",
    "basePath": "acz-output"
  },
  "allCatalogSync": false,
  "configuration": {
    "catalogKinds": [
      "osdu:wks:master-data--Well:*",
      "osdu:wks:reference-data--UnitOfMeasure:*"
    ],
    "wellboreDDMSKinds": [
      "osdu:wks:work-product-component--WellLog:*"
    ]
  },
  "historicalSnapshotStatus": "COMPLETED",
  "createdTs": "2026-03-31T10:00:00Z",
  "updatedTs": "2026-03-31T10:30:00Z",
  "createdBy": "user@contoso.com"
}

Per tenere traccia del provisioning di ACZ, verificare i campi status e historicalSnapshotStatus.

Eliminare un'istanza di ACZ

Usare l'API Delete ACZ per rimuovere una configurazione ACZ.

API

DELETE /api/acz/v1/aczs/{acz-id}

Avvertimento

Questa azione di eliminazione non può essere annullata. Rimuove tutte le configurazioni ACZ e arresta la sincronizzazione. I dati già presenti nell'account di archiviazione Data Lake Storage Gen2 di destinazione rimangono intatti.

# Get auth app ID for your Azure Data Manager for Energy instance
AUTH_APP_ID=$(az resource show --ids /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OpenEnergyPlatform/energyServices/{adme-instance-name} --query properties.authAppId -o tsv)

# Get access token
TOKEN=$(az account get-access-token --resource $AUTH_APP_ID --query accessToken -o tsv)

# Delete ACZ instance
curl --request DELETE \
  --url https://{base-url}/api/acz/v1/aczs/{acz-id} \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Accept: application/json' \
  --header 'data-partition-id: {data-partition-id}'

Sostituire i segnaposto

Placeholder Description
{subscription-id} ID della sottoscrizione in cui si trova l'istanza di Azure Data Manager per Energy.
{resource-group} Gruppo di risorse che contiene l'istanza di Azure Data Manager for Energy.
{adme-instance-name} Nome dell'istanza di Azure Data Manager for Energy.
{base-url} URL dell'istanza di Azure Data Manager for Energy (ad esempio, myinstance.energy.azure.com).
{data-partition-id} ID della partizione di dati, ad esempio opendes.
{acz-id} Identificatore ACZ dalla risposta di Create o List (ad esempio, acz-abc123def456).

Risposta di esempio (204 Nessun contenuto)

Un'eliminazione riuscita restituisce HTTP 204 senza corpo della risposta. Lo stato ACZ cambia in DELETING durante l'esecuzione della pulizia.

Risposte agli errori

Le API ACZ restituiscono i codici di errore seguenti.

Stato HTTP Description
400 Richiesta non valida. Controllare il corpo della richiesta per verificare la presenza di errori di convalida.
401 Non autorizzato. Il token bearer manca o non è valido.
403 Vietato. L'utente non appartiene al gruppo di autorizzazioni necessario.
404 Non trovato. L'ID ACZ specificato non esiste.
422 Convalida non riuscita. Il corpo della richiesta ha valori non validi.
500 Errore interno del server. Contattare il supporto tecnico se l'errore persiste.