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)*)
- FilterCondition: Valore dell'operatore ColumOrMetricName
- 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.