Delen via


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

Zie ook