Compartir a través de


Especificación de consulta personalizada para marketplace comercial

Los asociados pueden usar esta especificación de consulta para formular fácilmente consultas personalizadas para extraer datos de las tablas de análisis. Las consultas se pueden usar para seleccionar solo las columnas deseadas y las métricas que coincidan con un determinado criterio. En el centro de la especificación del lenguaje se encuentra la definición del conjunto de datos sobre el que se puede escribir una consulta personalizada.

Conjuntos de datos

Del mismo modo que algunas consultas se ejecutan en una base de datos que tiene tablas y columnas, una consulta personalizada funciona en conjuntos de datos que tienen columnas y métricas. La lista completa de los conjuntos de datos disponibles para formular una consulta puede obtenerse mediante la API de conjuntos de datos.

Este es un ejemplo de un conjunto de datos que se muestra como 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
        }

Elementos de un conjunto de datos

  • Un nombre de conjunto de datos es como el nombre de una tabla de base de datos. Por ejemplo, ISVUsage. Un conjunto de datos tiene una lista de columnas que se pueden seleccionar, como MarketplaceSubscriptionId.
  • Un conjunto de datos también tiene métricas, que son como funciones de agregación en una base de datos. Por ejemplo, NormalizedUsage.
  • Hay intervalos de tiempo fijos durante los que se pueden exportar los datos.

Formulación de una consulta en un conjunto de datos

Estas son algunas consultas de ejemplo que muestran cómo extraer varios tipos de datos.

Consultar Descripción
SELECT MarketplaceSubscriptionId,CustomerId FROM ISVUsage TIMESPAN LAST_MONTH Esta consulta obtiene cada MarketplaceSubscriptionId y su correspondiente CustomerId en el último mes.
SELECT MarketplaceSubscriptionId, EstimatedExtendedChargeCC FROM ISVUsage ORDER BY EstimatedExtendedChargeCC LIMIT 10 Esta consulta obtiene las 10 suscripciones principales en orden decreciente del número de licencias vendidas en cada suscripción.
SELECT CustomerId, NormalizedUsage, RawUsage FROM ISVUsage WHERE NormalizedUsage > 100000 ORDER BY NormalizedUsage TIMESPAN LAST_6_MONTHS Esta consulta obtiene normalizedUsage y RawUsage de todos los clientes que tienen NormalizedUsage mayor que 100 000.
SELECT MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('2a31c234-1f4e-4c60-909e-76d234f93161', '80780748-3f9a-11eb-b378-0242ac130002') Esta consulta obtiene y MarketplaceSubscriptionId el uso normalizado de cada mes por los dos CustomerId valores: 2a31c234-1f4e-4c60-909e-76d234f93161 y 80780748-3f9a-11eb-b378-0242ac130002.

Especificación de consulta

En esta sección se describe la definición y la estructura de la consulta.

Referencia de gramática

En esta tabla se describen los símbolos que se usan en las consultas.

Símbolo Significado
? Opcionales
* Cero o más
+ Uno o más
| O/Uno de la lista

Definición de la consulta

La instrucción de consulta tiene las cláusulas siguientes: SelectClause, FromClause, WhereClause?, OrderClause?, LimitClause? y TimeSpan?.

  • SelectClause: SELECT ColumOrMetricName (, ColumOrMetricName)*
    • ColumOrMetricName: columnas y métricas definidas en el conjunto de datos
  • FromClause: FROM DatasetName
    • DatasetName: nombre del conjunto de datos definido en el conjunto de datos
  • WhereClause: WHERE FilterCondition (AND FilterCondition)*
    • FilterCondition: Valor del operador ColumOrMetricName
      • Operator: = | > | < | >= | <= | != | LIKE | NOT LIKE | IN | NOT IN
      • Valor: Número | StringLiteral | MultiNumberList | MultiStringList
        • Number: -? [0-9]+ (. [0-9] [0-9]*)?
        • StringLiteral: ' [a-zA-Z0-9_]*'
        • MultiNumberList: (Number (,Number)*)
        • MultiStringList: (StringLiteral (,StringLiteral)*)
  • OrderClause: ORDER BY OrderCondition (,OrderCondition)*
    • OrderCondition: ColumOrMetricName (ASC | DESC)*
  • LimitClause: LIMIT [0-9]+
  • TimeSpan: TIMESPAN ( TODAY | AYER | 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)

Estructura de la consulta

Una consulta de informe se compone de varios elementos:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • TIMESPAN

A continuación, se describe cada uno de los elementos.

SELECT

Esta parte de la consulta especifica las columnas que se exportan. Las columnas que se pueden seleccionar son los campos enumerados en las secciones selectableColumns y availableMetrics de un conjunto de datos. Si hay una columna de métrica incluida en la lista de campos seleccionada, las métricas se calculan para cada combinación distinta de las columnas no métricas.

Ejemplo:

  • SELECT OfferName, NormalizedUsage

DISTINCT

Agregar la palabra clave DISTINCT después de SELECT garantiza que los datos exportados finales no tengan filas duplicadas. La palabra clave DISTINCT funciona independientemente de si se selecciona o no una columna de métrica.

Ejemplo:

  • SELECT DISTINCT MarketplaceSubscriptionId, OfferType

FROM

Este elemento de la consulta indica el conjunto de datos desde el que se deben exportar los datos. El nombre del conjunto de datos que se proporciona aquí debe ser un nombre de conjunto de datos válido devuelto por la API de los conjuntos de datos.

Ejemplo:

  • FROM ISVUsage
  • FROM ISVOrder

WHERE

Este elemento de la consulta se usa para especificar las condiciones de filtro en el conjunto de datos. Solo las filas que coinciden con todas las condiciones enumeradas en esta cláusula están presentes en el archivo exportado final. La condición de filtro puede estar en cualquiera de las columnas enumeradas en selectableColumns y availableMetrics. Los valores especificados en la condición de filtro pueden ser una lista de números o una lista de cadenas solo cuando el operador es IN o NOT IN. Los valores siempre se pueden proporcionar como una cadena literal y se convierten en los tipos nativos de columnas. Se deben separar varias condiciones de filtro con una operación AND.

Ejemplo:

  • 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

En este elemento de la consulta se especifican los criterios de ordenación de las filas exportadas. Las columnas en las que se puede definir la ordenación deben ser de selectableColumns y availableMetrics del conjunto de datos. Si no se especifica ninguna dirección de ordenación, se usa DESC de forma predeterminada en la columna. La ordenación se puede definir en varias columnas separando los criterios con una coma.

Ejemplo:

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

LIMIT

Esta parte de la consulta especifica el número de filas que se exportan. El número que especifique debe ser un entero positivo distinto de cero.

TIMESPAN

Este elemento de la consulta especifica el período de tiempo durante el que se deben exportar los datos. Los valores posibles deben ser del campo availableDateRanges de la definición del conjunto de datos.

Distinción de mayúsculas y minúsculas en la especificación de consultas

La especificación no distingue entre mayúsculas y minúsculas. Las palabras clave predefinidas, los nombres de columna y los valores se pueden especificar usando mayúsculas o minúsculas.

Consulte también