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 načítá všechny MarketplaceSubscriptionId a jejich odpovídající CustomerId za uplynulý 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á NormalizedUsage a RawUsage všech zákazníků, kteří mají NormalizedUsage vyšší než 100 000.
SELECT MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('aaaabbbb-0000-cccc-1111-dddd2222eeee', 'bbbbcccc-1111-dddd-2222-eeee3333ffff') Tento dotaz získá MarketplaceSubscriptionId a normalizované hodnoty využití pro každý měsíc podle dvou hodnot CustomerId: aaaabbbb-0000-cccc-1111-dddd2222eeee a bbbbcccc-1111-dddd-2222-eeee3333ffff.

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ě
  • KdePodmínka: WHERE FilterCondition (AND FilterCondition)*
    • FilterCondition: Hodnota operátoru ColumOrMetricName
      • operátor: = | > | < | >= | <= | != | LIKE | NOT LIKE | IN | NOT IN
      • hodnota: Číslo | StringLiteral | MultiNumberList | MultiStringList
        • číslo: -? [0-9]+ (. [0-9] [0-9]*)?
        • StringLiteral: ' [a-zA-Z0-9_]*'
        • VícečíselnýSeznam: (číslo (,číslo)*)
        • MultiStringList: (StringLiteral (,StringLiteral)*)
  • OrderClause: ORDER BY OrderCondition (,OrderCondition)*
    • OrderCondition: ColumOrMetricName (ASC | DESC)*
  • LimitClause: LIMIT [0-9]+
  • časové: TIMESPAN ( DNES | VČERA | POSLEDNÍCH_7_DNÍ | POSLEDNÍCH_14_DNÍ | POSLEDNÍCH_30_DNÍ | POSLEDNÍCH_90_DNÍ | POSLEDNÍCH_180_DNÍ | POSLEDNÍCH_365_DNÍ | POSLEDNÍ_MĚSÍC | POSLEDNÍ_3_MĚSÍCE | POSLEDNÍ_6_MĚSÍCŮ | POSLEDNÍ_1_ROK)

Struktura dotazu

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

  • VYBRAT
  • OD
  • KDE
  • ORDER BY
  • LIMITA
  • ČASOVÝ ROZSAH

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

VYBRAT

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

Příklad :

  • SELECTOfferName, NormalizedUsage

ODLIŠNÝ

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 DISTINCTMarketplaceSubscriptionId, OfferType

OD

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
  • FROM ISVOrder

KDE

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 v selectableColumns a availableMetrics. Hodnoty zadané v podmínce filtru mohou být seznam čísel nebo seznam řetězců pouze v případech, kdy je operátor IN nebo NOT IN. Hodnoty lze vždy zadat jako textový řetězec a pak se převedou na nativní typy sloupců. Více podmínek filtru musí být odděleno operací AND.

příklad :

  • MarketplaceSubscriptionId = 'aaaabbbb-0000-cccc-1111-dddd2222eeee'
  • CustomerName LIKE '%Contosso%'
  • CustomerId NENÍ V (1000, 1001, 1002)
  • OrderQuantity=100
  • MnožstvíObjednávky='100'
  • MarketplaceSubscriptionId='bbbbcccc-1111-dddd-2222-eeee3333ffff' AND CustomerId='0f8b7fa0-eb83-a183-1225-ca153ef807aa'

SEŘADIT PODLE

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

příklad:

  • SEŘADIT PODLE NormalizedUsage VZESTUPNĚ, EstimatedExtendedCharge(CC) SESTUPNĚ
  • 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 pole availableDateRanges v definici datové sady.

Rozlišování malých a velkých písmen ve specifikaci dotazu

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

Viz také