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)*)
- FilterCondition: Valor del operador ColumOrMetricName
- 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.