Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les partenaires peuvent utiliser cette spécification de requête pour formuler facilement des requêtes personnalisées afin d’extraire des données à partir de tables d’analyse. Les requêtes peuvent être utilisées pour sélectionner uniquement les colonnes et les mesures souhaitées qui correspondent à un certain critère. Au cœur de la spécification du langage se trouve la définition du jeu de données sur lequel une requête personnalisée peut être écrite.
Groupes de données
De la même manière que certaines requêtes sont exécutées sur une base de données qui comporte des tables et des colonnes, une requête personnalisée fonctionne sur des jeux de données qui ont des colonnes et des métriques. La liste complète des jeux de données disponibles pour la formulation d’une requête peut être obtenue à l’aide de l’API des jeux de données.
Voici un exemple d’un ensemble de données affiché au format 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
}
Parties d’un ensemble de données
- Un nom de dataset est comme un nom de table de base de données. Par exemple, ISVUsage. Un dataset contient une liste de colonnes qui peuvent être sélectionnées, telles que MarketplaceSubscriptionId.
- Un ensemble de données comporte également des métriques, qui sont comme des fonctions d’agrégation dans une base de données. Par exemple, NormalizedUsage.
- Il existe des périodes de temps fixes sur lesquelles les données peuvent être exportées.
Formulation d’une requête sur un jeu de données
Voici quelques exemples de requêtes qui montrent comment extraire différents types de données.
| Requête | Descriptif |
|---|---|
| CHOISIR MarketplaceSubscriptionId,CustomerId FROM ISVUsage TIMESPAN LAST_MONTH | Cette requête récupère tous les MarketplaceSubscriptionId et ses correspondants CustomerId au cours du dernier mois. |
| CHOISIR MarketplaceSubscriptionId, EstimatedExtendedChargeCC FROM ISVUsage ORDER BY EstimatedExtendedChargeCC LIMITE 10 | Cette requête récupère les 10 premiers abonnements par ordre décroissant du nombre de licences vendues sous chaque abonnement. |
| CHOISIR CustomerId, NormalizedUsage, RawUsage FROM ISVUsage WHERE NormalizedUsage > 100000 ORDER BY NormalizedUsage TIMESPAN LAST_6_MONTHS | Cette requête récupère les valeurs NormalizedUsage et RawUsage de tous les clients dont le NormalizedUsage est supérieur à 100 000. |
| CHOISIR MarketplaceSubscriptionId, MonthStartDate, NormalizedUsage FROM ISVUsage WHERE CustomerId IN ('aaaabbbb-0000-cccc-1111-dddd222eeee', 'bbbbcccc-1111-dddd-2222-eeee3333ffff') | Cette requête obtient le MarketplaceSubscriptionId et l’utilisation normalisée pour chaque mois par les deux CustomerId valeurs : aaaabbbb-0000-cccc-1111-dddd2222eeee et bbbbcccc-1111-dddd-2222-eeee3333ffff. |
Spécification de la requête
Cette section décrit la définition et la structure de la requête.
Référence grammaticale
Ce tableau décrit les symboles utilisés dans les requêtes.
| Symbole | Sens |
|---|---|
| ? | Optionnel |
| * | Zéro ou plus |
| + | Un ou plus |
| | | Ou/L’un de la liste |
Définition de la requête
L’instruction query comporte les clauses suivantes : SelectClause, FromClause, WhereClause ?, OrderClause ?, LimitClause® et TimeSpan· ?.
-
SelectClause : SELECT ColumOrMetricName (, ColumOrMetricName)*
- ColumOrMetricName : colonnes et métriques définies dans l’ensemble de données
-
FromClause : FROM DatasetName
- DatasetName : nom de l’ensemble de données défini dans l’ensemble de données
-
WhereClause : WHERE FilterCondition (ET FilterCondition)*
-
FilterCondition : valeur de l’opérateur ColumOrMetricName
- Opérateur : = | >< | | >= | <= | != | J’AIME | PAS COMME | DANS | PAS DANS
-
Valeur : Nombre | Chaîne Littérale | MultiNumberList | MultiStringList
- Numéro : - ? [0-9]+ (. [0-9] [0-9]*)?
- StringLittéral : ' [a-zA-Z0-9_]*'
- MultiNumberList : (Nombre (,Nombre)*)
- MultiStringList : (StringLiteral (,StringLiteral)*)
-
FilterCondition : valeur de l’opérateur ColumOrMetricName
-
OrderClause : ORDER BY OrderCondition (,OrderCondition)*
- OrderCondition : ColumOrMetricName (ASC | DESC)*
- LimitClause :LIMIT [0-9]+
- TimeSpan : TIMESPAN ( AUJOURD’HUI | HIER | 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)
Structure de la requête
Une requête de rapport est composée de plusieurs parties :
- Sélectionner
- DE
- OÙ
- ORDONNER PAR
- Limite
- DURÉE
Chaque partie est décrite ci-dessous.
Sélectionner
Cette partie de la requête spécifie les colonnes qui sont exportées. Les colonnes qui peuvent être sélectionnées sont les champs répertoriés dans selectableColumns et availableMetrics les sections d’un ensemble de données. S’il y a une colonne de mesure incluse dans la liste de champs sélectionnés, les mesures sont calculées pour chaque combinaison distincte de colonnes non métriques.
Exemple :
-
SÉLECTIONNER
OfferName,NormalizedUsage
DISTINCTIF
L’ajout du mot-clé DISTINCT après SELECT garantit que les données finales exportées n’ont pas de lignes en double. Le mot-clé DISTINCT fonctionne indépendamment du fait qu’une colonne de mesure soit sélectionnée ou non.
Exemple :
-
SÉLECTIONNER DISTINCT
MarketplaceSubscriptionId, OfferType
DE
Cette partie de la requête indique le jeu de données à partir duquel les données doivent être exportées. Le nom de l’ensemble de données indiqué ici doit être un nom d’ensemble de données valide renvoyé par l’API des ensembles de données.
Exemple :
- DE
ISVUsage - DE
ISVOrder
OÙ
Cette partie de la requête permet de spécifier les conditions de filtre sur le jeu de données. Seules les lignes correspondant à toutes les conditions énumérées dans cette clause sont présentes dans le fichier final exporté. La condition de filtre peut se trouver sur l’une des colonnes répertoriées dans selectableColumns et availableMetrics. Les valeurs spécifiées dans la condition de filtre peuvent être une liste de nombres ou une liste de chaînes uniquement lorsque l’opérateur est IN ou NOT IN. Les valeurs peuvent toujours être données sous forme de chaîne littérale et elles sont converties en types natifs de colonnes. Plusieurs conditions de filtre doivent être séparées par une AND opération.
Exemple :
- MarketplaceSubscriptionId = 'aaaabbbb-0000-cccc-1111-dddd222eeee'
- CustomerName LIKE '%Contosso%'
- CustomerId NOT IN (1000, 1001, 1002)
- Quantité de commande=100
- OrderQuantity='100'
- MarketplaceSubscriptionId='bbbbcccc-1111-dddd-2222-eeee3333ffff' AND CustomerId='0f8b7fa0-eb83-a183-1225-ca153ef807aa'
ORDONNER PAR
Cette partie de la requête spécifie les critères d’ordre des lignes exportées. Les colonnes sur lesquelles l’ordre peut être défini doivent provenir du selectableColumns et availableMetrics du jeu de données. Si aucun sens de commande n’est spécifié, il est défini par défaut sur DESC la colonne. L’ordre peut être défini sur plusieurs colonnes en séparant les critères par une virgule.
Exemple :
- COMMANDER PAR ASC d’utilisation normalisée, charge estimée prolongée (CC) DESC
- COMMANDER PAR CustomerName ASC, NormalizedUsage
Limite
Cette partie de la requête spécifie le nombre de lignes exportées. Le nombre que vous spécifiez doit être un entier positif non nul.
DURÉE
Cette partie de la requête spécifie la durée pendant laquelle les données doivent être exportées. Les valeurs possibles doivent provenir du champ dans la définition du jeu de availableDateRanges données.
Sensibilité à la casse dans la spécification des requêtes
La spécification est totalement insensible à la casse. Les mots-clés, les noms de colonnes et les valeurs prédéfinis peuvent être spécifiés en majuscules ou en minuscules.