Aangepaste queryspecificatie voor commerciële marketplace
Partners kunnen deze queryspecificatie gebruiken om eenvoudig aangepaste query's te formuleren voor het extraheren van gegevens uit analysetabellen. De query's kunnen worden gebruikt om alleen de gewenste kolommen en metrische gegevens te selecteren die overeenkomen met een bepaald criterium. De kern van de taalspecificatie is de definitie van de gegevensset waarop een aangepaste query kan worden geschreven.
Gegevenssets
Op dezelfde manier als sommige query's worden uitgevoerd op een database met tabellen en kolommen, werkt een aangepaste query op gegevenssets met kolommen en metrische gegevens. De volledige lijst met beschikbare gegevenssets voor het formuleren van een query kan worden verkregen met behulp van de API voor gegevenssets.
Hier volgt een voorbeeld van een gegevensset die wordt weergegeven als een 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
}
Onderdelen van een gegevensset
- Een naam van een gegevensset lijkt op de naam van een databasetabel. Bijvoorbeeld ISVUsage. Een gegevensset bevat een lijst met kolommen die kunnen worden geselecteerd, zoals MarketplaceSubscriptionId.
- Een gegevensset bevat ook metrische gegevens, zoals aggregatiefuncties in een database. Bijvoorbeeld NormalizedUsage.
- Er zijn vaste tijdsperioden waarin gegevens kunnen worden geëxporteerd.
Een query op een gegevensset formuleren
Dit zijn enkele voorbeeldquery's die laten zien hoe u verschillende typen gegevens kunt extraheren.
Query | Beschrijving |
---|---|
SELECT MarketplaceSubscriptionId, CustomerId FROM ISVUsage TIMESPAN LAST_MONTH | Deze query haalt elke MarketplaceSubscriptionId en de bijbehorende gegevens CustomerId op in de afgelopen maand. |
SELECT MarketplaceSubscriptionId, EstimatedExtendedChargeCC FROM ISVUsage ORDER BY EstimatedExtendedChargeCC LIMIT 10 | Met deze query worden de tien beste abonnementen opgehaald in aflopende volgorde van het aantal licenties dat onder elk abonnement wordt verkocht. |
SELECT CustomerId, NormalizedUsage, RawUsage FROM ISVUsage WHERE NormalizedUsage > 100000 ORDER BY NormalizedUsage TIMESPAN LAST_6_MONTHS | Deze query haalt de NormalizedUsage en RawUsage op van alle klanten met NormalizedUsage groter dan 100.000. |
SELECT MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('2a31c234-1f4e-4c60-909e-76d234f93161', '80780748-3f9a-11eb-b378-0242ac130002') | Met deze query worden de MarketplaceSubscriptionId en het genormaliseerde gebruik voor elke maand opgehaald door de twee CustomerId waarden: 2a31c234-1f4e-4c60-909e-76d234f93161 en 80780748-3f9a-11eb-b378-0242ac130002 . |
Queryspecificatie
In deze sectie worden de querydefinitie en -structuur beschreven.
Grammaticareferentie
In deze tabel worden de symbolen beschreven die worden gebruikt in query's.
Symbool | Betekenis |
---|---|
? | Optioneel |
* | Nul of meer |
+ | Een of meer |
| | Of/een van de lijst |
Querydefinitie
De query-instructie bevat de volgende componenten: SelectClause, FromClause, WhereClause?, OrderClause?, LimitClause?, en TimeSpan?.
- SelectClause: SELECT ColumOrMetricName (, ColumOrMetricName)*
- ColumOrMetricName: kolommen en metrische gegevens die zijn gedefinieerd in de gegevensset
- FromClause: FROM DatasetName
- DatasetName: De naam van de gegevensset die is gedefinieerd in de gegevensset
- WhereClause: WHERE FilterCondition (AND FilterCondition)*
- FilterCondition: Operatorwaarde ColumOrMetricName
- Operator: = | > | | > <= | <= | != | LIKE | NIET ZOALS | IN | NIET IN
- Waarde: getal | StringLiteral | MultiNumberList | MultiStringList
- Getal: -? [0-9]+ (. [0-9] [0-9]*)?
- StringLiteral: ' [a-zA-Z0-9_]*'
- MultiNumberList: (getal (,getal)*)
- MultiStringList: (StringLiteral (,StringLiteral)*)
- FilterCondition: Operatorwaarde ColumOrMetricName
- OrderClause: ORDER BY OrderCondition (,OrderCondition)*
- OrderCondition: ColumOrMetricName (ASC | DESC)*
- LimitClause: LIMIT [0-9]+
- Periode: TIJDSPANNE ( VANDAAG | GISTEREN | 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)
Querystructuur
Een rapportquery bestaat uit meerdere onderdelen:
- SELECTEREN
- FROM
- WHERE
- ORDER BY
- GRENS
- TIJDSPANNE
Elk onderdeel wordt hieronder beschreven.
SELECTEREN
In dit deel van de query worden de kolommen opgegeven die worden geëxporteerd. De kolommen die kunnen worden geselecteerd, zijn de velden die worden vermeld in selectableColumns
en availableMetrics
secties van een gegevensset. Als er een metrische kolom is opgenomen in de lijst met geselecteerde velden, worden metrische gegevens berekend voor elke afzonderlijke combinatie van de niet-metrische kolommen.
Voorbeeld:
- SELECT
OfferName
,NormalizedUsage
DUIDELIJK
Het toevoegen van het sleutelwoord DISTINCT na SELECT zorgt ervoor dat de uiteindelijke geëxporteerde gegevens geen dubbele rijen hebben. DISTINCT-trefwoord werkt ongeacht of een metrische kolom al dan niet is geselecteerd.
Voorbeeld:
- SELECT DISTINCT
MarketplaceSubscriptionId, OfferType
FROM
Dit deel van de query geeft de gegevensset aan waaruit gegevens moeten worden geëxporteerd. De naam van de gegevensset die hier wordt opgegeven, moet een geldige gegevenssetnaam zijn die wordt geretourneerd door de API voor gegevenssets.
Voorbeeld:
- VAN
ISVUsage
- VAN
ISVOrder
WHERE
Dit deel van de query wordt gebruikt om filtervoorwaarden voor de gegevensset op te geven. Alleen rijen die overeenkomen met alle voorwaarden die in deze component worden vermeld, zijn aanwezig in het uiteindelijke geëxporteerde bestand. De filtervoorwaarde kan zich bevinden op een van de kolommen die worden vermeld in selectableColumns
en availableMetrics
. De waarden die in de filtervoorwaarde zijn opgegeven, kunnen alleen een lijst met getallen of een lijst met tekenreeksen zijn als de operator of IN
NOT IN
. De waarden kunnen altijd worden opgegeven als een letterlijke tekenreeks en worden geconverteerd naar de systeemeigen typen kolommen. Meerdere filtervoorwaarden moeten worden gescheiden door een AND
bewerking.
Voorbeeld:
- 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
In dit deel van de query worden de volgordecriteria voor de geëxporteerde rijen opgegeven. De kolommen waarop volgorde kan worden gedefinieerd, moeten afkomstig zijn van de selectableColumns
ene gegevensset availableMetrics
. Als er geen volgorderichting is opgegeven, wordt deze standaard ingesteld DESC
op de kolom. Volgorde kan worden gedefinieerd voor meerdere kolommen door de criteria te scheiden met een komma.
Voorbeeld:
- ORDER BY NormalizedUsage ASC, EstimatedExtendedCharge(CC) DESC
- ORDER BY CustomerName ASC, NormalizedUsage
GRENS
Dit deel van de query geeft het aantal rijen op dat wordt geëxporteerd. Het getal dat u opgeeft, moet een positief niet-nul geheel getal zijn.
TIJDSPANNE
Dit deel van de query geeft de tijdsduur aan waarvoor de gegevens moeten worden geëxporteerd. De mogelijke waarden moeten afkomstig zijn uit het availableDateRanges
veld in de definitie van de gegevensset.
Hoofdlettergevoeligheid in queryspecificatie
De specificatie is volledig niet hoofdlettergevoelig. Vooraf gedefinieerde trefwoorden, kolomnamen en waarden kunnen worden opgegeven met hoofdletters of kleine letters.