Dela via


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)*)
  • 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.

Se även