Sdílet prostřednictvím


Specifikace vlastního dotazu pro komerční marketplace

Partneři můžou pomocí této specifikace dotazu snadno formulovat vlastní dotazy pro extrakci dat z analytických tabulek. Dotazy lze použít k výběru pouze požadovaných sloupců a metrik, které odpovídají určitému kritériu. Jádrem specifikace jazyka je definice datové sady, na které lze napsat vlastní dotaz.

Datové sady

Stejným způsobem jako se některé dotazy spouští v databázi, která obsahuje tabulky a sloupce, funguje vlastní dotaz na datové sady se sloupci a metrikami. Úplný seznam dostupných datových sad pro formulaci dotazu lze získat pomocí rozhraní API datových sad.

Tady je příklad datové sady zobrazené jako 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
        }

Části datové sady

  • Název datové sady se podobá názvu tabulky databáze. Například ISVUsage. Datová sada obsahuje seznam sloupců, které je možné vybrat, například MarketplaceSubscriptionId.
  • Datová sada obsahuje také metriky, které se podobají agregačním funkcím v databázi. Například NormalizedUsage.
  • Existují pevné časové rozsahy, po které je možné exportovat data.

Formulace dotazu na datovou sadu

Toto jsou některé ukázkové dotazy, které ukazují, jak extrahovat různé typy dat.

Dotaz Popis
SELECT MarketplaceSubscriptionId, CustomerId FROM ISVUsage TIMESPAN LAST_MONTH Tento dotaz získá každý MarketplaceSubscriptionId a jeho odpovídající CustomerId za poslední měsíc.
SELECT MarketplaceSubscriptionId, EstimatedExtendedChargeCC FROM ISVUsage ORDER BY EstimatedExtendedChargeCC LIMIT 10 Tento dotaz získá prvních 10 předplatných v sestupném pořadí počtu licencí prodaných v rámci každého předplatného.
SELECT CustomerId, NormalizedUsage, RawUsage FROM ISVUsage WHERE NormalizedUsage > 100000 ORDER BY NormalizedUsage TIMESPAN LAST_6_MONTHS Tento dotaz získá normalizované a nezpracované využití všech zákazníků, kteří mají normalizovanou využití vyšší než 100 000.
SELECT MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('2a31c234-1f4e-4c60-909e-76d234f93161', '80780748-3f9a-11eb-b378-0242ac130002') Tento dotaz získá MarketplaceSubscriptionId normalizované využití pro každý měsíc o dvě CustomerId hodnoty: 2a31c234-1f4e-4c60-909e-76d234f93161 a 80780748-3f9a-11eb-b378-0242ac130002.

Specifikace dotazu

Tato část popisuje definici a strukturu dotazu.

Referenční informace k gramatikě

Tato tabulka popisuje symboly používané v dotazech.

Symbol Význam
? Volitelné
* Nula nebo více
+ Jedna nebo více
| Nebo/jeden ze seznamu

Definice dotazu

Příkaz dotazu má následující klauzule: SelectClause, FromClause, WhereClause?, OrderClause?, LimitClause?, and TimeSpan?.

  • SelectClause: SELECT ColumOrMetricName (, ColumOrMetricName)*
    • ColumOrMetricName: Sloupce a metriky definované v datové sadě
  • FromClause: FROM DatasetName
    • DatasetName: Název datové sady definovaný v datové sadě
  • WhereClause: WHERE FilterCondition (AND FilterCondition)*
    • FilterCondition: Hodnota operátoru ColumOrMetricName
      • Operátor: = | > | | > <= | <= | != | LIKE | NELÍBÍ SE | IN | NENÍ V
      • Hodnota: Číslo | StringLiteral | MultiNumberList | MultiStringList
        • Číslo: -? [0-9]+ (. [0-9] [0-9]*)?
        • StringLiteral: [a-zA-Z0-9_]*'
        • MultiNumberList: (Číslo (,Číslo)*)
        • MultiStringList: (StringLiteral (,StringLiteral)*)
  • OrderClause: ORDER BY OrderCondition (,OrderCondition)*
    • OrderCondition: ColumOrMetricName (ASC | DESC)*
  • LimitClause: LIMIT [0-9]+
  • Časový interval: ČASOVÝ INTERVAL ( DNES | VČERA | 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)

Struktura dotazu

Dotaz sestavy se skládá z několika částí:

  • VÝBĚR
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • ČASOVÝ ROZSAH

Jednotlivé části jsou popsány níže.

VÝBĚR

Tato část dotazu určuje sloupce, které se exportují. Sloupce, které lze vybrat, jsou pole uvedená v selectableColumns částech datové sady.availableMetrics Pokud je ve vybraném seznamu polí zahrnutý sloupec metriky, vypočítají se metriky pro každou odlišnou kombinaci nemetrického sloupce.

Příklad:

  • SELECT OfferName, NormalizedUsage

ZŘETELNÝ

Přidání klíčového slova DISTINCT po příkazu SELECT zajistí, že konečná exportovaná data nebudou obsahovat žádné duplicitní řádky. Klíčové slovo DISTINCT funguje bez ohledu na to, jestli je vybraný sloupec metriky nebo ne.

Příklad:

  • SELECT DISTINCT MarketplaceSubscriptionId, OfferType

FROM

Tato část dotazu označuje datovou sadu, ze které se mají exportovat data. Zadaný název datové sady musí být platný název datové sady vrácený rozhraním API datových sad.

Příklad:

  • OD ISVUsage
  • OD ISVOrder

WHERE

Tato část dotazu slouží k určení podmínek filtru datové sady. V konečném exportovaného souboru se nacházejí pouze řádky odpovídající všem podmínkám uvedeným v této klauzuli. Podmínka filtru může být na libovolném sloupci uvedeném a selectableColumns availableMetrics. Hodnoty zadané v podmínce filtru mohou být seznamem čísel nebo seznamem řetězců pouze v případech, kdy je IN operátor nebo NOT IN. Hodnoty lze vždy zadat jako řetězec literálu a převedou se na nativní typy sloupců. Několik podmínek filtru musí být odděleno AND operací.

Příklad:

  • 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' ANDId=' 0f8b7fa0-eb83-a183-1225-ca153ef807aa'

ORDER BY

Tato část dotazu určuje kritéria řazení pro exportované řádky. Sloupce, na kterých je možné definovat řazení, musí být z selectableColumns datové sady a availableMetrics z datové sady. Pokud není zadaný žádný směr řazení, ve sloupci se ve výchozím nastavení nastaví DESC . Řazení lze definovat u více sloupců oddělením kritérií čárkou.

Příklad:

  • ORDER BY NormalizedUsage ASC, EstimatedExtendedCharge(CC) DESC
  • ORDER BY CustomerName ASC, NormalizedUsage

LIMIT

Tato část dotazu určuje počet exportovaných řádků. Zadané číslo musí být kladné nenulové celé číslo.

ČASOVÝ ROZSAH

Tato část dotazu určuje dobu trvání, po kterou se mají data exportovat. Možné hodnoty by měly být z availableDateRanges pole v definici datové sady.

Citlivost malých a velkých písmen ve specifikaci dotazu

Specifikace je zcela nerozlišující malá a velká písmena. Předdefinovaná klíčová slova, názvy sloupců a hodnoty lze zadat pomocí velkých nebo malých písmen.

Viz také