Condividi tramite


Specifica di query personalizzata per il marketplace commerciale

I partner possono usare questa specifica di query per formulare facilmente query personalizzate per estrarre dati dalle tabelle di analisi. Le query possono essere usate per selezionare solo le colonne e le metriche desiderate che corrispondono a un determinato criterio. Al centro della specifica del linguaggio è la definizione del set di dati in cui è possibile scrivere una query personalizzata.

Set di dati

Allo stesso modo in cui alcune query vengono eseguite su un database con tabelle e colonne, una query personalizzata funziona su set di dati con colonne e metriche. L'elenco completo dei set di dati disponibili per la formulazione di una query può essere ottenuto usando l'API set di dati.

Di seguito è riportato un esempio di set di dati illustrato come JSON.

{
            "datasetName": "ISVUsage",
            "selectableColumns": [
                "MarketplaceSubscriptionId",
                "MonthStartDate",
                "OfferType",
                "AzureLicenseType",
                "MarketplaceLicenseType",
                "SKU",
                "CustomerCountry",
                "IsPreviewSKU",
                "SKUBillingType",
                "VMSize",
                "CloudInstanceName",
                "OfferName",
                "IsPrivateOffer",
                "DeploymentMethod",
                "CustomerName",
                "CustomerCompanyName",
                "UsageDate",
                "IsNewCustomer",
                "CoreSize",
                "TrialEndDate",
                "CustomerCurrencyCC",
                "PriceCC",
                "PayoutCurrencyPC",
                "EstimatedPricePC",
                "UsageReference",
                "UsageUnit",
                "CustomerId",
                "BillingAccountId",
                "MeterDimension",
                "MeterId",
                "PartnerCenterDetectedAnomaly",
                "PublisherMarkedAnomaly",
                "NewReportedUsage",
                "ActionTakenAt",
                "ActionTakenBy",
                "PlanId",
                "ReferenceId",
                "ListPriceUSD",
                "DiscountedPriceUSD",
                "IsPrivatePlan",
                "OfferId",
                "PrivateOfferId",
                "PrivateOfferName",
                "BillingId",
                "PlanType",
                "CustomerAccess",
                "PublisherAccess",
                "CustomerAdjustmentUSD",
                "MultiParty",
                "PartnerInfo",
                "SalesNotes",
                "IsCustomMeter",
                "AssetId",
                "IsMultisolution",
                "VMSubscription"
            ],
            "availableMetrics": [
                "NormalizedUsage",
                "MeteredUsage",
                "RawUsage",
                "EstimatedExtendedChargeCC",
                "EstimatedExtendedChargePC",
                "EstimatedFinancialImpactUSD"
            ],
            "availableDateRanges": [
                "LAST_MONTH",
                "LAST_3_MONTHS",
                "LAST_6_MONTHS",
                "LAST_1_YEAR",
                "LAST_3_YEARS"
            ],
            "minimumRecurrenceInterval": 1
        }

Parti di un set di dati

  • Un nome del set di dati è simile a un nome di tabella del database. Ad esempio, ISVUsage. Un set di dati include un elenco di colonne che possono essere selezionate, ad esempio MarketplaceSubscriptionId.
  • Un set di dati include anche metriche, come le funzioni di aggregazione in un database. Ad esempio, NormalizedUsage.
  • Esistono intervalli di tempo fissi su cui è possibile esportare i dati.

Simulazione di una query in un set di dati

Si tratta di alcune query di esempio che illustrano come estrarre vari tipi di dati.

Query Descrizione
SELECT MarketplaceSubscriptionId,CustomerId FROM ISVUsage TIMESPAN LAST_MONTH Questa query ottiene ogni MarketplaceSubscriptionId oggetto e il corrispondente CustomerId nell'ultimo mese.
SELECT MarketplaceSubscriptionId, EstimatedExtendedChargeCC FROM ISVUsage ORDER BY EstimatedExtendedChargeCC LIMIT 10 Questa query ottiene le prime 10 sottoscrizioni in ordine decrescente del numero di licenze vendute in ogni sottoscrizione.
SELECT CustomerId, NormalizedUsage, RawUsage FROM ISVUsage WHERE NormalizedUsage > 100000 ORDER BY NormalizedUsage TIMESPAN LAST_6_MONTHS Questa query ottiene NormalizedUsage e RawUsage di tutti i clienti con NormalizedUsage maggiore di 100.000.
SELECT MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('2a31c234-1f4e-4c60-909e-76d234f93161', '80780748-3f9a-11eb-b378-0242ac130002') Questa query ottiene e MarketplaceSubscriptionId l'utilizzo normalizzato per ogni mese in base ai due CustomerId valori: 2a31c234-1f4e-4c60-909e-76d234f93161 e 80780748-3f9a-11eb-b378-0242ac130002.

Specifica della query

Questa sezione descrive la definizione e la struttura della query.

Informazioni di riferimento sulla grammatica

Questa tabella descrive i simboli usati nelle query.

Simbolo Significato
? Facoltativo
* Zero o più
+ Uno o più
| Oppure/Uno dell'elenco

Definizione query

L'istruzione di query include le clausole seguenti: SelectClause, FromClause, WhereClause?, OrderClause?, LimitClause?e TimeSpan?.

  • SelectClause: SELECT ColumOrMetricName (, ColumOrMetricName)*
    • ColumOrMetricName: colonne e metriche definite all'interno del set di dati
  • FromClause: FROM DatasetName
    • DatasetName: nome del set di dati definito all'interno del set di dati
  • WhereClause: WHERE FilterCondition (AND FilterCondition)*
    • FilterCondition: Valore dell'operatore ColumOrMetricName
      • Operatore: = | > | < | >= | <= | != | LIKE | NOT LIKE | IN | NOT IN
      • Valore: Numero | StringLiteral | MultiNumberList | MultiStringList
        • Numero: -? [0-9]+ (. [0-9] [0-9]*)?
        • StringLiteral: ' [a-zA-Z0-9_]*'
        • MultiNumberList: (Numero (,Number)*)
        • MultiStringList: (StringLiteral (,StringLiteral)*)
  • OrderClause: ORDER BY OrderCondition (,OrderCondition)*
    • OrderCondition: ColumOrMetricName (ASC | DESC)*
  • LimitClause: LIMIT [0-9]+
  • TimeSpan: TIMESPAN ( TODAY | IERI | LAST_7_DAYS | LAST_14_DAYS | LAST_30_DAYS | LAST_90_DAYS | LAST_180_DAYS | LAST_365_DAYS | LAST_MONTH | LAST_3_MONTHS | LAST_6_MONTHS | LAST_1_YEAR)

Struttura di query

Una query report è costituita da più parti:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • TIMESPAN

Ogni parte è descritta di seguito.

SELECT

Questa parte della query specifica le colonne esportate. Le colonne che è possibile selezionare sono i campi elencati in selectableColumns e availableMetrics le sezioni di un set di dati. Se è presente una colonna metrica inclusa nell'elenco dei campi selezionati, le metriche vengono calcolate per ogni combinazione distinta delle colonne nonmetriche.

Esempio:

  • SELECT OfferName, NormalizedUsage

DISTINCT

L'aggiunta di una parola chiave DISTINCT dopo SELECT garantisce che i dati esportati finali non contengano righe duplicate. La parola chiave DISTINCT funziona indipendentemente dal fatto che sia selezionata o meno una colonna metrica.

Esempio:

  • SELECT DISTINCT MarketplaceSubscriptionId, OfferType

FROM

Questa parte della query indica il set di dati da cui devono essere esportati i dati. Il nome del set di dati specificato qui deve essere un nome di set di dati valido restituito dall'API dei set di dati.

Esempio:

  • FROM ISVUsage
  • FROM ISVOrder

WHERE

Questa parte della query viene usata per specificare le condizioni di filtro nel set di dati. Solo le righe corrispondenti a tutte le condizioni elencate in questa clausola sono presenti nel file esportato finale. La condizione di filtro può trovarsi in una delle colonne elencate in selectableColumns e availableMetrics. I valori specificati nella condizione di filtro possono essere un elenco di numeri o un elenco di stringhe solo quando l'operatore è IN o NOT IN. I valori possono essere sempre specificati come stringa letterale e vengono convertiti nei tipi nativi di colonne. È necessario separare più condizioni di filtro con un'operazione AND .

Esempio:

  • MarketplaceSubscriptionId = '868368da-957d-4959-8992-3c12dc7e6260'
  • CustomerName LIKE '%Contosso%'
  • CustomerId NOT IN (1000, 1001, 1002)
  • OrderQuantity=100
  • OrderQuantity='100'
  • MarketplaceSubscriptionId='7b487ac0-ce12-b732-dcd6-91a1e4e74a50' AND CustomerId=' 0f8b7fa0-eb83-a183-1225-ca153ef807aa'

ORDER BY

Questa parte della query specifica i criteri di ordinamento per le righe esportate. Le colonne in cui è possibile definire l'ordinamento devono essere da selectableColumns e availableMetrics del set di dati. Se non è specificata alcuna direzione di ordinamento, l'impostazione predefinita DESC è nella colonna. L'ordinamento può essere definito in più colonne separando i criteri con una virgola.

Esempio:

  • ORDER BY NormalizedUsage ASC, EstimatedExtendedCharge(CC) DESC
  • ORDER BY CustomerName ASC, NormalizedUsage

LIMIT

Questa parte della query specifica il numero di righe esportate. Il numero specificato deve essere un numero intero diverso da zero positivo.

TIMESPAN

Questa parte della query specifica la durata dell'esportazione dei dati. I valori possibili devono essere compresi availableDateRanges nel campo nella definizione del set di dati.

Distinzione tra maiuscole e minuscole nella specifica della query

La specifica non fa distinzione tra maiuscole e minuscole. È possibile specificare parole chiave predefinite, nomi di colonna e valori usando lettere maiuscole o minuscole.

Vedi anche