Anpassad frågespecifikation för kommersiell marknadsplats
Partner kan använda den här frågespecifikationen för att enkelt formulera anpassade frågor för att extrahera data från analystabeller. Frågorna kan endast användas för att välja önskade kolumner och mått som matchar ett visst kriterium. Kärnan i språkspecifikationen är den datamängdsdefinition som en anpassad fråga kan skrivas på.
Datauppsättningar
På samma sätt som vissa frågor körs mot en databas som har tabeller och kolumner, fungerar en anpassad fråga på datauppsättningar som har kolumner och mått. Den fullständiga listan över tillgängliga datauppsättningar för att formulera en fråga kan hämtas med hjälp av API:et för datauppsättningar.
Här är ett exempel på en datauppsättning som visas som en 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
}
Delar av en datauppsättning
- Ett datauppsättningsnamn är som ett databastabellnamn. Till exempel ISVUsage. En datauppsättning har en lista över kolumner som kan väljas, till exempel MarketplaceSubscriptionId.
- En datauppsättning har också mått, som liknar aggregeringsfunktioner i en databas. Till exempel NormalizedUsage.
- Det finns fasta tidsintervall för vilka data kan exporteras.
Formulera en fråga i en datauppsättning
Det här är några exempelfrågor som visar hur du extraherar olika typer av data.
Fråga | beskrivning |
---|---|
SELECT MarketplaceSubscriptionId,CustomerId FROM ISVUsage TIMESPAN LAST_MONTH | Den här frågan hämtar varje MarketplaceSubscriptionId och motsvarande CustomerId under den senaste månaden. |
SELECT MarketplaceSubscriptionId, EstimatedExtendedChargeCC FROM ISVUsage ORDER BY EstimatedExtendedChargeCC LIMIT 10 | Den här frågan hämtar de 10 främsta prenumerationerna i fallande ordning efter antalet sålda licenser under varje prenumeration. |
SELECT CustomerId, NormalizedUsage, RawUsage FROM ISVUsage WHERE NormalizedUsage > 100000 ORDER BY NormalizedUsage TIMESPAN LAST_6_MONTHS | Den här frågan hämtar NormalizedUsage och RawUsage för alla kunder som har NormalizedUsage större än 100 000. |
SELECT MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('2a31c234-1f4e-4c60-909e-76d234f93161', '80780748-3f9a-11eb-b378-0242ac130002') | Den här frågan hämtar MarketplaceSubscriptionId och den normaliserade användningen för varje månad med de två CustomerId värdena: 2a31c234-1f4e-4c60-909e-76d234f93161 och 80780748-3f9a-11eb-b378-0242ac130002 . |
Frågespecifikation
I det här avsnittet beskrivs frågedefinitionen och strukturen.
Grammatikreferens
I den här tabellen beskrivs de symboler som används i frågor.
Symbol | Innebörd |
---|---|
? | Valfritt |
* | Noll eller mer |
+ | En eller flera |
| | Eller/En i listan |
Frågedefinition
Frågesatsen har följande satser: SelectClause, FromClause, WhereClause?, OrderClause?, LimitClause?och TimeSpan?.
- SelectClause: SELECT ColumOrMetricName (, ColumOrMetricName)*
- ColumOrMetricName: Kolumner och mått som definierats i datauppsättningen
- FromClause: FROM DatasetName
- DatasetName: Datauppsättningsnamn som definierats i datauppsättningen
- WhereClause: WHERE FilterCondition (AND FilterCondition)*
- FilterCondition: Operatorvärde för ColumOrMetricName
- Operator: = | > | < | >= | <= | != | LIKE | INTE SOM | IN | INTE I
- Värde: Tal | StringLiteral | MultiNumberList | MultiStringList
- Nummer: -? [0-9]+ (. [0-9] [0-9]*)?
- StringLiteral: [a-zA-Z0-9_]*'
- MultiNumberList: (Tal (,Tal)*)
- MultiStringList: (StringLiteral (,StringLiteral)*)
- FilterCondition: Operatorvärde för ColumOrMetricName
- OrderClause: ORDER BY OrderCondition (,OrderCondition)*
- OrderCondition: ColumOrMetricName (ASC | DESC)*
- LimitClause: LIMIT [0-9]+
- Tidsintervall: TIDSINTERVALL (IDAG | IGÅR | 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)
Frågestruktur
En rapportfråga består av flera delar:
- SELECT
- FROM
- WHERE
- ORDER BY
- GRÄNS
- TIDSINTERVALL
Varje del beskrivs nedan.
SELECT
Den här delen av frågan anger de kolumner som exporteras. De kolumner som kan väljas är fälten i och availableMetrics
avsnitten i selectableColumns
en datauppsättning. Om det finns en måttkolumn som ingår i den valda fältlistan beräknas måtten för varje distinkt kombination av de icke-metriska kolumnerna.
Exempel:
- VÄLJ
OfferName
,NormalizedUsage
TYDLIG
Genom att lägga till DISTINCT-nyckelord efter SELECT ser du till att de slutliga exporterade data inte har några dubblettrader. DISTINCT-nyckelord fungerar oavsett om en måttkolumn har valts eller inte.
Exempel:
- VÄLJ DISTINKT
MarketplaceSubscriptionId, OfferType
FROM
Den här delen av frågan anger datauppsättningen som data måste exporteras från. Det datauppsättningsnamn som anges här måste vara ett giltigt datamängdsnamn som returneras av datamängds-API:et.
Exempel:
- FRÅN
ISVUsage
- FRÅN
ISVOrder
WHERE
Den här delen av frågan används för att ange filtervillkor för datamängden. Endast rader som matchar alla villkor som anges i den här satsen finns i den slutgiltiga exporterade filen. Filtervillkoret kan finnas i någon av kolumnerna i selectableColumns
och availableMetrics
. Värdena som anges i filtervillkoret kan vara en lista med tal eller en lista med strängar endast när operatorn är IN
eller NOT IN
. Värdena kan alltid anges som en literalsträng och de konverteras till de inbyggda typerna av kolumner. Flera filtervillkor måste avgränsas med en AND
åtgärd.
Exempel:
- 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-ca153ef807aaa'
ORDER BY
Den här delen av frågan anger ordningsvillkoren för de exporterade raderna. De kolumner som beställningen kan definieras på måste vara från datauppsättningen selectableColumns
och availableMetrics
. Om det inte finns någon angiven ordningsriktning är den standardinställningen i DESC
kolumnen. Beställning kan definieras på flera kolumner genom att villkoret avgränsas med kommatecken.
Exempel:
- ORDER BY NormalizedUsage ASC, EstimatedExtendedCharge(CC) DESC
- ORDER BY CustomerName ASC, NormalizedUsage
GRÄNS
Den här delen av frågan anger antalet rader som exporteras. Talet som du anger måste vara ett positivt heltal som inte är noll.
TIDSINTERVALL
Den här delen av frågan anger hur lång tid data behöver exporteras för. Möjliga värden ska komma från fältet availableDateRanges
i datamängdsdefinitionen.
Skiftlägeskänslighet i frågespecifikation
Specifikationen är helt skiftlägesokänslig. Fördefinierade nyckelord, kolumnnamn och värden kan anges med versaler eller gemener.