Compartilhar via


Especificação de consulta personalizada para o Microsoft Marketplace

Os parceiros podem usar essa especificação de consulta para formular facilmente consultas personalizadas para extrair dados de tabelas de análise. As consultas podem ser usadas para selecionar apenas as colunas e métricas desejadas que correspondem a um determinado critério. No centro da especificação da linguagem está a definição do conjunto de dados no qual uma consulta personalizada pode ser escrita.

Conjuntos de dados

Da mesma forma que algumas consultas são executadas em um banco de dados que tem tabelas e colunas, uma consulta personalizada funciona em conjuntos de dados que têm colunas e métricas. A lista completa de conjuntos de dados disponíveis para formular uma consulta pode ser obtida usando a API de conjuntos de dados.

Aqui está um exemplo de um conjunto de dados mostrado como um 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
        }

Partes de um conjunto de dados

  • Um nome de conjunto de dados é como um nome de tabela de banco de dados. Por exemplo, ISVUsage. Um conjunto de dados tem uma lista de colunas que podem ser selecionadas, como MarketplaceSubscriptionId.
  • Um conjunto de dados também tem métricas, que são como funções de agregação em um banco de dados. Por exemplo, NormalizedUsage.
  • Existem intervalos de tempo fixos durante os quais os dados podem ser exportados.

Formulando uma consulta em um conjunto de dados

Estas são algumas consultas de exemplo que mostram como extrair vários tipos de dados.

Consulta Descrição
SELECIONAR MarketplaceSubscriptionId,CustomerId FROM ISVUsage TIMESPAN LAST_MONTH Essa consulta obtém every MarketplaceSubscriptionId e seus correspondentes CustomerId no último mês.
SELECIONAR MarketplaceSubscriptionId, EstimatedExtendedChargeCC FROM ISVUsage ORDER BY EstimatedExtendedChargeCC LIMIT 10 Essa consulta obtém as 10 principais assinaturas em ordem decrescente do número de licenças vendidas em cada assinatura.
SELECIONAR CustomerId, NormalizedUsage, RawUsage FROM ISVUsage WHERE NormalizedUsage > 100000 ORDER BY NormalizedUsage TIMESPAN LAST_6_MONTHS Essa consulta obtém o NormalizedUsage e o RawUsage de todos os clientes que têm NormalizedUsage maior que 100.000.
SELECIONAR MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('aaaabbbb-0000-cccc-1111-dddd2222eeee', 'bbbbcccc-1111-dddd-2222-eeee3333ffff') Essa consulta obtém o MarketplaceSubscriptionId e o uso normalizado para cada mês pelos dois CustomerId valores: aaaabbbb-0000-cccc-1111-dddd2222eeee e bbbbcccc-1111-dddd-2222-eeee3333ffff.

Especificação de consulta

Esta seção descreve a definição e a estrutura da consulta.

Referência gramatical

Esta tabela descreve os símbolos usados em consultas.

Símbolo Significado
? Opcional
* Zero ou mais
+ Um ou mais
| Ou/Um da lista

Definição de consulta

A instrução de consulta tem as seguintes cláusulas: SelectClause, FromClause, WhereClause?, OrderClause?, LimitClause? e TimeSpan?.

  • SelectClause: SELECT ColumOrMetricName (, ColumOrMetricName)*
    • ColumOrMetricName: colunas e métricas definidas no conjunto de dados
  • FromClause: FROM DatasetName
    • DatasetName: nome do conjunto de dados definido no conjunto de dados
  • WhereClause: WHERE FilterCondition (And FilterCondition)*
    • FilterCondition: Valor do operador ColumOrMetricName
      • Operador: = | > | < | >= | <= | != | GOSTO | NÃO GOSTO | EM | NÃO EM
      • Valor: Número | Literal de Cadeia de Caracteres | Lista de Números Múltiplos | Lista de Strings Múltiplas
        • Número: -? [0-9]+ (. [0-9] [0-9]*)?
        • StringLiteral: ' [a-zA-Z0-9_]*'
        • MultiNumberList: (Número (,Número)*)
        • MultiStringList: (StringLiteral (,StringLiteral)*)
  • OrderClause: ORDER BY OrderCondition (,OrderCondition)*
    • OrderCondition: ColumnOrMetricName (ASC | DESC)*
  • CláusulaLimite: LIMITE [0-9]+
  • TimeSpan: TIMESPAN (HOJE | ONTEM | 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)

Estrutura da consulta

Uma consulta Relatório é composta de várias partes:

  • SELECT
  • DE
  • ONDE
  • ORDENAR POR
  • LIMITE
  • TEMPO

Cada parte é descrita abaixo.

SELECT

Esta parte da consulta especifica as colunas que são exportadas. As colunas que podem ser selecionadas são os campos listados e selectableColumnsavailableMetrics as seções de um conjunto de dados. Se houver uma coluna de métrica incluída na lista de campos selecionada, as métricas serão calculadas para cada combinação distinta das colunas não métricas.

Exemplo:

  • SELECIONE,OfferNameNormalizedUsage

DISTINTO

Adicionar a palavra-chave DISTINCT após SELECT garante que os dados finais exportados não tenham linhas duplicadas. A palavra-chave DISTINCT funciona independentemente de uma coluna métrica estar selecionada ou não.

Exemplo:

  • SELECIONE DISTINTOMarketplaceSubscriptionId, OfferType

DE

Essa parte da consulta indica o conjunto de dados do qual os dados precisam ser exportados. O nome do conjunto de dados fornecido aqui precisa ser um nome de conjunto de dados válido retornado pela API de conjuntos de dados.

Exemplo:

  • DE ISVUsage
  • DE ISVOrder

ONDE

Essa parte da consulta é usada para especificar condições de filtro no conjunto de dados. Somente as linhas que correspondem a todas as condições listadas nesta cláusula estão presentes no arquivo final exportado. A condição do filtro pode estar em qualquer uma das colunas listadas em selectableColumns e availableMetrics. Os valores especificados na condição de filtro podem ser uma lista de números ou uma lista de cadeias de caracteres somente quando o operador é IN ou NOT IN. Os valores sempre podem ser fornecidos como uma cadeia de caracteres literal e são convertidos nos tipos nativos de colunas. Várias condições de filtro precisam ser separadas com uma AND operação.

Exemplo:

  • MarketplaceSubscriptionId = 'aaaabbbb-0000-cccc-1111-dddd222eeee'
  • NomeCliente LIKE '%Contosso%'
  • CustomerId NÃO EM (1000, 1001, 1002)
  • Quantidade do pedido = 100
  • OrderQuantity='100'
  • MarketplaceSubscriptionId='bbbbcccc-1111-dddd-2222-eeee3333ffff' E CustomerId='0f8b7fa0-eb83-a183-1225-ca153ef807aa'

ORDENAR POR

Esta parte da consulta especifica os critérios de ordenação para as linhas exportadas. As colunas nas quais a selectableColumns ordenação pode ser definida precisam ser do e availableMetrics do conjunto de dados. Se não houver nenhuma direção de ordenação especificada, o padrão DESC será na coluna. A ordenação pode ser definida em várias colunas, separando os critérios com uma vírgula.

Exemplo:

  • ORDENAR PORASC de uso normalizado, DESC de EstimatedExtendedCharge(CC)
  • ORDENAR PORASC CustomerName, NormalizedUsage

LIMITE

Essa parte da consulta especifica o número de linhas exportadas. O número especificado precisa ser um inteiro positivo diferente de zero.

TEMPO

Essa parte da consulta especifica a duração do tempo para a qual os dados precisam ser exportados. Os valores possíveis devem ser do campo na definição do conjunto de availableDateRanges dados.

Diferenciação de maiúsculas e minúsculas na especificação de consulta

A especificação é completamente insensível a maiúsculas e minúsculas. Palavras-chave, nomes de coluna e valores predefinidos podem ser especificados em maiúsculas ou minúsculas.

Consulte também